刷题记录——LeetCode
本文最后更新于:2021年7月28日 下午
刷题记录——LeetCode
数组
二分法
适用情况
- 在一组有序数字中,进行查找操作
注意
- 根据不同的情况,要对while的循环条件和里面的if选择条件进行修改
基本格式
1 |
|
题目练习
- 209.Minimum Size Subarray Sum—2021.7.6
- 前缀和 O(nlogn)
- 904.Fruit Into Baskets–2021.7.7
- 76.Minmum Window Substring(题解)—2021.7.8
其它
- 59.Spiral Matrix II(题解)—2021.7.9
链表
用while循环遍历链表时,要根据自己的处理逻辑,选择是用while(node->next)
还是while(node)
,一般来说如果能确定进入循环前的node必有值的话,就用前一个,否则用后一个
虚拟头结点
适用情况
- 一般来说,如果对单链表进行操作,除头结点外结点操作基本相同,那么可以添加一个虚拟头结点,使得原头结点变成子节点,统一操作
注意
- 工作指针指向虚拟头结点后,要从node->next开始判断
- 返回vir_head->next才是真正头指针
模板
1 |
|
题目练习
- 203.Remove Linked List Elements
- 707.Design Linked List—2021.7.10
- 24.Swap Nodes in Pairs—2021.7.12
链表翻转
方法
- 头插法:新建一个虚拟头结点,利用头插法构造逆序链表
- 双指针法:利用前后指针,将next的指向逆转过来
题目练习
- 206.Reverse Linked List(笔记)—20217.11
双指针法——一遍找倒数位置元素
注意
- 要确定last、fast指针的距离,以及要选择最后fast是走到最后一个位置处,还是走到null处时,此时的fast的位置到底是不是符合要求的
题目
- 19.Remove Nth Node From End of List(笔记)—2021.712
双指针法——找链表相交结点位置
注意
- 要先确定两个指针的距离,然后同步移动找到指针值相同的结点即可
题目
环形链表——确定环及环入口位置
注意
- 根据快慢指针找环
- 环的入口位置需要数学证明
题目
- [142.Link List Cycle II(题解)—2021.7.13
哈希表
适用情况
- 需要记录元素出现的次数–map
- 需要记录元素是否出现过–set\map
注意
-
如果数据比较少,key可以用int且最大值不大,直接用数组即可
-
如果数据比较少,但特别分散、跨度大,可以用unordered_map
-
如果只是需要记录是否出现过,可以用unordered_set作集合操作,用find判断
也可用map只读一次数据
题目
- 242.Vaild Anagram
- 349.intersection-of-two-arrays—2021.7.14
- 202.Happy Number
- 1.Two Sum—2021.7.15
- 454.4Sum II
- 383.Ransom Note—2021.7.16
- 15.3Sum
- 18.4Sum
扩展阅读
字符串
反转
题目
- 344.Reverse String—2021.7.19
- 541.Reverse String II —2021.7.20
- 151.Reverse Wrods in a String
- 剑指Offer 58-II 左旋转字符串—2021.7.21
- 28.Implement strStr—2021.7.22
- 459.Repeated Sbustring Pattern(无思路)(好好研究)—2021.7.23
栈和队列
预备知识
- 栈、队列是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的。STL中栈的队列往往不被归类为容器,而被归类为container adapter(容器适配器)
注意
stack.pop()
返回值是void,stack.top()
返回值才是具体数值
应用类型
- 对称匹配类问题——栈
- 两个元素匹配,匹配后可再有操作
题目练习
- 232.Implement Queue using Stacks
- 225.Implement Stack using Queues—2021.7.24
- 20.Vaild Parentheses
- 1047.Remove All Adjacent Duplicates In String—2021.7.26
- 150.Evaluate Reverse Polish Notation—2021.7.27
- 239.Sliding Window Maximum(题解问题)—2021.7.28
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!