From 18e045979f0216ea8cb6bf95bbc3953ce8678cfa Mon Sep 17 00:00:00 2001 From: unknown <1047746765@qq.com> Date: Sun, 21 Apr 2019 01:41:17 +0800 Subject: [PATCH 1/5] update --- Week_01/id_132/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Week_01/id_132/test.txt diff --git a/Week_01/id_132/test.txt b/Week_01/id_132/test.txt new file mode 100644 index 00000000..e69de29b From ea5b90de320d62364e227580dbea155b1f34e810 Mon Sep 17 00:00:00 2001 From: wwb4694376 <1047746765@qq.com> Date: Tue, 14 May 2019 20:21:27 +0800 Subject: [PATCH 2/5] Add files via upload --- Week_01/id_132/LeetCode_441_132.java | 10 +++++++++ Week_01/id_132/LeetCode_687_132.java | 32 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 Week_01/id_132/LeetCode_441_132.java create mode 100644 Week_01/id_132/LeetCode_687_132.java diff --git a/Week_01/id_132/LeetCode_441_132.java b/Week_01/id_132/LeetCode_441_132.java new file mode 100644 index 00000000..5bac4e98 --- /dev/null +++ b/Week_01/id_132/LeetCode_441_132.java @@ -0,0 +1,10 @@ +class Solution { + public int arrangeCoins(int n) { + int curCoins = 1, residual = n - 1; + while (residual >= curCoins + 1) { + ++curCoins; + residual -= curCoins; + } + return n == 0 ? 0 : curCoins; + } +} diff --git a/Week_01/id_132/LeetCode_687_132.java b/Week_01/id_132/LeetCode_687_132.java new file mode 100644 index 00000000..58bf07c9 --- /dev/null +++ b/Week_01/id_132/LeetCode_687_132.java @@ -0,0 +1,32 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode(int x) { val = x; } + * } + */ +class Solution { + /* + 最长同值路径,需要比较以不同节点为根节点时的最长同值路径,取最大值。 + 以某节点为根节点时的最长同值路径 = 以其左孩子为根节点的最长同值路径 + 以其右孩子为根节点的最长同值路径。 + 注意,分支节点的最长同值路径也可以理解为最大同值深度 + */ + int maxP = 0; + public int longestUnivaluePath(TreeNode root) { + if(root == null) return 0; + getMaxP(root,root.val); + return maxP; + } + private int getMaxP(TreeNode root, int val){ + if(root == null) return 0; + int left = getMaxP(root.left, root.val); + int right = getMaxP(root.right, root.val); + maxP = Math.max(maxP,left+right); + if(root.val == val) + //其左右子树的最大同值路径中较长的那个加上该节点后继续向父节点回溯构成最长同值路径 + return Math.max(left,right)+1; + return 0; + } +} \ No newline at end of file From f56076c8e7667796ef9454a3d958d5d612519f18 Mon Sep 17 00:00:00 2001 From: wwb4694376 <1047746765@qq.com> Date: Tue, 14 May 2019 20:34:29 +0800 Subject: [PATCH 3/5] Add files via upload --- Week_02/id_132/LeetCode_242_132.java | 17 ++++++++++++++ Week_02/id_132/LeetCode_783_132.cpp | 33 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Week_02/id_132/LeetCode_242_132.java create mode 100644 Week_02/id_132/LeetCode_783_132.cpp diff --git a/Week_02/id_132/LeetCode_242_132.java b/Week_02/id_132/LeetCode_242_132.java new file mode 100644 index 00000000..ea11ac4f --- /dev/null +++ b/Week_02/id_132/LeetCode_242_132.java @@ -0,0 +1,17 @@ +class Solution { + public boolean isAnagram(String s, String t) { + if (s.length() != t.length()) return false; + int [] arr = new int [26]; + boolean flag = false; + for (char c : s.toCharArray()){ + arr[c - 'a']++; + } + + for (char d : t.toCharArray()){ + if (arr[d - 'a'] == 0) return flag; + arr[d - 'a']--; + } + + return true; + } +} \ No newline at end of file diff --git a/Week_02/id_132/LeetCode_783_132.cpp b/Week_02/id_132/LeetCode_783_132.cpp new file mode 100644 index 00000000..7dfc8ad6 --- /dev/null +++ b/Week_02/id_132/LeetCode_783_132.cpp @@ -0,0 +1,33 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode(int x) : val(x), left(NULL), right(NULL) {} + * }; + */ +class Solution { +public: + void pre(vector& res,TreeNode* root) + { + if(root != NULL) + { + + pre(res,root->left); + res.push_back(root->val); + pre(res,root->right); + } + } + int minDiffInBST(TreeNode* root) { + vector res; + pre(res,root); + vector r; + for(int i=0;i < res.size()-1;i++) + r.push_back(res[i+1] - res[i]); + sort(r.begin(),r.end()); + return r[0]; + } + + +} From 60798683e4275e255e3f1c454203c7d67b5470c0 Mon Sep 17 00:00:00 2001 From: wwb4694376 <1047746765@qq.com> Date: Tue, 14 May 2019 20:48:00 +0800 Subject: [PATCH 4/5] Add files via upload --- Week_03/id_132/LeetCode_429_132.java | 37 ++++++++++++++++++++++++++++ Week_03/id_132/LeetCode_703_132.java | 29 ++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 Week_03/id_132/LeetCode_429_132.java create mode 100644 Week_03/id_132/LeetCode_703_132.java diff --git a/Week_03/id_132/LeetCode_429_132.java b/Week_03/id_132/LeetCode_429_132.java new file mode 100644 index 00000000..ac826ab5 --- /dev/null +++ b/Week_03/id_132/LeetCode_429_132.java @@ -0,0 +1,37 @@ +/* +// Definition for a Node. +class Node { + public int val; + public List children; + public Node() {} + public Node(int _val,List _children) { + val = _val; + children = _children; + } +}; +*/ +class Solution { + public List> levelOrder(Node root) { + List> llist = new ArrayList<>(); + if (root == null){ + return llist; + } + ArrayDeque que = new ArrayDeque<>(); + que.offer(root); + while (!que.isEmpty()){ + int size = que.size(); + List list = new ArrayList<>(); + for (int i = 0; i < size; ++ i){ + Node tmp = que.poll(); + list.add(tmp.val); + for (Node node : tmp.children){ + if (node != null){ + que.offer(node); + } + } + } + llist.add(list); + } + return llist; + } +} \ No newline at end of file diff --git a/Week_03/id_132/LeetCode_703_132.java b/Week_03/id_132/LeetCode_703_132.java new file mode 100644 index 00000000..846b3269 --- /dev/null +++ b/Week_03/id_132/LeetCode_703_132.java @@ -0,0 +1,29 @@ +class KthLargest { + PriorityQueue minHeap; + int k; + + public KthLargest(int k, int[] nums) { + this.minHeap = new PriorityQueue(); + this.k = k; + for(int num : nums){ + add(num); + } + } + + public int add(int val) { + if(minHeap.size() < k){ + minHeap.add(val); + }else if(minHeap.peek() < val){ + minHeap.poll(); + minHeap.add(val); + } + + return minHeap.peek(); + } +} + +/** + * Your KthLargest object will be instantiated and called as such: + * KthLargest obj = new KthLargest(k, nums); + * int param_1 = obj.add(val); + */ \ No newline at end of file From d16a96601cdddee16df8fc654937c8318c54ef93 Mon Sep 17 00:00:00 2001 From: wwb4694376 <1047746765@qq.com> Date: Tue, 14 May 2019 20:51:15 +0800 Subject: [PATCH 5/5] Add files via upload --- Week_04/id_132/LeetCode_455_132.java | 19 ++++++++++++++++++ Week_04/id_132/LeetCode_720_132.java | 29 ++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 Week_04/id_132/LeetCode_455_132.java create mode 100644 Week_04/id_132/LeetCode_720_132.java diff --git a/Week_04/id_132/LeetCode_455_132.java b/Week_04/id_132/LeetCode_455_132.java new file mode 100644 index 00000000..1aa45332 --- /dev/null +++ b/Week_04/id_132/LeetCode_455_132.java @@ -0,0 +1,19 @@ +public int findContentChildren(int[] g, int[] s) { + int ret = 0; + + Arrays.sort(g); + Arrays.sort(s); + + int i = 0, j = 0; + while (i < g.length && j < s.length) { + if (g[i] <= s[j]) { + ret++; + i++; + j++; + }else if (g[i] > s[j]) { + j++; + } + } + + return ret; +} \ No newline at end of file diff --git a/Week_04/id_132/LeetCode_720_132.java b/Week_04/id_132/LeetCode_720_132.java new file mode 100644 index 00000000..0f3bf8e5 --- /dev/null +++ b/Week_04/id_132/LeetCode_720_132.java @@ -0,0 +1,29 @@ +class Solution { + public String longestWord(String[] words) { + //给定字符串数组,找出包含最长的字符串(包含其他单词的字母),如果存在相同长度,取字母排序小的 + //思路:对数组排序,再利用Set对字母存储,小的单词一定包含在后面大的单词里面。后面只需要取前缀相同的 + + Set set=new HashSet(); + for(int i=0;ilength||(words[i].length()==length&&words[i].compareTo(word)<0)){ + //如果存在相同长度的字符串,取字母排序较小的 + int len=words[i].length(); + while(len>0&&set.contains(words[i].substring(0,len))){ + //求相同的部分 + len--; + } + if(len==0){ + //说明该单词的所有字符串均为公共字母,将其标记为匹配串 + length=words[i].length(); + word=words[i]; + } + } + } + return word; + } +}