欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode刷题知识总结

发布时间:2024/10/14 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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刷题知识总结的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。