Java
virus98
这个作者很懒,什么都没留下…
展开
-
两个Integer型相加溢出后的赋值情况说明
这里对两个有符号的Integer型数据相加的情况进行说明,对于Unsigned int的情况不适用。 一、情形 public class Main { public static void main(String[] args) { //m = n = (2^32 - 1) int m = 2147483647; int n = 2147483647; Long z = (long)(m + n); int x =原创 2021-12-06 21:43:12 · 1326 阅读 · 0 评论 -
LeetCode T543 二叉树的直径:结构化思路root+左、root+右、左+root+右
一、思路: 对二叉树进行深度遍历,涉及到递归的思想。在写递归时,不要深入模拟,不要深入模拟,不要深入模拟! 对于当前这个节点我们有三条路可以走: 1、当前节点和左子节点形成最长路径; 2、当前节点和右子节点形成最长路径; 3、当前节点作为中间站,连接左子节点和右子节点形成最长路径。 注意:对于这三种情况,1、2中情况可以作为递归函数的返回值,第三种情况则需要额外进行记录和比较。 二、代码以及注释 /** * Definition for a binary tree node. * public clas原创 2021-11-01 13:53:23 · 81 阅读 · 0 评论 -
Leetcode题目—— 207.课程表
一、问题: 该题目有深度优先和广度优先(贪心策略)两种解决办法。因为博主自己写出来的深度优先解法会超时,对比学习了官方解法之后,在这里写一下博主使用深度优先解法时候的思考。 二、原因: 1、博主使用的辅助数据只标记了节点的两种状态: (1)True-当前遍历路径上,该节点被访问; (2)False-当前遍历路径上,该节点没有被访问。 判别:当前遍历路径上,被访问的节点再一次被访问,则有环。 2、官方题解的辅助数据则标记了节点的三种状态: (1)visited[0]:没有被访问; (2)vi原创 2021-08-21 16:33:11 · 104 阅读 · 0 评论