
刷题指南
DEGv587
这个作者很懒,什么都没留下…
展开
-
Leetcode剑指Offer刷题 - 第二十八天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 37. 序列化二叉树解法:bfs 层序遍历序列化 Serialize :借助队列,对二叉树做层序遍历,并将越过叶节点的null也打印出来。1.特例处理: 若 root 为空,则直接返回空列表 "[]" ;2.初始化: 队列 queue (包含根节点 root );序列化列表 ret ;3.层序遍历: 当 queue 为空时跳出;...原创 2022-02-20 22:41:17 · 323 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十七天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 59 - I. 滑动窗口的最大值解法一:暴力模拟class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (nums.length == 0) return new int[0]; int len = nums.lengt..原创 2022-02-19 23:36:05 · 309 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十六天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 20. 表示数值的字符串解法:模拟class Solution { public boolean isNumber(String s) { if (s == null || s.length() == 0) return false; //去掉首位空格 s = s.trim(); ..原创 2022-02-18 21:41:21 · 350 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十五天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 29. 顺时针打印矩阵解法:模拟class Solution { public int[] spiralOrder(int[][] matrix) { if (matrix.length == 0) return new int[0]; int n = matrix.length, m = matrix[..原创 2022-02-17 23:47:41 · 333 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十四天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 14- I. 剪绳子解法:数学法: 尽可能将绳子以长度 33 等分为多段时,乘积最大class Solution { public int cuttingRope(int n) { if (n <= 3) return n - 1; int a = n / 3, b = n % 3; ..原创 2022-02-16 22:19:43 · 290 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十三天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 39. 数组中出现次数超过一半的数字解法一:排序库函数 + 取中位数class Solution { public int majorityElement(int[] nums) { if (nums.length == 0) return -1; Arrays.sort(nums); r..原创 2022-02-15 12:48:04 · 323 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十二天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 56 - I. 数组中数字出现的次数解法:分组异或class Solution { public int[] singleNumbers(int[] nums) { //遍历 nums 执行异或 int n = 0, m = 1, x = 0, y = 0; for (int num : ..原创 2022-02-14 23:23:03 · 356 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十一天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 15. 二进制中1的个数解法:位运算public class Solution { public int hammingWeight(int n) { int ret = 0; while (n != 0) { ret += n & 1; n >..原创 2022-02-13 18:23:18 · 207 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二十天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 07. 重建二叉树题目信息:前序遍历和中序遍历的结果中都不含重复的数字解法:分治思想class Solution { int[] preorder;//保留的先序遍历 HashMap<Integer, Integer> map = new HashMap<>();//标记中序遍历 publi..原创 2022-02-12 22:30:22 · 441 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十九天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 64. 求1+2+…+n解法一:等差数列求和公式class Solution { public int sumNums(int n) { //Sn = n(n + 1) / 2 return (int)(Math.pow(n, 2) + n) >> 1; }}解法二:通过递归替代..原创 2022-02-11 23:22:23 · 514 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十八天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 55 - I. 二叉树的深度解法一:递归DFSclass Solution { public int maxDepth(TreeNode root) { if (root == null) return 0; int left = maxDepth(root.left); int righ..原创 2022-02-11 00:03:18 · 372 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十七天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 40. 最小的k个数解法一:排序class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (arr.length == 0 || k == 0) return new int[0]; Arrays.sort(arr); ..原创 2022-02-10 22:28:23 · 451 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十六天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 45. 把数组排成最小的数解法一:快排设数组 nums 中任意两数字的字符串为 x 和 y若拼接字符串 x + y > y + x ,则 x “大于” y ;反之,若 x + y < y + x ,则 x “小于” yclass Solution { public String minNumber(int[]...原创 2022-02-07 23:58:29 · 198 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十五天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 34. 二叉树中和为某一值的路径解法:DFS(先序遍历 + 路径记录)LinkedList/* 初始化:构建 ret ,路径列表path pathSum(root, target) 函数: 1.dfs; 2.返回ret; dfs(node, target) 函数: 1.递推..原创 2022-02-07 23:08:13 · 731 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十四天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 12. 矩阵中的路径解法:DFS(深度优先遍历) + 剪枝class Solution { public boolean exist(char[][] board, String word) { char[] words = word.toCharArray(); for (int i = 0; i <.原创 2022-02-06 22:12:52 · 411 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十三天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 21. 调整数组顺序使奇数位于偶数前面解法:双指针交换(易理解版)class Solution { public int[] exchange(int[] nums) { int start = 0, end = nums.length - 1; while (start < end - 1) { .原创 2022-02-05 15:54:38 · 353 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十二天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 25. 合并两个排序的链表解法一:迭代/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */cl..原创 2022-02-04 21:51:28 · 739 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十一天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 18. 删除链表的节点解法一:双指针/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */clas.原创 2022-02-03 21:37:23 · 451 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第十天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 46. 把数字翻译成字符串解法:动归初始化:(nums[0] == 2 && nums[1] <= 5) || nums[0] == 1 --> dp[1] = 2 else --> dp[1] = dp[0]递推关系:(nums[i - 1] == 2 &&am...原创 2022-02-02 18:19:01 · 369 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第九天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 42. 连续子数组的最大和解法:动归class Solution { public int maxSubArray(int[] nums) { int[] dp = new int[nums.length]; dp[0] = nums[0]; int max = nums[0]; ..原创 2022-02-01 19:29:26 · 400 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第八天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 10- I. 斐波那契数列解法:动态规划,如果用递归会超时)注意:题内有要求--> 答案需要取模 1e9+7(1000000007)class Solution { public int fib(int n) { if (n <= 0) return n; int first = 0;...原创 2022-01-31 18:50:50 · 266 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第七天
Leetcode剑指Offer刷题指南:Leetcode剑指Offer刷题-学习计划目录_DEGv587的博客-优快云博客剑指 Offer 26. 树的子结构解法:递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val...原创 2022-01-30 22:15:43 · 668 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第六天
面试题32 - I. 从上到下打印二叉树解法:层序遍历二叉树 BFS/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] levelOrd原创 2022-01-30 20:37:49 · 562 阅读 · 0 评论 -
Leetcode剑指Offer刷题-学习计划目录
Leetcode剑指Offer刷题 - 第一天_DEGv587的博客-优快云博客Leetcode剑指Offer刷题 - 第二天_DEGv587的博客-优快云博客Leetcode剑指Offer刷题 - 第三天_DEGv587的博客-优快云博客Leetcode剑指Offer刷题 - 第四天_DEGv587的博客-优快云博客Leetcode剑指Offer刷题 - 第五天_DEGv587的博客-优快云博客...原创 2022-01-28 22:32:18 · 475 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第五天
剑指 Offer 04. 二维数组中的查找解法一:暴力循环class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { if (matrix.length == 0) { return false; } int n = matrix.length, m = matrix[0].length; for (原创 2022-01-28 22:25:34 · 162 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第四天
剑指 Offer 03. 数组中重复的数字解法一:HashSetclass Solution { public int findRepeatNumber(int[] nums) { Set<Integer> set = new HashSet<>(); for (int num : nums) { if (!set.add(num)) { return num;原创 2022-01-27 23:16:55 · 458 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第三天
剑指 Offer 05. 替换空格解法:StringBuilder + 循环更换class Solution { public String replaceSpace(String s) { StringBuilder sb = new StringBuilder(); for (char c : s.toCharArray()) { if (c == ' ') { sb.append("%20");原创 2022-01-26 18:52:46 · 337 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第二天
剑指 Offer 06. 从尾到头打印链表解法一:辅助栈class Solution { public int[] reversePrint(ListNode head) { //辅助栈 Deque<Integer> stack = new ArrayDeque<>(); int count = 0; while (head != null) { stack.push(head.原创 2022-01-25 23:45:39 · 301 阅读 · 0 评论 -
Leetcode剑指Offer刷题 - 第一天
剑指 Offer 09. 用两个栈实现队列方法:双栈:固定一个栈做插入,另一个栈做删除便于理解版(未优化):public class CQueue { //定义两个栈 private Stack<Integer> stack1; private Stack<Integer> stack2; public CQueue() { this.stack1 = new Stack<>(); this.原创 2022-01-25 20:59:37 · 420 阅读 · 0 评论