
2022初春
之井
路漫漫其修远兮
展开
-
【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初春】【笔记】NSum问题
2Sum指针,Nsum嵌套import org.omg.Messaging.SYNC_WITH_TRANSPORT;import java.util.*;public class Main{ public static int ans = 0; public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt();原创 2022-04-18 15:47:34 · 221 阅读 · 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初春】【笔记】生产者消费者问题
生产者消费者模式,是通过一个容器来解决生产者和消费者之间的强耦合关系。生产者和消费者之间不直接通信,而是通过阻塞队列进行通信。原创 2022-04-14 15:17:05 · 124 阅读 · 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初春】【笔记】自定义类排序写法
自定义排序函数1.定义要排序的类2.写个类继承排序接口,重写排序函数3.在主类里调用排序函数String自带compareTo是按字符顺序比较import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String sn = sc.nextLine(); Strin原创 2022-04-09 18:02:43 · 244 阅读 · 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初春】【笔记】手撕快排
快排原创 2022-03-14 15:32:22 · 165 阅读 · 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】876. 链表的中间结点
/** * 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 10:29:06 · 125 阅读 · 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 评论