自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dev_zyx的博客

talk is cheap

  • 博客(31)
  • 收藏
  • 关注

原创 119. 杨辉三角 II

题目:119. 杨辉三角 II题解:1. 模拟过程:直接模拟就好。2. 公式法:代码:1. 模拟过程:/** * code119 */import java.util.*;public class code119 { /** * 帕斯卡三角形 * 1 * 1 1 * 1 2 1 * 1 3 3 ...

2020-02-27 23:15:34 322

原创 118. 杨辉三角

题目:118. 杨辉三角题解:代码:/** * code118 */import java.util.*;public class code118 { /** * 帕斯卡三角形 * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 1 5 10 10 ...

2020-02-27 17:33:19 246

原创 232. 用栈实现队列

题目:232. 用栈实现队列题解:代码:/** * code232 */import java.util.*;public class code232 { public static class MyQueue { public Stack<Integer> a;// 输入栈 public Stack<In...

2020-02-26 23:31:57 254

原创 114. 二叉树展开为链表

题目:114. 二叉树展开为链表题解:解题思路:思路来源于很多人的题解,按先序遍历来看,1的右子树5,6都该在4的后面。 1 / \ 2 5 / \ \ 3 4 6 ,所以我们可以直接将1节点的右子树(5 -> 6)移接到左子树的最右边节点4上: 1 ...

2020-02-26 18:50:15 134

原创 113. 路径总和 II

题目:113. 路径总和 II题解:代码:/** * code113 */import java.util.*;public class code113 { public static List<List<Integer>> pathSum(TreeNode root, int sum) { if (root == n...

2020-02-25 22:54:46 218

原创 112. 路径总和

题目:112. 路径总和题解:代码:1. 代码一:/** * code112 */public class code112 { // 解法一: public static boolean hasPathSum(TreeNode root, int sum) { if (root == null) { return fal...

2020-02-25 15:17:44 216

原创 111. 二叉树的最小深度

题目:111. 二叉树的最小深度题解:代码:/** * code111 */public class code111 { public static int minDepth(TreeNode root) { if (root == null) { return 0; } if (root.le...

2020-02-24 22:12:29 173

原创 110. 平衡二叉树

题目:110. 平衡二叉树题解:代码:/** * code110 */public class code110 { public static boolean isBalanced(TreeNode root) { // 它是一棵空树 if (root == null) { return true; ...

2020-02-24 17:05:44 186

原创 109. 有序链表转换二叉搜索树

题目:109. 有序链表转换二叉搜索树题解:1. 题解一:代码:1. 代码一:/** * code109 */import java.util.*;public class code109 { public static TreeNode sortedListToBST(ListNode head) { // 1.遍历链表,使用数组保留节点升序...

2020-02-23 12:30:57 182

原创 108. 将有序数组转换为二叉搜索树

题目:108. 将有序数组转换为二叉搜索树题解:代码:/** * code108 */public class code108 { // 左右等分建立左右子树,中间节点作为子树根节点,递归该过程 public static TreeNode sortedArrayToBST(int[] nums) { if (nums ==...

2020-02-22 13:08:49 207

原创 106. 从中序与后序遍历序列构造二叉树

题目:106. 从中序与后序遍历序列构造二叉树题解:题解一:在递归方法中,传入子数组的边界索引。注意:在递归方法中,有一个数组的边界索引,得通过计算得到,计算的依据是递归方法传入的“中序遍历数组”(的子数组)和“后序遍历数组”(的子数组)的长度是一样的。我的办法是解方程计算未知数。具体需要计算哪个参数我在下面的代码中已经注明了。下面展示了一个计算边界的方法。例如:......

2020-02-21 12:07:07 276

原创 105. 从前序与中序遍历序列构造二叉树

题目:105. 从前序与中序遍历序列构造二叉树题解:抓住“前序遍历的第 1 个元素一定是二叉树的根结点”,不难写出代码。关键还是拿 LeetCode 上面的例子画一个图,思路就很清晰了。前序遍历数组的第 11 个数(索引为 00)的数一定是二叉树的根结点,于是可以在中序遍历中找这个根结点的索引,然后把“前序遍历数组”和“中序遍历数组”分为两个部分,就分别对应二叉树的左子树和右子树,分别递......

2020-02-20 21:23:32 1236

原创 104. 二叉树的最大深度

题目:104. 二叉树的最大深度题解:代码:/** * code104 */public class code104 { public static int maxDepth(TreeNode root) { // 递归退出条件,到叶子节点 if (root == null) { return 0; ......

2020-02-19 17:54:25 305

原创 103. 二叉树的锯齿形层次遍历

题目:103. 二叉树的锯齿形层次遍历题解:1. 迭代法:使用bfs,对应层判断一下奇偶,决定在表头还是表尾添加元素就可以了。2. 递归法:代码:1. 迭代法:/** * code103 */import java.util.*;public class code103 { public static List<List<Integer>.........

2020-02-19 11:55:34 268

原创 107. 二叉树的层次遍历 II

题目:107. 二叉树的层次遍历 II题解:就比第102题多了一句:Collections.reverse(list);代码:1. 迭代法:/** * code107 */import java.util.*;public class code107 { public static List<List<Integer>> level............

2020-02-18 12:15:46 232

原创 102. 二叉树的层次遍历

题目:102. 二叉树的层次遍历题解:1. 迭代实现:代码:1. 迭代实现:/** * code102 */import java.util.*;public class code102 { public static List<List<Integer>> levelOrder(TreeNode root) { if............

2020-02-17 23:14:40 261

原创 101. 对称二叉树

题目:101. 对称二叉树题解:注:递归的难点在于:找到可以递归的点 为什么很多人觉得递归一看就会,一写就废。 或者说是自己写无法写出来,关键就是你对递归理解的深不深。对于此题: 递归的点怎么找?从拿到题的第一时间开始,思路如下:怎么判断一棵树是不是对称二叉树? 答案:如果所给根节点,为空,那么是对称。如果不为空的话,当他的左子树与右子树对称时,他对称那么怎么知道左子树...

2020-02-17 13:15:13 377 1

原创 100. 相同的树

题目:100. 相同的树题解:代码:/** * code100 */public class code100 { public static boolean isSameTree(TreeNode p, TreeNode q) { // p and q are both null if (p == null && q ==...

2020-02-16 22:33:58 111

原创 98. 验证二叉搜索树

题目:98. 验证二叉搜索树题解:解题思路:BST树中序遍历(inorder traversal), 把每个结点的值放入待验证的List。如果是有效的BST树,那么该List是无重复元素且升序的。代码:/** * code98 */import java.util.*;public class code98 { public static boolean i............

2020-02-16 21:32:51 184

原创 95. 不同的二叉搜索树 II

题目:95. 不同的二叉搜索树 II题解:我们可以利用一下查找二叉树的性质。左子树的所有值小于根节点,右子树的所有值大于根节点。所以如果求 1…n 的所有可能。我们只需要把 1 作为根节点,[ ] 空作为左子树,[ 2 … n ] 的所有可能作为右子树。2 作为根节点,[ 1 ] 作为左子树,[ 3…n ] 的所有可能作为右子树。3 作为根节点,[ 1 2 ] 的所有可能作为左子...

2020-02-16 12:33:10 249

原创 96. 不同的二叉搜索树

题目:96. 不同的二叉搜索树题解:1. 方法一:动态规划思路:标签:动态规划假设n个节点存在二叉排序树的个数是G(n),令f(i)为以i为根的二叉搜索树的个数,则G(n) = f(1) + f(2) + f(3) + f(4) + … + f(n)当i为根节点时,其左子树节点个数为i-1个,右子树节点为n-i,则f(i) = G(i-1)*G(n-i)综合两个公式可以得到...

2020-02-15 00:57:02 211

原创 LeetCode如何构建链表和树的测试用例

平时在刷leetcode题目中的链表和树时,难免会出现调试不方便的问题。因为习惯了IDEA中debug来进行错误分析,所以本文将实现leetcode刷题中链表和数在IDEA中的调试。链表直接上代码。public static class ListNode{ int val; ListNode next; ListNode(int x) { v...

2020-02-14 20:59:44 4055 1

原创 94. 二叉树的中序遍历

题目:94. 二叉树的中序遍历题解:1. 递归中序遍历第一种解决方法是使用递归。这是经典的方法,直截了当。我们可以定义一个辅助函数来实现递归。2. 迭代中序遍历考查到当前节点时,并不直接输出该节点。而是当考查节点为空时,从栈中弹出的时候再进行输出(永远先考虑左子树,直到左子树为空才访问根节点)。代码:1. 递归法: // 解法一:递归 public static......

2020-02-13 23:13:08 6013

原创 93. 复原IP地址

题目:93. 复原IP地址题解:思路:我们要知道IP的格式,每位是在0~255之间,注意: 不能出现以0开头的两位以上数字,比如012,08...思路一:暴力法我们把所有出现可能都列举出来,看是否满足条件.思路二:回溯算法代码:1. 代码一:/** * code93 */import java.util.*;public class code93 { ...

2020-02-12 20:53:54 246

原创 92. 反转链表 II

题目:92. 反转链表 II题解:分析:第一步:找到待反转节点的前一个节点。第二步:反转m到n这部分。第三步:将反转的起点的next指向反转的后面一部分。第四步:将第一步找到的节点指向反转以后的头节点。结合206. 反转链表,如下图所示:(注:图中的"next"即为代码中的"tmp")代码:/** * code92 */public class code92 {...

2020-02-11 20:55:21 184

原创 206. 反转链表

题目:206. 反转链表题解:双指针迭代我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。第二个指针 cur 指向 head,然后不断遍历 cur。每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。动画演示如下:代码:/** * cod...

2020-02-11 13:09:25 301

原创 91. 解码方法

题目:91. 解码方法题解:1. 解法一:很容易想到递归去解决,将大问题化作小问题。比如 232232323232。对于第一个字母我们有两种划分方式。2|32232323232 和 23|2232323232所以,如果我们分别知道了上边划分的右半部分 32232323232 的解码方式是 ans1 种,2232323232 的解码方式是 ans2 种,那么整体 232232323...

2020-02-10 00:08:25 751

原创 90. 子集 II

题目:90. 子集 II题解:参考LeetCode第78题,这个比较好改,我们只需要判断当前数字和上一个数字是否相同,相同的话跳过即可。当然,要把数字首先进行排序。画出递归树,在同一层中,第一次add无须考虑是否存在相同的值,但同一层中的后续add操作,如果添加相同的值,那么就是重复运算,这部分是可以去掉的。解释语句: if cur > begin and candidates[...

2020-02-09 01:10:08 220

原创 89. 格雷编码

题目:89. 格雷编码题解:/**关键是搞清楚格雷编码的生成过程, G(i) = i ^ (i/2);如 n = 3: G(0) = 000, G(1) = 1 ^ 0 = 001 ^ 000 = 001G(2) = 2 ^ 1 = 010 ^ 001 = 011 G(3) = 3 ^ 1 = 011 ^ 001 = 010G(4) = 4 ^ 2 = 100 ^ 010 =...

2020-02-08 13:00:49 244

转载 [Java] Mac安装JDK

参考:[Java] Mac安装JDKMAC安装JDK及环境变量配置Mac下jdk安装配置Mac 安装JDK及环境变量配置

2020-02-06 20:40:46 228

转载 苹果mac电脑的end 键和home键在哪

在苹果Mac电脑的键盘上**没有**Home, End, Page UP, Page DOWN这些键,可以通过用Fn键来组合得到同样的功能:Home键=Fn+左方向、End键=Fn+右方向、PageUP=Fn+上方向、PageDOWN=Fn+下方向、向前Delete=Fn+delete键。苹...

2020-02-06 20:09:13 1737

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除