
LeetCode
之井
路漫漫其修远兮
展开
-
【2022暑期】【LeetCode】31. 下一个排列
LeetCode原创 2022-06-20 23:52:28 · 196 阅读 · 1 评论 -
【2022初春】【LeetCode】91. 解码方法
典型的题目,拼单词注意是两个状态累加,不是单纯的+1,而且注意下标的问题class Solution { public int numDecodings(String s) { int[] dp = new int[s.length()+1]; dp[0] = 1; for(int i=1; i<=s.length(); i++){ if(s.charAt(i-1)!='0') dp[i] = dp[原创 2022-05-26 10:56:00 · 173 阅读 · 0 评论 -
【2022初春】【LeetCode】45. 跳跃游戏 II
动规+贪心跳跃,思路是OK的,但是实现上一直有问题,需要多理解class Solution { public int jump(int[] nums) { int ans = 0; int end = 0; int maxlen = 0; for(int i=0; i<nums.length-1; i++){ maxlen = Math.max(maxlen,i+nums[i]);原创 2022-05-25 10:50:22 · 249 阅读 · 0 评论 -
【2022初春】【LeetCode】430. 扁平化多级双向链表
递归,居然一次写出来了,注意细节,比如child要变null,cnt可能为null/*// Definition for a Node.class Node { public int val; public Node prev; public Node next; public Node child;};*/class Solution { public Node flatten(Node head) { //if(head==null)原创 2022-05-23 11:13:30 · 138 阅读 · 0 评论 -
【2022初春】【LeetCode】462. 最少移动次数使数组元素相等 II
一开始写成了找平均数,其实应该找中位数class Solution { public int minMoves2(int[] nums) { int res = 0; int avg = 0; Arrays.sort(nums); avg = nums[nums.length/2]; for(int num : nums){ res += Math.abs(avg-num);原创 2022-05-03 17:06:26 · 166 阅读 · 0 评论 -
【2022初春】【LeetCode】695. 岛屿的最大面积
一次过了,但还需要总结class Solution { int res = 0; int[][] visited; public int maxAreaOfIsland(int[][] grid) { if(grid.length==0||grid[0].length==0) return 0; this.visited = new int[grid.length][grid[0].length]; for(int i原创 2022-04-20 10:28:39 · 130 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】129. 求根节点到叶节点数字之和
树的深搜计数,记路径/** * 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原创 2022-04-15 11:43:20 · 107 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】257. 二叉树的所有路径
回溯和深搜还是要练/** * 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 r原创 2022-04-15 11:31:38 · 79 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】515. 在每个树行中找最大值
层序遍历过了,但是有点耗时/** * 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, TreeNo原创 2022-04-14 21:44:01 · 180 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】513. 找树左下角的值
层序一遍过了时间好像略高也可以用dfs,感觉和树的左视图很像/** * 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, Tr原创 2022-04-13 17:20:20 · 193 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】671. 二叉树中第二小的节点
暂存吧,不是很难的题,但是一直想不出思路/** * 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,原创 2022-04-13 16:48:32 · 259 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】662. 二叉树最大宽度
基础想法是对的,但是做法和实现方式要学习,下标方法/** * 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原创 2022-04-13 11:39:47 · 118 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】559. N 叉树的最大深度
看来这个Sysytem.out很占时间/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) {原创 2022-04-13 10:55:33 · 120 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】690. 员工的重要性
写出来了但是耗时很长再提交又不耗时了,很怪/*// Definition for Employee.class Employee { public int id; public int importance; public List<Integer> subordinates;};*/class Solution { int value = 0; Map<Integer,Employee> map = new HashMap&l原创 2022-04-13 10:32:34 · 126 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】429. N 叉树的层序遍历
N叉树层序,无大区别/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) { val原创 2022-04-12 23:11:55 · 132 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】102. 二叉树的层序遍历
层序遍历处理overqueue队列的函数是 add/offer poll/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int va原创 2022-04-12 23:01:44 · 662 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】687. 最长同值路径
写递归程序,重要的是四点,输入参数、输出结果、函数的功能、终止条件。二叉树本身就具有递归这种性质的数据结构,我们需要把它看成“左子树-根节点-右子树”这种结构,就不要再囿于左子节点/右子节点这个思维里了。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {}原创 2022-04-12 22:48:30 · 308 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】654. 最大二叉树
一遍过,但是好像用时很久看了下都是这个思路/** * 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 lef原创 2022-04-11 19:57:26 · 174 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】543. 二叉树的直径
写出来了但是耗时很长,应该考虑怎么剪枝也不是,感觉自己把该递归判断的地方写错了/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int原创 2022-04-11 19:41:11 · 312 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】572. 另一棵树的子树
一开始的思路对了80%,但是还是细节上有问题/** * 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 lef原创 2022-04-11 17:28:06 · 140 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】508. 出现次数最多的子树元素和
自己写出来了,但是很耗时,应该要优化一下在哪里递归需要考虑一下基础语法上,map的遍历,ArrayList转int数组需要学习/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val =原创 2022-04-11 16:12:10 · 110 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】617. 合并二叉树
/** * 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) { *原创 2022-04-09 12:12:16 · 416 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】563. 二叉树的坡度
感觉自己好像又明白一些啦/** * 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, TreeNod原创 2022-04-09 11:58:33 · 159 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】437. 路径总和 III
深搜的写法也没写明白,先想清楚逻辑再写/** * 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,原创 2022-04-09 11:42:15 · 166 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】226. 翻转二叉树
还是没必要新建节点/** * 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 r原创 2022-04-09 11:26:37 · 289 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】101. 对称二叉树
/** * 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) { *原创 2022-04-09 10:58:28 · 120 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】222. 完全二叉树的节点个数
这道题学的是,求二叉树的深度,节点个数,在完全二叉树的基础上,怎么简化深度以及完全二叉树求节点个数的优化求二叉树的深度private int countLevel(TreeNode root){ if(root == null){ return 0; } return Math.max(countLevel(root.left),countLevel(root.right)) + 1;}求二叉树的节点个数public int countNodes(Tre原创 2022-04-09 00:00:39 · 247 阅读 · 0 评论 -
【2022初春】【LeetCode】【树】100. 相同的树
注意不能加等于的判断/** * 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原创 2022-04-08 17:26:32 · 183 阅读 · 0 评论 -
【2022初春】【LeetCode】222. 完全二叉树的节点个数
/** * 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) { *原创 2022-03-07 20:25:11 · 224 阅读 · 0 评论 -
【2022初春】【LeetCode】100. 相同的树
/** * 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) { *原创 2022-03-07 19:42:45 · 85 阅读 · 0 评论 -
【2022初春】【LeetCode】143. 重排链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }原创 2022-03-04 10:47:58 · 280 阅读 · 0 评论 -
【2022初春】【LeetCode】725. 分隔链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }原创 2022-03-04 10:04:37 · 225 阅读 · 0 评论 -
【2022初春】【LeetCode】82. 删除排序链表中的重复元素 II
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }原创 2022-03-04 09:32:59 · 7416 阅读 · 0 评论 -
【2022初春】【LeetCode】92. 反转链表 II
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }原创 2022-03-03 20:54:42 · 120 阅读 · 0 评论 -
【2022初春】【LeetCode】234. 回文链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }原创 2022-02-28 11:15:14 · 82 阅读 · 0 评论 -
【2022初春】【LeetCode】918. 环形子数组的最大和
class Solution { public int maxSubarraySumCircular(int[] nums) { int len = nums.length; int all = nums[0]; int[] fmax = new int[len]; int[] fmin = new int[len]; int rmax = nums[0]; int rmin = nums[0];原创 2022-02-20 00:39:11 · 244 阅读 · 0 评论 -
【2022初春】【LeetCode】740. 删除并获得点数
打家劫舍变形class Solution { public int deleteAndEarn(int[] nums) { int len = nums.length; if(len<=1) return nums[0]; int[] f = new int[10001]; int[] tmp = new int[10001]; for(int num:nums){ tmp[num]++;原创 2022-02-16 11:00:49 · 7588 阅读 · 0 评论 -
【2022初春】【LeetCode】213. 打家劫舍 II
class Solution { public int rob(int[] nums) { int len = nums.length; if(len<=1) return nums[0]; int[] f = new int[len+1]; int[] d = new int[len+1]; f[1]=nums[0]; d[2]=nums[1]; for(int i=2; i<原创 2022-02-16 10:25:23 · 228 阅读 · 0 评论 -
【2022初春】【LeetCode】198. 打家劫舍
class Solution { public int rob(int[] nums) { int len = nums.length; int[] f = new int[len+1]; f[0]=0; f[1]=nums[0]; for(int i=2; i<=len; i++){ f[i] = Math.max(f[i-2]+nums[i-1],f[i-1]); }原创 2022-02-16 09:46:46 · 207 阅读 · 0 评论 -
【剑指offer】【LeetCode】746. 使用最小花费爬楼梯
class Solution { public int minCostClimbingStairs(int[] cost) { int len = cost.length; int[] f = new int[len+1]; f[0]=0; f[1] = cost[0]; for(int i=2; i<=len; i++){ f[i] = Math.min(f[i-1],f[i-2]) +原创 2022-02-15 16:25:56 · 193 阅读 · 0 评论