From b0bd2faa104b3e33362cd7f739dad83c142b7995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F=E8=B6=85?= Date: Sun, 9 Jun 2019 18:18:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BD=9C=E4=B8=9A):=20=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E5=91=A8=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Week_01/id_9/LeetCode_104_9.java | 39 +++++++++++++++ Week_01/id_9/LeetCode_236_9.java | 39 +++++++++++++++ Week_01/id_9/LeetCode_26_9.java | 33 +++++++++++++ Week_01/id_9/LeetCode_50_9.java | 46 ++++++++++++++++++ Week_01/id_9/NOTE.md | 2 + ...346\263\225\350\204\221\345\233\276.xmind" | Bin 0 -> 36906 bytes 6 files changed, 159 insertions(+) create mode 100644 Week_01/id_9/LeetCode_104_9.java create mode 100644 Week_01/id_9/LeetCode_236_9.java create mode 100644 Week_01/id_9/LeetCode_26_9.java create mode 100644 Week_01/id_9/LeetCode_50_9.java create mode 100644 "Week_01/id_9/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225\350\204\221\345\233\276.xmind" diff --git a/Week_01/id_9/LeetCode_104_9.java b/Week_01/id_9/LeetCode_104_9.java new file mode 100644 index 00000000..3b4b762e --- /dev/null +++ b/Week_01/id_9/LeetCode_104_9.java @@ -0,0 +1,39 @@ +package com.github.lifelab.leetcode.problemset; + +/** + * 二叉树的最大深度 @https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ + * + * @author Weichao Li (liweichao0102@gmail.com) + * @since 2019-06-03 + */ +public class Solution104 { + + public int maxDepth(TreeNode root) { + return depth(root, 0); + } + + private int depth(TreeNode node, int depth) { + + if (node == null) { + return 0; + } + + depth++; + + if (node.left == null && node.right == null) { + return depth; + } + + int l = 0, r = 0; + + if (node.left != null) { + l = depth(node.left, depth); + } + + if (node.right != null) { + r = depth(node.right, depth); + } + + return Math.max(l, r); + } +} diff --git a/Week_01/id_9/LeetCode_236_9.java b/Week_01/id_9/LeetCode_236_9.java new file mode 100644 index 00000000..19b5f34a --- /dev/null +++ b/Week_01/id_9/LeetCode_236_9.java @@ -0,0 +1,39 @@ +package com.github.lifelab.leetcode.problemset; + +/** + * 二叉树的最近公共祖先 @https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/ + * + * @author Weichao Li (liweichao0102@gmail.com) + * @since 2019-06-09 + */ +public class Solution236 { + + public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { + + if (root == null) { + return null; + } + + if (root.val == p.val || root.val == q.val) { + return root; + } + + TreeNode leftVal = lowestCommonAncestor(root.left, p, q); + + TreeNode rightVal = lowestCommonAncestor(root.right, p, q); + + if (rightVal != null && leftVal != null) { + return root; + } + + if (rightVal != null) { + return rightVal; + } + + if (leftVal != null) { + return leftVal; + } + return null; + } + +} diff --git a/Week_01/id_9/LeetCode_26_9.java b/Week_01/id_9/LeetCode_26_9.java new file mode 100644 index 00000000..0dd92c4c --- /dev/null +++ b/Week_01/id_9/LeetCode_26_9.java @@ -0,0 +1,33 @@ +package com.github.lifelab.leetcode.problemset; + +/** + * 删除排序数组中的重复项 @https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ + * + * @author weichao.li (liweichao0102@gmail.com) + * @since 2019-06-04 + */ +public class Solution26 { + + /** + * 1 1 1 2 3 4 4 4 + * + * @param nums + * @return + * @ + */ + public int removeDuplicates(int[] nums) { + if (nums == null || nums.length == 0) { + return 0; + } + int left = 0; + for (int i = 1; i < nums.length; i++) { + if (nums[left] != nums[i]) { + left++; + nums[left] = nums[i]; + } + } + return left + 1; + } + + +} \ No newline at end of file diff --git a/Week_01/id_9/LeetCode_50_9.java b/Week_01/id_9/LeetCode_50_9.java new file mode 100644 index 00000000..850ff8d9 --- /dev/null +++ b/Week_01/id_9/LeetCode_50_9.java @@ -0,0 +1,46 @@ +package com.github.lifelab.leetcode.problemset; + +/** + * Pow(x, n) @https://leetcode-cn.com/problems/powx-n/ + * + * @author Weichao Li (liweichao0102@gmail.com) + * @since 2019-06-06 + */ +public class Solution50 { + + public double myPow(double x, int n) { + + if (n < 0) { + return 1 / halfPow(x, -n); + } else { + return halfPow(x, n); + } + + } + + public double halfPow(double x, int n) { + + //terminator + if (n == 0) { + return 1; + } + if (n == 1) { + return x; + } + //process && drill down + + double result; + + boolean flag = n % 2 == 0; + + double temp = halfPow(x, n / 2); + + if (flag) { + result = temp * temp; + } else { + result = temp * temp * x; + } + + return result; + } +} \ No newline at end of file diff --git a/Week_01/id_9/NOTE.md b/Week_01/id_9/NOTE.md index 107ea7d6..01582ef8 100644 --- a/Week_01/id_9/NOTE.md +++ b/Week_01/id_9/NOTE.md @@ -1 +1,3 @@ # 学习笔记 + +> 在 LeetCode 刷题的过程中,可对部分题进行变形简化处理逻辑。 \ No newline at end of file diff --git "a/Week_01/id_9/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225\350\204\221\345\233\276.xmind" "b/Week_01/id_9/\346\225\260\346\215\256\347\273\223\346\236\204\344\270\216\347\256\227\346\263\225\350\204\221\345\233\276.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..6005da3bf579901d7ccb495e769b7f62bb501a10 GIT binary patch literal 36906 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 H>R