leetcode100题目录

文章目录

链表
二叉树
map
数组
调度
下一个排列
DFS
LRU缓存
二分查找
双指针
数组
贪心
回溯
位运算
单调栈和栈
排序
前缀和
字典树
dp (13)
完全背包
最大子序
看当前位置的上方和左方
01背包
买卖股票
打家劫舍

链表

easy

合并两个有序链表
相交链表(双指针,走完自己链表走另一个链表)
环形链表(快慢指针,扣圈)
反转链表(方法一:迭代,方法二:递归)
回文链表(使用快慢指针,快指针走两步,慢指针走一步,慢指针并反转前半部分链表)

middle

两数相加(注意进位和判断链表为空)
排序链表(归并模版,注意中间节点处理)
删除链表的倒数第 N 个结点
根据身高重建队列(先自定义排序,再使用list插入)

hard

二叉树

合并二叉树(前序遍历判断并构造,返回构造后的树)
二叉树的最大深度(dfs向上返回深度,bfs记录深度)
二叉树的直径(求最大深度,同上)
翻转二叉树(前序遍历:每个节点都交换左右子树)
对称二叉树(dfs和BFS)
不同的二叉搜索树(根节点两边相乘,然后累加)
二叉树展开为链表(dfs或者直接遍历)
二叉树的中序遍历(栈模拟递归,标记)
二叉树的最近公共祖先(后序遍历判断左右子树)
把二叉搜索树转换为累加树(中序遍历倒序)
验证二叉搜索树(中序遍历,记录前一个节点)
括号生成(dfs,记录左右括号数)
从前序与中序遍历序列构造二叉树

map

两数之和(map)
字母异位词分组(拍个序,然后放map)
会议室 II(记录)

数组

汉明距离(位运算a^b, n=n&(n-1))
只出现一次的数字(位运算)
多数元素(摩尔投票法)
找到所有数组中消失的数字(原数组操作对index标记)
最小栈(辅助栈)
有效的括号(辅助栈)

调度

任务调度器
下一个排列
下一个排列
DFS
岛屿数量
单词搜索

LRU缓存

-146. LRU 缓存机制(map+list)

二分查找

在排序数组中查找元素的第一个和最后一个位置
搜索旋转排序数组

双指针

移动零
盛最多水的容器
颜色分类
最短无序连续子数组

数组

除自身以外数组的乘积
搜索二维矩阵 II(空间缩减)
寻找重复数(原数组标记)
三数之和(两个排序数组之和思想)

贪心

跳跃游戏

回溯

电话号码的字母组合
全排列(回溯)
组合总和(回溯)
子集(回溯)

位运算

比特位计数(位运算)
单调栈和栈
每日温度(单调栈)
字符串解码(使用双栈)

排序

数组中的第K个最大元素
前 K 个高频元(最小堆)

前缀和

和为K的子数组(map存储<前缀和,出现次数>)

字典树

实现 Trie (前缀树)

dp (13)

完全背包

爬楼梯(简单dp)
零钱兑换
完全平方数

最大子序

最大子序和(DP)
乘积最大子数组
最长递增子序列(注意这里子序列可以非连续,上面两题为连续)

看当前位置的上方和左方

最大正方形
不同路径(动态转移方程:当前位置等于上面和左边的和)
最小路径和(同62思想)

01背包

分割等和子集
目标和

买卖股票

买卖股票的最佳时机(dp,然后优化一下空间)

打家劫舍

打家劫舍(dp[i] = max(dp[i-1], dp[i-2]+nums[i]);)
打家劫舍 III(树形,后序遍历)
无重复字符的最长子串(滑动窗口)
寻找两个正序数组的中位数(方法一:两路归并找中位数,方法二:待研究)
二叉树的序列化与反序列化
滑动窗口最大值(单调队列,插入删除和取最大值都是O(1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值