LeetCode知识点

本文详细列举了在LeetCode中使用C++解决编程问题时的一些常见知识点,包括数字转字符串、字符处理、字符串操作、排序、删除字符串空格的方法,以及如何处理二维数组。同时,介绍了vector、list和map的数据结构特点,如vector的随机访问高效但插入删除较慢,list适合频繁插入删除但查找效率低。此外,还提到了哈希集合和哈希映射的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

leetcode中C++常用知识点:
①把数字变成字符串to_string(数字);
②不能直接将一个字符,变成字符串。办法只有变为字符数粗,然后直接复制。例:S1 = a;(a是字符数组,S1是字符串)
③不能直接给字符串的某个位置赋值,只能是字符串链接,例如S += to_string(数字);
④排序函数前面加个static,因为里面对数组进行操作,而数组是主函数的局部变量。所以加个static。
⑤ s.erase(0,s.find_first_not_of(" “));//删除字符串首空格
s.erase(s.find_last_not_of(” ") + 1);//删除字符串位空格
⑥while( (index = s.find(’ ',index)) != string::npos)
{
s.erase(index,1);
}

static bool cmp(string a, string b)
{
return a + b > b + a;//目的让选出ab大,还是ba大,假如ab大,那么a排前面。(用于两个字符串连接)
}
⑧如果只给出一个二维数组,怎么判断几行几列??
m = board.size();
n = board[i].size();
⑨vector<vector> a;二维的vector数组,注意vector是一个向量,不是单纯的一个一个格子式的数组。
a.push_back({nums[i], nums[j], shu});//向vector数组添加数注意是push_back和{}
⑩ sort (nums.begin(), nums.end());//vector数组排序,.end()得到的是最后一个元素加一的位置
11关于vector,list,map等的简单描述
原文链接:https://blog.youkuaiyun.com/qq_36570733/article/details/104134881

Vector:顺序表
优点:和数组类似开辟一段连续的空间,并且支持随机访问,所以它的查找效率高其时间复杂度O(1)。 
缺点:由于开辟一段连续的空间,所以插入删除会需要对数据进行移动比较麻烦,时间复杂度O(n),另外当空间不足时还需要进行扩容。具体扩容方法是:寻找一块大小为原向量空间2倍的连续空白内存,将原向量内容拷贝过去,并增加新的元素,最后删除原向量空间的数据。
List:链表
优点:底层实现是循环双链表,当对大量数据进行插入删除时,其时间复杂度O(1) 
缺点:底层没有连续的空间,只能通过指针来访问,所以查找数据需要遍历其时间复杂度O(n),没有提供[]操作符的重载。
(哈希集合,只存储键值,即key本身)
vector<list<int>> data;这个实现了嵌套,首先是一个vector数组,对于每一个位置又形成了一个链表。用来实现哈希判重(链地址法)
(哈希映射,存储key值和value两个),用到的声明
vector<list<pair<int, int>>> data;,注意这个pair是vector带有的,单纯的就是vector<pair<int, int>>,调用的时候就是vector[i].first(第一个值),vector[i].second(第二个值)。与map的区别就是,map根据键值自动排序,不允许有重复的键值,而vector不是自动排序的,可以有相同的键值。
而把key值和value值压入进去要用的make_pair例:data[i].push_back(make_pair(key, value))[详细请见这篇文章](https://blog.youkuaiyun.com/weixin_44915226/article/details/107362610)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值