随笔分类 - c++学习
摘要:Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,
阅读全文
摘要:I mplement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 找字符串出现的第一位置 the first s
阅读全文
摘要:this is a easy question the intuition of our method: we should record the max prefix from the first string to the last one. class Solution { public: s
阅读全文
摘要:first, i use exhausitive search. however, it will exceed the time limit. the time speed is O(n^2) then, i change the strategy. for impove the speed, I
阅读全文
摘要:三种情况: “a” 对应"a", "." 对应 "a" "a*" 对应 “aa” 当p为空,s为空时可以匹配; 若p的第二个字符为*,第一情况为不匹配(b, a*b);从 (b,b)开始匹配 第二种情况为匹配(a, a*); 首元素相同, 从( ,a*)开始匹配 若p的第二个字符不为*, 首字符必须
阅读全文
摘要:判断回文(recursive) 两个条件: string中*s.end() 是‘\0’. 不使用递归: 得到最长的子回文字符串,最简单的做法得到所有字符串是否回文,记录长度,比较得到最长的。 要进行两次循环,时间复杂度高。O(n^3); 改进中心扩展法: 字符串可能为奇数个或偶数个,奇数个时从一个中
阅读全文
摘要:find 函数主要实现的是在容器内查找指定的元素,查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器。 在数组中查找: int * p=find(first, end,val);//first 是容器的首迭代器,last是容器的末迭代器,val是要查找的元素。 在vector容器中查找:
阅读全文
摘要:实现要实现:构造,析构,拷贝构造,赋值的功能 1. 提供构造函数 string(), string(const string & str),string(const char * str), 2. 析构函数: ~ string() 3. 成员函数(重载赋值函数):string &operator=(
阅读全文
摘要:因为每个组合的字符串,至少要有3个index。 起点,中间拼接点,结点。所以可以将字符串分解为子字符串,判断子字符串是否存在。但是,后面字符串的存在必须要在前面字符串已经存在基础上判断。 substr (startpos, length); startpos是起始字符的符号,length为从 sta
阅读全文
摘要:目的:为了保证包含的内容只被程序(include) 和编译了一次。判断预处理器常量是否已被定义。 预编译将所有头文件(#include"XXX.h")用头文件中的内容来替换,头文件中的内容都已经包含到需要他们的.cpp 中。最后生成.exe文件是由编译和链接两步完成的。编译时源代码生成obj 二进制
阅读全文
摘要:my solution: wrong answer : because 2147483647*2 is -2 (int) , only 33bit can represent 2147483647--2147483647 signed 0-4294967295 unsigned then i cha
阅读全文
摘要:由于删除过程不管是先释放还是先取的后一个元素都有问题,所以我们用了两个指针来删除整个链表,一个指向当前要删除的元素,而另外一个指向该删除元素的下一个元素.
阅读全文
摘要:和 sizeof 类似,sizeof不是函数,它是一个操作符,它在编译期就完成了计算,在函数运行期间它已经是一个常数值了。 int a; sizeof(int) = 4; sizeof(a) = 4; sizeof a ——也是4 不需要括号! 此时要注意: sizeof int——错误!此时int
阅读全文
摘要:static 静态的,类的静态成员函数,静态成员变量是和类相关的,但不和具体对象相关。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数就是一个全局函数,只是作用域在包含它的文件中。static 静态成员变量不能在类的内部初始化。在类的内部只声明,定义必须在类的外部。如 int
阅读全文
摘要:函数不能返回指向栈内存的指针 原因:返回值是拷贝值,局部变量的作用域为函数内部,函数执行结束,栈上的局部变量会销毁,内存释放。 可返回的局部变量: 1. 返回局部变量本身 int sum(int a, int b) { int s=a+b; return s; } 2.常量: char * str=
阅读全文
摘要:重载的运算符是具有特殊名字的函数,名字由关键字operator和其后要定义的运算符号共同组成, 重载的运算符也包含返回类型,参数列表以及函数体。重载运算符函数的参数数量和该运算符作用的运算对象数量一样多。一元运算符有一个参数,二元运算符有两个参数。对于二元运算符,左侧运算对象传递给第一个参数,右侧运
阅读全文
摘要:public: 之后的成员在整个程序内可被访问 private:之后的成员可以被类的成员函数访问,但不能被使用该类的代码访问,private部分封装(隐藏)类的实现细节 一般数据成员和作为实现部分的函数跟在private之后。成员函数在调用时会隐式地增加 this 指针,指向调用它的对象,从而使用该
阅读全文
摘要:1. 作为参数修饰符 指针参数的修饰符,const防止意外地改动该指针,起到保护作用。 void StringCopy(char *strDestination, const char *strSource); 其中strSource 是输入参数,strDestination 是输出参数。给strS
阅读全文
摘要:定义变长数组: 如果使用 char *p="abc"; 为字符串常量,p所指向的值不能再改变。 用 vector 实现变长数组: 类似java中vector 和 ArrayList 变长数组。但是java中有自动地垃圾回收机制,c++中需要调用析构函数释放内存:~vector(). 实现N维数组:
阅读全文
摘要:二叉树:每个节点最多有两棵字数,左子树和右子树 完全二叉树:叶节点只能出现在最下层和次下层,而且最下面一层的结点都集中在该层最左边的若干位置的二叉树。每层节点都完全填满,在最后一层上如果不是满的,则只缺少右边的若干节点。 满二叉树:要么叶子节点,要么节点同时具有左右子树 存储方式: 1)顺序存储:
阅读全文

浙公网安备 33010602011771号