算法题 - Aminute/aminute GitHub Wiki

map的遍历 https://blog.csdn.net/leijie0322/article/details/123023309

🌞合并K个排序链表

🌞不同的二叉搜索树 II

🌞全排列

🌞戳气球

⭐️⭐️⭐️⭐️⭐️滑动窗口的最大值

⭐️⭐️⭐️⭐️⭐️山脉数组中查找目标值 找山顶值的时候按照二分比较,mid和mid+1

⭐️⭐️⭐️⭐️⭐️编辑距离 明确dp[i][j]代表啥就好办了

1、最长回文字串

2、写三个线程 轮流打印 ABC

3、三数之和 固定第一个数字

⭐️⭐️⭐️⭐️⭐️4、环形链表入口

  • 相遇时 s f走了s+nb 所以:f-s=nb;所以s=nb,又a+nb刚好是入口点,就让f从头走,相遇时即为入口点

⭐️⭐️⭐️⭐️⭐️5、最长公共子序列

6、对称二叉树(简单)

7、二叉树的最近公共祖先

8、搜索二维矩阵

9、爬楼梯

  • 采用非递归算法进行计算

10、相交链表

11、合并k个排序链表

12、2的幂(简单)

13、奇偶链表

14、重排链表

15、反转链表

⭐️⭐️⭐️⭐️⭐️16、LRU缓存机制

17、每日温度

⭐️⭐️⭐️⭐️⭐️ 18、买卖股票的最佳时机 II

19、最大子序和

20、消失的数字

⭐️⭐️⭐️⭐️⭐️21、接雨水

22、盛最多水的容器

24、和为k的子数组

25、路径总和3 🌞

26、二叉搜索树的第k大节点 🌞

27、搜索旋转排序数组 🌞

28、腐烂的橘子/传染的猪

⭐️⭐️⭐️⭐️⭐️29、最长上升子序列

30、最长回文字串

⭐️⭐️⭐️⭐️⭐️31、二叉搜索树的祖先

⭐️⭐️⭐️⭐️⭐️32、二叉树的祖先

⭐️⭐️⭐️⭐️⭐️33、将有序数组转换为二叉搜索树

⭐️⭐️⭐️⭐️⭐️34、K 个一组翻转链表

35、最小栈

⭐️⭐️⭐️⭐️⭐️36、无重复字符的最长子串

⭐️⭐️⭐️⭐️⭐️37、二叉树中的最大路径和

39、合并区间

难🌞的40、 数组中的第K个最大元素

  • java创建的是最小堆,比较器

⭐️⭐️⭐️⭐️⭐️41、连续子数组的最大和

42、旋转数组

43、二叉树的完全性检验

44、前 K 个高频元素

45、螺旋矩阵 主要是用sum记录总元素数,如果为0直接返回

46、单词拆分

47、扑克牌中的顺子

48、下一个排列 2 4 7 6 2 1 先找后大于前,再从后往前找替换的数,reverse

49、下一个更大元素II 直接两次倒叙循环,入栈

50、寻找峰值

51、括号生成 dfs

52、最长有效括号 栈中放位置,还需要理解

53、最大正方形

54、二叉树的前序遍历
55、二叉树的中序遍历
56、二叉树的后序遍历
以上三种遍历需要掌握递归和迭代(栈实现) 解法链接

57、组合总和 递归即可

58、数据流的中位数 两个堆,堆默认是最小堆

⭐️⭐️⭐️⭐️⭐️58、旋转数组的最小数字

59、找到字符串中的所有字母异位词------------题解

60、分割等和子集 主要看动态规划

61、打家劫舍 理解dp[i]表示的是啥打家劫舍3

62、单词搜索 很典型的回溯,可以看模版

63、剪绳子 动态规划可以解决,了解技巧方法

64、课程表 拓扑排序,经典

65、完全平方数 和零钱兑换一样,模版解答

66、实现 Trie (前缀树) 实现一种新的数据结构

67、乘积最大子数组 贼有可能考,还需要再看一遍

68、数值的整数次方 二分法解答,具体细节需要再看一下

69、打印从1到最大的n位数. 用全排列搞一波

⭐️⭐️⭐️⭐️⭐️70、字典序的第K小数字 应该能写出来

⭐️⭐️⭐️⭐️⭐️71、和至少为 K 的最短子数组

72、树的子结构

⭐️⭐️⭐️⭐️⭐️73、数组中的逆序对

74、有序链表转换二叉搜索树

75、重复的字符串 看kmp解法

76、重新安排行程 java8的新操作,加快开发速度

77、rand7()实现rand10()