题目 | 情况(%最优解;~非最优解;&卡数据;*没思路) | 思路 |
---|---|---|
88. 合并两个有序数组 | % | 双指针,从后往前遍历 |
100. 相同的树 | % | 递归先序遍历 |
101. 对称二叉树 | & | 递归左子树的左节点比较右子树的右节点 |
104. 二叉树的最大深度 | % | 递归遍历左右子树,传递当前深度 |
83. 删除排序链表中的重复元素 | % | 遍历 |
125. 验证回文串 | % | 双指针,前后遍历,跳过特殊字符 |
6. Z 字形变换 | % | 记录变换方向 |
33. 搜索旋转排序数组 | * | 变换二分法 |
11. 盛最多水的容器 | ~ | 双指针 |
34. 在排序数组中查找元素的第一个和最后一个位置 | ~ | 找寻左边界和右边界 |
23. 合并K个排序链表 | * | 分治 |
29. 两数相除 | * | 分解问题,位运算 |
94. 二叉树的中序遍历 | ~ | 栈,游标 |
98. 验证二叉搜索树 | % | 递归 |
144. 二叉树的前序遍历 | ~ | 栈 |
236. 二叉树的最近公共祖先 | * | 递归; |
41. 缺失的第一个正数 | * | 当前数组做bitmap |
24. 两两交换链表中的节点 | % | 遍历 |
32. 最长有效括号 | * | 动态规划 |
55. 跳跃游戏 | ~ | 从后向前 |
16. 最接近的三数之和 | % | 排序,双指针 |
18. 四数之和 | % | 排序 |