随笔分类 - LeetCode
摘要:刷题顺序来自:代码随想录 单调栈 739. 每日温度 function dailyTemperatures(temperatures) { let res = Array(temperatures.length).fill(0); let stack = []; // 单调栈 // 倒序遍历, 记录
阅读全文
摘要:刷题顺序来自:代码随想录 基础题目 70. 爬楼梯 到达第i层楼梯的方法数量等于到达第i-1层与第i-2层的方法数量之和。递推公式为:dp[i]=dp[i-1]+dp[i-2],答案实际上就是斐波那契数。 public int climbStairs(int n) { if(n <= 2) { re
阅读全文
摘要:刷题顺序来自:代码随想录 简单贪心 455. 分发饼干 思路:将小饼干喂给胃口小的。 public int findContentChildren(int[] g, int[] s) { Arrays.sort(g); Arrays.sort(s); int count = 0; int feede
阅读全文
摘要:刷题顺序来自:代码随想录 组合 77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 回溯 public List<List<Integer>> combine(int n, int k) { backtracking(n, k
阅读全文
摘要:刷题顺序来自:代码随想录 左叶子之和 404. 左叶子之和 计算给定二叉树的所有左叶子之和。 private int sum = 0; public int sumOfLeftLeaves(TreeNode root) { if(root == null) { return sum; } if(ro
阅读全文
摘要:刷题顺序来自:代码随想录 二叉树的递归遍历 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 public List<Integer> preorderTraversal(TreeNode root) { ArrayList<Integer> list = n
阅读全文
摘要:刷题顺序来自:代码随想录 用栈实现队列 232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)。 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头
阅读全文
摘要:刷题顺序来自:代码随想录 反转字符串 344. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s = ["h","e","l","l
阅读全文
摘要:刷题顺序来自:代码随想录 字母异位词 242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 **注意:**若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t =
阅读全文
摘要:刷题顺序来自:代码随想录 删除节点 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 public ListNode removeElements(ListNode head, int
阅读全文
摘要:刷题顺序来自:代码随想录 二分查找 704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例1: 输入: nums = [-1,0,3,5,9,12], tar
阅读全文