自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yeze的专栏

初学者

  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 #1 Two Sum

#1 Two Sum题目地址: Two Sum题目: Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that

2015-06-25 14:52:28 504

原创 Linux下利用script命令录制并回放终端会话

核心命令 script -t 2>[time.file] (-a output.file) scriptreplay [time.file] [output.file]使用说明script/scriptrelpay实现依赖于一个时间点文件time.file和一个输出文件output.file。执行scriptreplay可以模拟之前录制的行为,但务必注意:回放并不能产生任何实际的改变

2015-05-01 11:47:02 3305

原创 Scheme中lambda表达式与函数指针小例

SICP/Chapter2/Exercise-2.4 Lambda表达式语法 (lambda kw-formals body)题目描述用过程性表示方式重写序对的cons、car、cdrScheme代码(define (cons-24 x y) (lambda (m) (m x y)))(define (car-24 z) (z (lambda (p q) p)))这段代码只有4行,

2015-04-22 18:16:16 1769

原创 《C++沉思录》:类设计者的核查表——有关class的11问

本文的11个问题提取自《C++沉思录》第四章。所有问题的说明均为自己补充。1 你的类需要一个构造函数吗?2 你的数据成员是私有的吗?3 你的类需要一个无参构造函数吗?4 你的类需要一个虚虚析构函数吗?5 你的类需要复制构造函数吗?6 你的类需要一个赋值运算符吗?7 const总是很重要!

2015-04-08 14:40:31 955 1

原创 #3 Longest Substring Without Repeating Characters(最长无重复元素子串)

#3 Longest Substring Without Repeating Characters(最长无重复元素子串)题目地址:#3 题目分类:字符串 题目难度:Midium题目 Given a string, find the length of the longest substring without repeating characters. For example, the lo

2015-04-03 22:46:51 436

原创 #23 Merge k Sorted Lists (N路归并排序)

#23 Merge k Sorted Lists (N路归并排序)题目地址:#23 题目分类:链表/归并排序/堆排序 题目难度:hard题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.翻译:合并K个已经排序的链表,返回一个排序好的链表。

2015-04-02 17:50:26 541

原创 #19 Remove Nth Node From End of List(删除链表倒数第N个节点)

#19 Remove Nth Node From End of List题目地址:#19题目 Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2.

2015-04-01 20:58:13 346

原创 #2 Add Two Numbers (链表作加法)

#2 Add Two Numbers (链表作加法)题目地址:Add Two Numbers 题目分类:链表。Linked List 题目难度:Midium题目You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each o

2015-04-01 20:35:34 449

原创 从锁的角度理解线程

1.锁的本质        线程中,同步与互斥无疑是核心,看完了APUE的线程部分,有一些小小的理解,有必要记录下来。        锁的引入是为了保证同一时间片,只能有一个线程操作“被锁”的变量。而实际常用的锁(mutex,互斥量)则是通过阻塞函数实现的。        但是事实上,锁并不是如上面描述的那样,直接加在变量上,使得变量不会被改变。(这种实现,需要锁住内存吧),我们用的m

2015-03-26 23:42:47 1112

原创 虚函数与动态绑定 / Virtual function and Dynamic Binding

使用虚函数的时候,总是有一种“就是因为参数匹配不严格,才不得不应用虚函数”的感觉。看了好多例子,还是不觉得虚函数是一个便利的特性,反而觉得是因为以前遗留的问题才不得不打出虚函数这个补丁。在个人编码的时候,也倾向于使用重载函数或是传入函数指针的方式来规避这个问题。目前发现的虚函数的实用之处有一个:        对于大量相似的派生类,可以方便的利用虚函数实现类似于重载函数的功

2015-03-26 22:04:10 557

原创 一个小项目中的Python中的性能优化细节——(下)其他的小细节,减少调用、if判断的顺序

一、减少间接访问 D_Ascii = { } #this will save time about 0.1s D_Freq = { } #avoid create&destroy a pointer in for loop for index_Word in range(len(lines_Word)-2): index_AsciiHash = ord(lines_W

2015-03-22 16:10:38 1866

原创 一个小项目中的Python中的性能优化细节——(上)从排序说起

0 概述        虽然和C相比,python的效率低一些,但是这 并不是说python中就不需要考虑效率问题了。        最近在写一个文本预测的工具的时候,需要建立一个二阶马尔可夫模型。我在最开始的版本中,以一个4M大小的文本作为原材料。分割过程需要10S以上,hash表的建立需要15秒,而排序(快排)则因各种原因没有排出来。所以我将目光转向了一些没有注意的地方。

2015-03-22 14:00:19 642

原创 Python中cProfile性能分析工具的使用

cProfile真的是太强大了!更多详细内容参见:官方文档。 这里仅仅列出我用到的一些部分作为记录0 - import几个库import cProfileimport pstats1 - 分析某条语句: #c_Markov = c_MarkovCreater(savefilename) cProfile.run("c_Markov = c_MarkovCreater

2015-03-19 01:12:02 6307

原创 【Python基本知识】 Python中,函数参数的引用和复制

Python与C        在C中,我们明确的知道,如果加上引用符号 &, 就代表希望传递一个变量的引用。在函数中对这个变量做出的任何变化都会真实的改变这个变量本身的值。(实际上是通过指针操作)        而Python相比于C,由于不再引入指针的概念,因此就没有非常明确的区分,告诉我们这个行为传递的是一个引用还是拷贝。        尽管Python一切皆是对象,但是有些情况

2015-03-18 13:53:22 751

原创 Python下的多进程实现——利用multiprocessing库实现并发爬虫

Python下的多进程实现——利用multiprocessing库实现并发爬虫主要使用到的函数如下: multiprocessing 库下的 Process ——实现多进程的主要函数 如果希望进程间共享数据,则使用Manager ——manager.dict( a ) 共享一个类型为字典的数据 ——manager.list( a ) 共享

2015-03-16 01:35:54 3510

原创 从二叉搜索树(Binary Search Tree)入手,学习C++中类的构建 --(四)未完成。占坑。C++下的强制类型转换带来的问题

占坑。未完成。class book {public: int a; int b; book(): a(9),b(-1){} virtual void print33(){cout<<(a*10)<<std::endl;} void print1(){cout<<"asd"<<std::endl;} void print12(){cout<<a+1<<std::endl;}}

2015-03-14 10:17:37 558

原创 从二叉搜索树(Binary Search Tree)入手,学习C++中类的构建 --(三)public\private\protected、封装\继承\多态、提供更丰富的函数接口

面向对象(objected-oriented,或者说理解为面向物体\实体 更合适一些),重要特点就是:封装、抽象、多态、继承在本篇中,主要提及的是封装(Encapsulation)。而封装提供给我们的不只是更加结构化、模块化的程序设计,还有一个最重要的特性:数据隐藏。一、访问标号:public-private-protected简单的来说,访问标号的用处就相当于为各个类成员添加一个权限

2015-03-13 14:22:10 543

原创 从二叉搜索树(Binary Search Tree)入手,学习C++中类的构建 --(二)class与struct, 构造函数,重载函数

一、Class与Structclass是C++的特性,而struct则是沿用自C。通常意义上来说,我们认为struct仅仅是用来存放一些数据的集合,而不包含成员函数。这个理解是简单的,也建议初学class的人这样理解。但是记得最开始在LeetCode上练习链表的时候,会出现如下的struct定义:strcut Node { int val; Node *next; Node(int

2015-03-13 11:21:09 945

原创 从二叉搜索树(Binary Search Tree)入手,学习C++中类的构建 --(一)BST与基本框架

一、二叉搜索树二叉搜索树(以下简称BST)是树形数据结构的常见应用之一,其特点是:1 - 插入单个元素操作 (Insert) 的时间复杂度为 O(lgn)2 - 构建二叉搜索树的时间复杂度为: O(nlgn) [最优情况] ,O(n^2) [最差情况].最优情况 —— 平衡二叉树最差情况 —— 构建所用序列是严格有序的,则构建出的搜索树高度为n,所有节点只有左叶子或右叶子3

2015-03-13 11:14:52 752

原创 [LeetCode] Path Sum II, 关于效率的两个问题: vector还是queue? 传递引用还是拷贝?

题目Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x),

2015-03-02 00:39:35 498

原创 Linux编程——ls命令的实现

/************************************************************************* > File Name: yzls.c > Created Time: Wed 28 Jan 2015 11:04:15 UTC *********************************************************

2015-01-29 12:09:21 484

原创 LINUX编程——进程间管道通信

/*************************************************************************

2015-01-29 12:08:27 540

原创 VS2012查看是否有内存泄露的方法

加入下列宏定义:#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#include #include #ifdef _DEBUG#define n

2015-01-25 19:22:33 1707

原创 [LeetCode]Merge Two Sorted Lists & Remove Duplicates from Sorted List 两个有序链表合并为一个&删除链表重复元素

虽然题目简单,但是个人认为代码写的还是很好看的!尤其是条件分支中异或语句。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */

2015-01-19 14:49:32 474

原创 用Qsort排序链表的使用实例记录

要排序的是链表,记得上次排序结构体的时候本身创建的就是结构体数组所以空间连续可排。但是链表是离散的,不能直接Qsort。所以分配一个临时空间用来存储地址,然后排序地址再重新建立。之所以记录在这里是因为其中写cmp函数的时候,发现形参怎么写还是有些讲究的,于是放在这里以方便查看!//--------------------------------struct部分typ

2015-01-18 21:58:55 5289

翻译 C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free

内存分配方式内存分配方式有三种:[1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。[2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,亦称动态内

2015-01-16 14:31:20 516

原创 变量的生命周期和{ }的相关知识

生命周期如果和寄存器、内存什么的挂钩,就变得不那么好理解。、其实生命周期的概念也很简单,无非就是变量从哪到哪有效。这里只说生民周期和大括号{ }的联系浅显一点说,一个变量的生命周期就是从上一个 { 开始,到下一个 } 结束为止[1]看这么一个程序,就会对生命周期的概念更了解一点int main(){//1 int a=5; {//2 int b=0; b+

2015-01-16 11:09:02 1798 1

转载 vector中的size和capacity

原文地址——诸葛半里==============================================在vector中与size()和capacity() 相对应的有两个函数:resize(size_type)和reserve(size_type)。Sizesize指目前容器中实际有多少元素,对应的resize(size_type)会在容器尾添加或删除一些元素,来调整容器

2015-01-15 16:12:44 2029

原创 strcuct结构体创建时使用typedef的命名方式

[1] 不用typedef时的结构体形式:struct student{ int age; int score;}stu,*pstu;这样的语句的含义简单明了,就是定义了一个结构体,同时创建了两个student结构的变量stu和*pstu。访问内部元素方式:stu.age=1;pstu->age=1;(*pstu).age=1;[2] 比较好用的形式:ty

2015-01-15 15:15:18 718

原创 使用malloc、calloc函数分配内存空间和存储内容不匹配时引发的错误!

下面是昨天遇到问题的一个简化版本:#include#include#include#includechar* copy(char a[]){ char *newc=(char *)malloc(sizeof(char)); strcpy(newc,a); return newc;}void err(char a[],char b[]){ a=copy(a);b=copy

2015-01-13 11:33:08 2336

原创 char s[] 和 char *s,

[1] 前面已经提到过,对于下面的代码:char s1[]="hello";char *s2="hello";s2是指向常量的指针,只能访问不能修改;s1是字符串的首地址,可以访问,可以修改值。[2] 新的问题对于下面的的函数,希望能够在调用函数后修改s的地址void fun(char *&s){ s++;}用同样的s1,s2调用该函数:fun(

2015-01-12 17:25:11 575

原创 字符串处理函数的一些问题

[1] strcpy函数的问题对于两个char[ ]: char destination[N],char source[M],如果source的长度大于destination的长度,那么实际上在内存中,source中的字符已经全部存储到以destination为起始的内存中了。所以实际上strcpy函数是不安全的,相比之下使用可以限制拷贝位数的strncpy函数更加安全。实例:

2015-01-12 16:24:53 369

原创 二进制数中1的个数,位运算的境界

原本以为x&(x-1)就算是挺好的算法了,不过和下面这中想法一比简直渣都不剩了。如此巧妙的思路,看来自己还有很长的一段要努力

2015-01-10 19:53:43 317

原创 OJ上二位动态数组分配的一个错误记录

对于一道简单的二维数组的问题,不想却遇到了大麻烦。最后经过指点,才知道:int** a=(int** )calloc(m,sizeof(int*));int** a=(int** )calloc(m,sizeof(int));这两句话在32位和64位下大有问题!就因为写的第二句,在OJ上一直RE!查来查去没有注意到这一点,因为在32位

2015-01-10 14:39:34 350

原创 2015-1-9 知识总结

整理自《你必须知道的495个C语言问题》[1]指向函数的指针void function(int &a,int &b){ int temp; temp=a; a=b; b=temp;}int main(){ int a=12,b=3; function(a,b); void (*p)(int&,int&); p=function; (*p)(a,b);}要点:

2015-01-09 10:27:39 382

原创 约瑟夫圆环的两种实现,数组模拟和链表模拟

背景约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。数组实现#include#define N 5#define total 100int main(){ int a[total]={0}; int

2015-01-08 18:04:03 671

原创 八皇后、N皇后问题的求解。

注:main函数第一行把输出流定位到txt文件,可在源的目录下查看哦#include#include#includeusing namespace std;#define N 11int used_colunmn[N]={0};//记录已经占用的列int a[N+1]={0};int loop[N+1]={0};void printqueen(int a[],int coun

2015-01-08 16:06:38 540

原创 【趣味题】输出蛇形矩阵(由内向外、由外向内)、输出Z字形矩阵。

1.输出蛇形矩阵,由外层向内层和由外层向内层。下面贴上由外层向内层的代码:#include#define N 10int a[N][N]={0};int count;void fill_value_around(int line,int column){ if(line>column) return; else if(line==column) a[line][col

2015-01-07 10:48:14 1978

原创 2015-1-6 const和指针

首先来定义两个数组作为说明的例子。 int a[10]={0}; const int b[10]={0};一、对于Int a[10]={0}看下面几个指针初始化的代码: int *error_p;//1 *error_p=4; int *p=a;//2 const int* p1=a;//3 int const* p2=a;//4 int* const p3=a;//5

2015-01-06 22:26:35 401

原创 printf输出%f %lld问题。输出类型和数据类型不匹配会发生什么?

——总结自《C PRIMER PLUS》直接看三个例子: int a=4; printf("%f %e\n",a,a); float b=4; printf("%f %e\n",b,b); int n1=-1,n2=-2,n3=-3; printf("%lld %lld %lld\n",n1,n2,n3);运行结果为:可见,输出结果并非像预期的那样会自行转

2015-01-06 10:32:54 7204 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除