改变眼泪的理由
改变眼泪的理由
全部文章
分类
归档
标签
去牛客网
登录
/
注册
改变眼泪的理由的博客
全部文章
(共44篇)
题解 | #最小的K个数#
//使用了堆排序的思路。不是构建一个最小堆,把所有数据排完序后取前K个,而是构建一个最大堆,只保存k个数,这个最小堆我们视它为当前暂时筛选出来的k个最小数。如果有哪个数比这k个最小数中的最大的那个小,就相当于拥有了进入这个最小堆的权力。堆中的最大的这个数我们可以看成是“门槛”。它进来后可以把原本的门...
2023-07-15
1
241
题解 | #三数之和#
//参考了代码随想录15.三数之和的写法 //本题的思路是“三指针”,先对数组进行排序,排序后用遍历数组,指针i指向的就是数字a,指针i的下一个位置记为left,即数字b,然后再拿一个指针指向数组中的最后一个数字,即数字c。 //通过不断判断a+b+c与0的关系,比0大就让right左移,比0小就让...
2023-07-04
1
429
题解 | #两数之和#
//根据代码随想录中的思路:这题我们需要不断地去判断与num对应的target-num是否曾经在数组里出现过。这种需要去“判断一个元素是否曾经出现过”的情况非常需要用哈希表来做。 //而且,由于本题还希望你知道每个曾经出现过的元素的下标,因此只用set不够,还得用map。 #include <...
2023-07-02
1
231
题解 | #快乐数#
//https://programmercarl.com/0202.%E5%BF%AB%E4%B9%90%E6%95%B0.html //代码随想录中提到的快乐数。通过使用哈希表来检查中途的计算结果是否曾经出现过。如果出现过则代表进入无限循环了。 #include <unordered_set...
2023-07-02
1
393
题解 | #两个数组的交集#
//这一题使用了哈希表的思路来找到重复元素。 #include <unordered_set> #include <vector> class Solution { private: unordered_set<int>s1; unorder...
2023-07-02
1
358
题解 | #栈的压入、弹出序列#
//参考了剑指offer原书的教学。 //这题的思路是构建一个辅助栈来模拟。围绕popV序列进行。popV序列中的那个数字,如果辅助栈栈顶就有,那就把辅助栈栈顶pop掉。如果没有,则去pushV序列中按照入栈顺序不断入栈(从上次截止的地方开始,在代码中体现为Pushindex不是每次循环都变为0的)...
2023-05-27
1
268
题解 | #删除升序数组的重复元素#
//典型的双指针题。由力扣上的https://leetcode.cn/problems/remove-element/题变种而来。力扣那题只是要移除特定值的元素,这题的“特定值”则是一直在变化的。 //思路上,每当快指针指向的元素是重复的时候,就让慢指针停止一次步进,让快指针跳过这个元素,使得不会再...
2023-05-27
1
364
题解 | #滑动窗口的最大值#
//抄的题解的。注意区分单调队列与优先队列。一个升序的单调队列会自动把比它小的全部出队掉,保证自己进队后还能维持有序性(不是进队时找个正确的位置插入,而是直接就在队尾进队,前面有比自己小的就全部出队滚蛋)。而优先队列则是用了大顶堆的思想,把最大值调整到堆顶(也就是队头)。 //如果只是要实现单调队列...
2023-05-26
1
272
题解 | #包含min函数的栈#
//好久没自己实现过一个栈了。topindex用来指向栈顶的下一个元素。细节处理要稍微注意一下。 //对于最小元素的记录,在入栈时可以随时更新,但出栈时不太好搞。 //有两种方案,一个是维护一个“历史记录”,记录此前min的历史值,出栈时回退历史值即可。这个需要额外的O(N)空间复杂度,但时间上是O...
2023-05-26
1
271
题解 | #用两个栈实现队列#
//这题比较容易就能想到利用栈的先进后出的特性,来在入队时放进栈1,出队时弹到栈2里,将“后出”通过栈的先进后出的特性给逆序成“先出”。 //唯一的问题在于什么时候弹。这个我自己想的时候没考虑好。看了题解说“栈2里还有东西时就pop栈2,没东西时才把栈1里的挨个弹到栈2里”。而且分析下来,每个元素最...
2023-05-26
1
272
首页
上一页
1
2
3
4
5
下一页
末页