leecode100热题 HOT 100(2)】的更多相关文章

# 题名 题解 通过率 难度 出现频率     142 环形链表 II       43.3% 中等     146 LRU缓存机制       43.3% 中等     148 排序链表       61.7% 中等     152 乘积最大子序列       35.2% 中等     155 最小栈       49.7% 简单     160 相交链表       47.6% 简单     169 求众数       60.3% 简单     198 打家劫舍       41.4% 简单…
# 题名 题解 通过率 难度 出现频率     1 两数之和       46.5% 简单     2 两数相加       35.5% 中等     3 无重复字符的最长子串       31.1% 中等     4 寻找两个有序数组的中位数       35.9% 困难     5 最长回文子串       26.9% 中等     10 正则表达式匹配       24.6% 困难     11 盛最多水的容器       57.3% 中等     15 三数之和       23.8%…
LeetCode 热题 HOT 100(05,正则表达式匹配) 不够优秀,发量尚多,千锤百炼,方可成佛. 算法的重要性不言而喻,无论你是研究者,还是最近比较火热的IT 打工人,都理应需要一定的算法能力,这也是面试的必备环节,算法功底的展示往往能让面试官眼前一亮,这也是在大多数竞争者中脱颖而出的重要影响因素. 然而往往大多数人比较注重自身的实操能力,着重于对功能的实现,却忽视了对算法能力的提高.有的时候采用不同的算法来解决同一个问题,运行效率相差还是挺大的,毕竟我们最终还是需要站在客户的角度思考问…
337. 打家劫舍 III 思路:后序遍历 + 动态规划 推荐题解:树形 dp 入门问题(理解「无后效性」和「后序遍历」) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val,…
253. 会议室 II(NO) 279. 完全平方数 class Solution { public int numSquares(int n) { // dp[i] : 组成和为 i 的最少完全平方数个数 // base case: dp[0] = 0; int[] dp = new int[n + 1]; for (int i = 1; i < n + 1; i++) { // 最大值即为i dp[i] = i; // 转移方程 for (int j = 1; i - j*j >= 0;…
142. 环形链表 II 思路:快慢指针,快慢指针相遇后,慢指针回到头,快慢指针步伐一致一起移动,相遇点即为入环点 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode detectC…
75. 颜色分类 思路:将 2 往后放,0 往前放,剩余的1自然就放好了. 使用双指针:left.right 分别指向待插入的 0 和 2 的位置,初始 left 指向数组头,right 指向数组尾部. 从头开始遍历数组,若当前位置数为 2 则与 right 所指向元素互换,然后 right 左移,直到当前位置元素不为2: 当前位置元素若为 0 则 和 left 所指元素互换,然后 left 右移.随后接着遍历,直到 和 right相遇. class Solution { public void…
46. 全排列 思路:典型回溯法 class Solution { public List<List<Integer>> permute(int[] nums) { LinkedList<Integer> track = new LinkedList<>(); boolean[] visited = new boolean[nums.length]; dfs(nums, track, visited); return res; } private List&…
207. 课程表 思路:根据题意可知:当课程之间不存在 环状 循环依赖时,便能完成所有课程的学习,反之则不能.因此可以将问题转换成: 判断有向图中是否存在环.使用 拓扑排序法 : 构建 入度表:记录每个结点的入度数: 构建 邻接表:记录每个结点的后继结点: 将入度为0的结点加入队列,开始遍历: 当一个结点出队时,将其后继结点的入度数减1,若减1后入度为0则将后继结点也加入队列: 当所有入度为0的结点都已经出队时,检查是否还有入度不为0的结点,存在则说明不可能完成所有课程的学习. class So…
102. 二叉树的层序遍历 思路:使用队列. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * thi…