- 博客(421)
- 收藏
- 关注
原创 【2019暑期】【PAT甲级】树专练总结
树默认0开存 写前中后序 #include <cstdio> #include <cstdlib> #include <algorithm> #include <iostream> #include <string> #include <cctype> #include <vector> #include <...
2019-09-04 10:31:35
201
原创 【2019暑期】【PAT甲级】图论专练总结
发现了一个大佬总结的好文章,准备按照她的路线进行学习 DFS/BFS 1106 统计层数和次数的时候,在判断里统计,不要在递归里 不然会很麻烦也会导致结果错误 注意更新最小层数时也要把次数还原 int n; double p,r,sum; int cnt=1,minl=999999; vector<int> node[110000]; void dfs(int root,int le...
2019-08-31 14:21:17
339
原创 pat 甲级 知识积累
断断续续也做了30多个题了,不总结一下乱做也没效果,有一些还是要背一背的 ♦ 1002 有一个输出问题, 注意输出格式, 尽量多用scanf printf ,做到现在基本只有在用到string的时候只能cin cout 。 ♦ 开数组大小的时候要考虑全面,有些时候不通过或者显示段错误的话就把数组再开大点。。 ♦ 目前遇到的dijkstra题都还没去研究,,接下来这几天的目标就是继续刷题,然...
2018-08-14 19:30:04
548
原创 【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
217
原创 【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
295
原创 【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
174
原创 【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
205
原创 【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
165
原创 【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
280
原创 【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
150
原创 【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
113
原创 【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
223
原创 【2022初春】【笔记】生产者消费者问题
生产者消费者模式,是通过一个容器来解决生产者和消费者之间的强耦合关系。生产者和消费者之间不直接通信,而是通过阻塞队列进行通信。
2022-04-14 15:17:05
163
原创 【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
227
原创 【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
302
原创 【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
151
原创 【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
151
原创 【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
166
原创 【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
166
原创 【2022初春】【LeetCode】【树】102. 二叉树的层序遍历
层序遍历处理over queue队列的函数是 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
709
原创 【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
344
原创 【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
202
原创 【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
351
原创 【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
181
原创 【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
140
原创 【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
279
原创 【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
445
原创 【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
189
原创 【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
209
原创 【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
321
原创 【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
150
原创 【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
283
原创 【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
218
原创 【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
255
原创 【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
116
原创 【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
326
原创 【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
272
原创 【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
7475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅