Leecode似乎会吞笔记,那就记录在这里啦
1. vector
【题目217】
vector 作为函数的参数或者返回值时,需要注意它的写法:
【https://www.w3cschool.cn/cpp/cpp-i6da2pq0.html】
double Distance(vector&a, vector&b)
其中的“&”绝对不能少!!!
vectortest;//建立一个vector,int为数组元素的数据类型,test为动态数组名。
1.1
begin() 和 end() 是以函数模板的形式定义的,但它们的模板并没有位于某一个头文件中,而是很多头文件中都有它们的定义。
C++ STL 标准库中,包含 begin() 和 end() 函数模板的头文件包括:, , , <forward_list>, ,
1.2
c++中,在获取字符串长度时,size()函数与length()函数作用相同。除此之外,size()函数还可以获取vector类型的长度。
1.3
【题目350. 两个数组的交集 II】push_back() 在Vector最后添加一个元素(参数为要插入的值)
vector<int>& nums1;
int index1;
vector<int> intersection;
...
intersection.push_back(nums1[index1]);
1.4
【题目566.重塑矩阵】之vector<vector<int>> A
的使用:
关于初始化的定义,这篇讲的很形象了:【https://blog.csdn.net/BShanj/article/details/113817328】
简而言之:vector<vector<int>> ans(r, vector<int>(c))
表示:声明一个名为ans的容器,其元素排布为r行(int r)c列(一行c列的vector©)
题目用到了push_back逐次从后输入元素值,这里讲的很清楚啦:
【https://blog.csdn.net/VariatioZbw/article/details/116485536】
要注意的是,随着行遍历元素,则对应元素序号为[i / n][i % n],因为余数%是随着列n的增加而增加的,用m会溢出。
基本语法之 if和else:
if(){。。。}
else{。。。}//之后else再独立一个{。。。}
2. 指针
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址
int var = 20; // 实际变量的声明
int *ip; // 指针变量的声明
ip = &var; // 在指针变量中存储 var 的地址
3. sort函数
语法:Sort(start,end,cmp)
参数:
(1)start表示要排序数组的起始地址;
(2)end表示数组结束地址的下一位;
(3)cmp用于规定排序的方法,可不填,默认升序。
功能:
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。一般是直接对数组进行排序,例如对数组a[10]排序,sort(a,a+10)。sort()函数是c++一种排序方法之一,相较冒泡排序和选择排序所带来的执行效率不高的问题,sort()函数使用的排序方法是类似于快速排序的方法,时间复杂度为n*log2(n)
题目53-最大子序和
https://blog.csdn.net/liuxf93/article/details/120820359
auto:在块作用域、命名作用域、循环初始化语句等中声明变量时,关键词auto用作类型指定符。
const:修饰符
想要拷贝元素:for(auto x:range)
想要修改元素:for(auto &x:range)
想要只读元素:for(const auto& x:range)
题目思路
(贪心or动态规划,题解和题解视频里的标题还不一样…)
class Solution{
public: //public顶格写
int maxSubArray(vector <int> & nums){
int pre=0, maxAns=nums[0]; //使用逗号可以不用重复int
for(const auto & x: nums){ //有auto不用int
pre = max(pre+x, x); //走新的一步,回头,如果前面的<0,那就不要了
maxAns = max(maxAns, pre);
}
return maxAns;
}
(现在才开始刷力扣,很焦虑了咱就是说