LeetCode刷题知识总结
生活随笔
收集整理的这篇文章主要介绍了
LeetCode刷题知识总结
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1.判断整数大于int类型最大最小值
C++中int类型最大值和最小值的表示形式:
最大值:(1<<31)-1,也可以是INT_MAX
最小值:(1<<31),还可以是INT_MIN
注意,我们使用long long和int类型最大值最小值比较时应写成如下格式
long long res=0;if(res>=(((long long)1<<31)-1)||res<=1<<31)注意:C++不支持负数左移,可以把一个数转为无符号数(unsigned int)再左移
2.C++从数组下标1开始输入
char str[100]; cin>>str+1;3.异或(^)的用法
4.数组加容器的初始化
一维数组初始化:
int arr[100]; memset(arr,0,sizeof(arr));二维数组初始化:
int arr[10][10]; for(int i=0;i<10;i++) memset(arr[i],0,sizeof(arr[i]));vector的初始化:
vector<int> vec(10,0);4.排序
4.1sort排序
sort排序默认从小到大
当我们使用两个容器的嵌套排序(按照每个vector容器的第一个元素从小到大,如果相等,就按照第二个元素从大到小):
#include<iostream> #include<vector> #include<bits/stdc++.h> using namespace std; bool com(vector<int> &a,vector<int> &b) {if(a[0]>b[0])return false;else if(a[0]<b[0])return true;else{if(a[1]<b[1])return false;else return true;} } int main() {vector<vector<int>> a;for(int i=0;i<4;i++){vector<int> b;int a1;int b1;cin>>a1;cin>>b1;b.push_back(a1);b.push_back(b1);a.push_back(b);}sort(a.begin(),a.end(),com);for(int i=0;i<4;i++){cout<<a[i][0]<<" "<<a[i][1]<<endl;}} sort(intervals.begin(), intervals.end(), [](vector<int> a, vector<int> b) { return a[1] < b[1];//按照二维容器中一维容器的第二个元素从小到大排序5.容器相关
resize(容器大小)//改变容器大小(vector) set.insert(elem).frist//返回哈希表set的查询迭代器 set.insert(elem).second//返回插入元素是否成功6.有关ASCII值
ASCII码表里的字符总共有128个。ASCII码的长度是一个字节,8位,理论上可以表示256个字符,但是许多时候只谈128个
7.C++把字符串表示的数字转换成整形数字
int stoi(string str)
8.容器求和
n accumulate(num.begin(), num.end(), 0); // std::accumulate 可以很方便 //地求和9.在vector容器的插入
//vector容器的左右边界插入0flowerbed.insert(flowerbed.begin(),0);flowerbed.insert(flowerbed.end(),0); //在vector索引为2的地方插入一个数据8flowerbed.insert(flowerbed.begin()+2,8);总结
以上是生活随笔为你收集整理的LeetCode刷题知识总结的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: KMP算法求解next数组值(模式串从下
- 下一篇: xil_printf打印遇到的问题