LeetCode 大厂算法刷题笔记(C++)
2021-06-14 13:39:42 0 举报
AI智能生成
Leetcode刷题笔记 从top100和剑指offer开始,面向面试刷题,2个月准备大厂code test
作者其他创作
大纲/内容
查找
二分查找
模板
基本二分 (left=0,right=n-1)
找左边的(可包含重复值)(找到后会继续缩小直到l和r重合)(left=0, right=n-1)
找右边的(结果是ans)(left=0, right=n)
34. 在排序数组中查找元素的第一个和最后一个位置
1、lower_bound和upper_bound库函数
code
2、手动实现lower_bound和upper_bound
3、二分查找
35.搜索插入位置
code
排序
快速排序
912. 排序数组
1、快速排序
挖坑填数
随机数版
双指针
字符串
165. 比较版本号
进制转化
code
5740. 所有元音按顺序排布的最长子字符串
code
20. 有效的括号(括号匹配)
栈
code
151. 翻转字符串里的单词
倒序遍历
code
5772. 检查某单词是否等于两单词之和
练习string转char转数字
String转char[]
用for循环
char[]转数字
用-'0'
char[]转String
用 string+=char
code
string转数字更简单的写法
5773. 插入后的最大值
code
8. 字符串转换整数 (atoi)
code
22. 括号生成
递归法,左括号的和要小于或等于右括号
code
数组
前缀和系列
560. 和为K的子数组
前缀和 + 哈希表
code
枚举(必定超时,不能用)
code
剑指 Offer 39. 数组中出现次数超过一半的数字
code
1248. 统计「优美子数组」
54. 螺旋矩阵
边界收缩
code
137. 只出现一次的数字 II
code
待研究
1、两数之和
枚举
code
哈希表
code
unordered_map
find()
count()
c++ ->second
用在map的pair里key或value的选择
(*it).first 或者 it->first 会得到key
(*it).second 或者 it->second 会得到value
哈希表
146.LRU缓存机制
方法:哈希表+双向链表
哈希表能在0(1)复杂度内找到键和对应的值
哈希表能在0(1)复杂度内找到键和对应的值
code
扩展:unordered_map用法
赋值
迭代器的使用
成员函数
踩坑
练习
剑指 Offer 39. 数组中出现次数超过一半的数字
code
137. 只出现一次的数字 II
code
待研究
栈
232. 用栈实现队列
code
剑指 Offer 09. 用两个栈实现队列
code
链表
21. 合并两个有序链表
递归
code
迭代
code
237. 删除链表中的节点
复制节点
code
83. 删除排序链表中的重复元素
code
19. 删除链表的倒数第 N 个结点
快慢指针(常用)
code
计算数组长度
code
141. 环形链表
方法一:哈希表(需要额外空间)
code
方法二:快慢指针
code
剑指 Offer 22. 链表中倒数第k个节点
方法:快慢指针
code
206. 反转链表
双指针迭代
code
递归
code
24. 两两交换链表中的节点
迭代
code
测试
code
二叉树
100.相同的树
code
101.对称二叉树
code
102. 二叉树的层序遍历
code
扩展:queue
成员函数
扩展:二维vector
用法
103.二叉树的锯齿形层序遍历
code
对比102. 二叉树的层序遍历 代码类似
双向队列,如果在奇数层就从back()处开始push,如果偶数层就从front()开始push
双向队列,如果在奇数层就从back()处开始push,如果偶数层就从front()开始push
236. 二叉树的最近公共祖先
递归
哈希表
105. 从前序与中序遍历序列构造二叉树
回溯算法
思路:画出回溯树
回溯算法是在一棵树上的 深度优先遍历(因为要找所有的解,所以需要遍历);
回溯算法是在一棵树上的 深度优先遍历(因为要找所有的解,所以需要遍历);
组合问题(不需要考虑顺序性)
子集
78.子集
递归
code
迭代
时间复杂度太高,不考虑
90. 子集 II
code
ps:子集I和子集II返回的子集都不能包含重复元素,他们之间的区别是子集II题目给的集合里包含重复元素
77.组合
code
递归树
39. 组合总和
22. 括号生成
递归法,左括号的和要小于或等于右括号
code
排列问题(需要顺序性)
搜索问题
动态规划
打家劫舍
198.打家劫舍
213.打家劫舍II
337.打家劫舍III
背包问题
子串&子序列
5.最长回文子串
中心扩展法
code
1143.最长公共子序列
常规二维数组
code
优化滚动一维
code
数学
836.区间重叠
1、将二维问题转化为一维数组
code
2、考虑上下左右四种重合情况
code
大数系列
大数乘法
面试
topK问题

收藏
0 条评论
下一页
为你推荐
查看更多