![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++学习笔记
一等于一
这个作者很懒,什么都没留下…
展开
-
ASCII字符基础知识
ASCII:American Standard Code for Information Interchange标准ASCII 码:7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。0~31及127(共33个):控制字符或通信专用字符32~126(共95个):字符(32是空格),其中48~57为0到9十个阿拉伯数...原创 2020-01-27 12:36:34 · 1787 阅读 · 0 评论 -
双指针法——最大盛水容器
事实:所有可能构成最大容量的两根柱子m,n (m<n)具有如下特点:m左边的所有柱子都不高于n; 所有n右边的柱子都不高于m;【用反证法易于证明】于是只需要int maxarea; int area;逐个遍历这些可能的最大容器;更新maxarea的值即可算法 :先将两个指针分别放在最左端和最右端的两根柱子不断向里移动两根柱子中较短的一根【这样就可以使当前容器,满足上文的特点】...原创 2020-01-26 19:50:47 · 140 阅读 · 0 评论 -
Manacher算法
应用:求最长子回文字符串思想:将字符串用#包裹,使之长度为奇数假设离s[i]最近的回文字符串的中心为id(id < i ), 且s[i]在这个大的回文字串中。则以i为中心的回文字串的最短半径p[i]为min(p[2*id - i], mx-i)mx是大的回文字串的右边界(s[mx]不在字符串内)。继续扩展p[i]。因为当以2*id - i为中心的回文字串左边界刚好为大的回文字串的左...原创 2020-01-22 15:21:18 · 101 阅读 · 0 评论 -
算法复杂度——时间复杂度和空间复杂度
算法复杂度时间复杂度:算法所需计算机工作量空间复杂度:算法所需计算机内存空间时间复杂度 Time Complexitynamedefinitionn问题规模T(n)对任意n所需的最大运行时间;算法中基本操作重复执行的次数;语句频度/时间频度;T(n) = O(f(n))T(n)f(n)→k(k≠0)\frac {T(n)} {f(n)} \to k...原创 2020-01-22 09:36:06 · 148 阅读 · 0 评论 -
const指针和指向常量的指针
六种写法1. const int p;2. const int *p;3. int const* p;4. int * const p;5. const int * const p;6. int const * const p;一个简便方法:从由往左读,遇到p就替换为“p is a”,遇到*就替换为“point to”,其余不变。> 1. const int ...原创 2020-01-20 22:24:50 · 132 阅读 · 0 评论 -
HashSet滑动窗口
数组/字符串问题窗口通常是在数组/字符串中由开始和结束索引定义的一系列元素的集合,即 [i,j)(左闭,右开)。而滑动窗口是可以将两个边界向某一方向“滑动”的窗口。例如,我们将 [i,j) 向右滑动 1 个元素,则它将变为 [i+1,j+1)(左闭,右开)。使用 HashSet 将字符存储在当前窗口 [i,j)(最初 j=i)中。 然后我们向右侧滑动索引 j,如果它不在 HashSet 中,...原创 2020-01-20 22:24:04 · 207 阅读 · 0 评论 -
c风格字符串与c++字符串类的转化
C风格的字符串转化为C++的string对象char str[] = "hello, world!"; string str2(str);string 类能够自动将C 风格的字符串转换成string 对象C++的string对象转化为C风格的字符串string提供一个方法可以直接返回字符串的首指针地址,即string.c_str()eg.const char* mystr = ...原创 2020-01-20 12:01:03 · 308 阅读 · 0 评论 -
new 与 malloc 区别
都是开辟堆内存。malloc 返回指针void*,不初始化内存;new分配内存并初始化。malloc是函数,需要传入字节数为参数;new 是运算符,需要指定类型,返回指定类型的地址,不需要强制转化。malloc开辟内存失败返回NULL,new开辟内存失败抛出bad_alloc类型的异常malloc–free; new–delete; new[]–delete[]malloc开辟内存只有一...原创 2020-01-20 22:25:11 · 193 阅读 · 0 评论 -
c++initializer_list
列表初始化内置类型和用户定义的类型可添加=,也可不添加内置类型:使用列表初始化值存在丢失信息的风险,则编译器将报错initializer_listC++11提供的新模版类型,定义在头文件中。initializer_list<T> lst; //默认初始化;T类型元素的空列表initializer_list<T> lst{a,b,c...};//ls...原创 2020-01-20 22:25:26 · 127 阅读 · 0 评论 -
c++跳出多重循环
c++跳出多重循环Leetcode 第一题求两数之和分别对内外层使用for,返回满足和为target的两数下标class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { long size = nums.size(); vec...原创 2020-01-20 22:25:43 · 869 阅读 · 0 评论