- 博客(15)
- 收藏
- 关注
原创 代码随想录算法训练营第13天| 239. 滑动窗口最大, 347.前 K 个高频元素
239: 自实现的PriorityQueue, 保存少于K的元素,然后通过传入Pop的参数,保证Queue中含有最近的K的元素,只有主程序直到哪个元素要被弹出,PrirorityQueue自身没有这个信息。347: 标准的PriorityQueue 数据结构。
2023-08-21 14:44:13 55 1
原创 代码随想录算法训练营第10天|232.用栈实现队列, 225. 用队列实现栈
重点: 实现都相对简单。比较需要学习的时如何将题目抽象成正确的数据结构,如何判断应该使用队列还是栈。
2023-08-19 13:15:19 50
原创 代码随想录算法训练营第9天|KMP 算法
2: S[next[17]+1] (S 的第9个字符) 和 S[18] 新加的字符不相等 (就是 s[next[i-1] + 1] <> s[i] ) ,比如新加的字符是D, 那可以知道 next[18] 肯定小于 9 , (因为next[17]是8,所以next[18] 最多就 next[17] + 1). 这个时候,可以把。if (S[i] == S[ next[K-1] + 1 ]) // 当前字符和前一个字符的Next数组所对应字符的下一个字符相等。
2023-08-18 04:19:53 121 1
原创 代码随想录算法训练营第8天|344.反转字符串, 541. 反转字符串II,05.替换空格 ,151.翻转字符串里的单词,58-II.左旋转字符串
5. 翻转主要利用双指针。或者快慢指针(slow,faster),或者两头夹逼。(left,right)1. 字符串是immutable, 所以值无法修改。4. 不申请新空间,原地处理,就只能通过翻转。2. 可以转成char Array来处理。3. 或者申请新空间。
2023-08-16 05:58:14 112 1
原创 代码随想录算法训练营第7天| 454 四数相加 383 赎金信 15 三数之和 18 四数之和
454: N^4 降成N^2 时间复杂度, 通过空间换时间,把前两个数(一半)的和(中间结果)保存起来,然后通过Hash表存取。然后后一半的进行计算,然后查Hash表。18: 四数之和,还是需要双指针法。双指针都是第三第四元素,第一第二还是循环。383:和异体字一样,没有差别,使用数组模拟Hash,然后一个加,一个减。15: 三数之和,需要双指针法。
2023-08-16 04:04:34 178 1
原创 代码随想录算法训练营第6天| 242 有效的字母异位词, 349. 两个数组的交集 , 202. 快乐数 , 1. 两数之和
242: 字母异位词,不需要两个hash表,可以用一个,然后一个增加,一个减少,判断为0就可以。202: 快乐数,使用Hash来标记是否出现过。349:数组交集,使用Set就可以了,
2023-08-15 12:40:39 308
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
3. 区间定义为不变量,每一次边界处理必须坚持区间定义 (循环不变量)1. 数组是不能删除,只能覆盖,所以要移动元素。3.2. 左闭右开 [left,right)3.1 左闭右闭 [left,right]2. 二分查找的前提是有序,无重复。左闭右闭 [left,right]左闭右开 [left,right)
2023-08-10 10:18:57 656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人