LeetCode刷题
文章平均质量分 85
nosnef
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题day11——栈和队列part2
如果用排序的话:都不满足题目复杂度要求,那么借助哈希表。统计元素出现的频率用map,但map本身是对key(存储元素)排序的,本题需要val(存储元素出现的次数)排序,所以复杂度是nlogn。那么考虑用优先级队列。原创 2024-06-17 23:08:24 · 1017 阅读 · 1 评论 -
LeetCode刷题day10——栈与队列
常量引用版本用于从已存在的对象中复制数据,而右值引用版本则用于从即将销毁的对象中移动数据,从而优化性能和资源利用。选择合适的函数取决于你的具体需求和对象的状态(是否为临时对象)。原创 2024-06-17 15:40:05 · 776 阅读 · 0 评论 -
LeetCode刷题day9——字符串part2
151.翻转字符串里的单词建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。 题目链接/文章讲解/视频讲解思路:(1)移除多余空格(2)将整个字符串反转(3)将每个单词反转其中翻转每个单词的时候,卡哥的代码更简洁:本题收获1、split用法:C++中split的实现2、erase删除元素用法,O(n)时间复杂度:earse用法3、resize(重新设置):resize用法卡码网:55.右旋转字符串题目链接/文章讲解自己思路:将需原创 2024-06-14 23:14:51 · 220 阅读 · 2 评论 -
LeetCode刷题day8——字符串part1
在C++中使用std::reverse函数来反转字符数组(或更一般的数组/容器)中的前k个元素时,要注意的是std::reverse函数的第二个参数是一个不包含的上限,即它指向的是要反转范围之外的一个位置。建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数。2、数组填充类的问题,其做法都是先预先给数组扩容带填充后的大小,然后在从后向前进行操作。建议:本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。原创 2024-06-14 16:58:13 · 319 阅读 · 2 评论 -
LeetCode刷题day7——哈希表part2
建议: 要比较一下,本题和 454.四数相加II 的区别,为什么 454.四数相加II 会简单很多,这个想明白了,对本题理解就深刻了。巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间 换时间, 工业开发也是这样。可以看出很垃圾,,剪枝和去重很多条件都没考虑到位,经过看卡哥的代码,然后一点点对应修改现在的缺陷,并通过打印日志来看自己哪里有问题,最终AC。建议:本题虽然和 两数之和 很像,也能用哈希法,但用哈希法会很麻烦,原创 2024-06-14 10:48:09 · 694 阅读 · 0 评论 -
LeetCode刷题day6——哈希表part1
std::unique 函数是 C++ 标准库中的一个算法,它会将相邻的重复元素移到容器的尾部,并返回一个指向新的逻辑末尾的迭代器。看完代码随想录思路:字符映射到数组也就是哈希表的索引下标上,因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25。那么判断元素是否出现,这个元素就要作为key,所以数组中的元素作为key,有key对应的就是value,value用来存下标。这是一个标准的C++数组声明,表示一个包含26个整数的数组,并且所有元素都初始化为0。原创 2024-06-12 01:02:23 · 985 阅读 · 1 评论 -
LeetCode刷题day2——数组part2
数组其实是有序的, 过负数平方之后可能成为最大数了。所以数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。排序排了半天只知道两个两个比较,还有个外层循环不知道怎么写…sort一行直接秒杀我,,我可真是个菜鸡。1、先给数组平方再排序。原创 2024-06-11 16:07:03 · 262 阅读 · 3 评论 -
LeetCode刷题day1—— 27. 移除元素(快慢指针)
LeetCode移除元素原创 2024-06-11 10:51:21 · 235 阅读 · 1 评论 -
LeetCode刷题day1——704二分查找
二分法原创 2024-06-11 10:11:48 · 416 阅读 · 2 评论