From bd93fd284d1c97c8a93a66d23e4c762898ba28c9 Mon Sep 17 00:00:00 2001 From: lipengfei Date: Sat, 1 Aug 2020 22:20:59 +0800 Subject: [PATCH 1/5] 20190801 --- code_java/src/others/chrysanthemum/Main1.java | 2 ++ code_java/src/others/chrysanthemum/Main2.java | 2 ++ code_java/src/others/chrysanthemum/Main3.java | 2 ++ code_java/src/others/test/Main1Test.java | 5 +++++ code_java/src/others/test/Main2Test.java | 10 ++++++++++ code_java/src/others/test/Main3Test.java | 5 +++++ 6 files changed, 26 insertions(+) diff --git a/code_java/src/others/chrysanthemum/Main1.java b/code_java/src/others/chrysanthemum/Main1.java index 8041f24..48b5e12 100644 --- a/code_java/src/others/chrysanthemum/Main1.java +++ b/code_java/src/others/chrysanthemum/Main1.java @@ -1,3 +1,5 @@ +package others.chrysanthemum; + import java.util.Arrays; /** diff --git a/code_java/src/others/chrysanthemum/Main2.java b/code_java/src/others/chrysanthemum/Main2.java index 7b3419b..1095f37 100644 --- a/code_java/src/others/chrysanthemum/Main2.java +++ b/code_java/src/others/chrysanthemum/Main2.java @@ -1,3 +1,5 @@ +package others.chrysanthemum; + /** * 十进制整数数组,按位与操作 * 给定一个数组 int[] {23, 12, 10, 8, 7, 45, 16} , 求位运算最大的两个数字,返回位置。 diff --git a/code_java/src/others/chrysanthemum/Main3.java b/code_java/src/others/chrysanthemum/Main3.java index 7850a5e..1b664f1 100644 --- a/code_java/src/others/chrysanthemum/Main3.java +++ b/code_java/src/others/chrysanthemum/Main3.java @@ -1,3 +1,5 @@ +package others.chrysanthemum; + /** * 运动会,任意3排,抽方阵 * 学校开运动会,队伍是 N*3 的 矩阵, 从其中选出 3 排,组成一个方阵,使得 3*3 的方阵是对称的。 diff --git a/code_java/src/others/test/Main1Test.java b/code_java/src/others/test/Main1Test.java index 1f023f0..e289237 100644 --- a/code_java/src/others/test/Main1Test.java +++ b/code_java/src/others/test/Main1Test.java @@ -1,3 +1,8 @@ +package others.test; + +import org.junit.Test; +import others.chrysanthemum.Main1; + /** * N株植物,补充1升水 * diff --git a/code_java/src/others/test/Main2Test.java b/code_java/src/others/test/Main2Test.java index 24cb85a..bd2dd7c 100644 --- a/code_java/src/others/test/Main2Test.java +++ b/code_java/src/others/test/Main2Test.java @@ -1,3 +1,13 @@ +package others.test; + +import org.junit.Assert; +import org.junit.Test; +import others.chrysanthemum.Main2; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * * 十进制整数数组,按位与操作 diff --git a/code_java/src/others/test/Main3Test.java b/code_java/src/others/test/Main3Test.java index eb7acac..f9e7c0c 100644 --- a/code_java/src/others/test/Main3Test.java +++ b/code_java/src/others/test/Main3Test.java @@ -1,3 +1,8 @@ +package others.test; + +import org.junit.Test; +import others.chrysanthemum.Main3; + /** * 运动会,任意3排,抽方阵 * -- Gitee From 13036c29b88e023c4b4d3856231b90021010761d Mon Sep 17 00:00:00 2001 From: lipengfei Date: Sat, 1 Aug 2020 22:34:09 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20java=20=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code_java/src/solution/BSTIterator.java | 2 ++ code_java/src/solution/BinaryTreeRightSideView.java | 2 ++ code_java/src/solution/BinaryTreeTilt.java | 2 ++ code_java/src/solution/BinaryTreeVerticalOrderTraversal.java | 2 ++ .../src/solution/BinaryTreeZigzagLevelOrderTraversal.java | 2 ++ code_java/src/solution/CloneGraph.java | 2 ++ code_java/src/solution/ClosestBinarySearchTreeValue.java | 2 ++ code_java/src/solution/Codec.java | 2 ++ .../ConstructBinaryTreeFromInorderAndPostorderTraversal.java | 2 ++ .../ConstructBinaryTreeFromPreorderAndPostorderTraversal.java | 2 ++ .../ConstructBinaryTreeFromPreorderInorderTraversal.java | 2 ++ code_java/src/solution/ConstructStringFromBinaryTree.java | 2 ++ .../src/solution/ConvertSortedArrayToBinarySearchTree.java | 2 ++ .../src/solution/ConvertSortedListToBinarySearchTree.java | 3 +++ code_java/src/solution/CopyListWithRandomPointer.java | 2 ++ code_java/src/solution/CountUnivalueSubtrees.java | 2 ++ code_java/src/solution/DeleteNodeInALinkedList.java | 2 ++ code_java/src/solution/DiameterOfBinaryTree.java | 2 ++ code_java/src/solution/ExcelSheetColumnNumber.java | 2 ++ code_java/src/solution/FindBottomLeftTreeValue.java | 2 ++ code_java/src/solution/FindDuplicateSubtrees.java | 2 ++ code_java/src/solution/FindLargestValueInEachTreeRow.java | 2 ++ code_java/src/solution/FindLeavesOfBinaryTree.java | 2 ++ code_java/src/solution/FindModeInBinarySearchTree.java | 2 ++ code_java/src/solution/FindRightInterval.java | 2 ++ code_java/src/solution/FlattenBinaryTreeToLinkedList.java | 2 ++ code_java/src/solution/FlattenNestedListIterator.java | 2 ++ code_java/src/solution/HouseRobberIII.java | 2 ++ code_java/src/solution/InorderSuccessorInBST.java | 2 ++ code_java/src/solution/InsertInterval.java | 2 ++ code_java/src/solution/InsertionSortList.java | 2 ++ code_java/src/solution/IntersectionOfTwoLinkedLists.java | 2 ++ code_java/src/solution/InvertBinaryTree.java | 2 ++ code_java/src/solution/KthSmallestElementInBST.java | 2 ++ code_java/src/solution/LargestBSTSubtree.java | 2 ++ code_java/src/solution/LeafSimilarTrees.java | 2 ++ code_java/src/solution/LinkedListCycle.java | 2 ++ code_java/src/solution/LinkedListCycleII.java | 2 ++ code_java/src/solution/LongestUnivaluePath.java | 2 ++ .../src/solution/LowestCommonAncestorOfBinarySearchTree.java | 2 ++ code_java/src/solution/LowestCommonAncestorOfBinaryTree.java | 2 ++ code_java/src/solution/MaximumBinaryTree.java | 2 ++ code_java/src/solution/MaximumDepthOfBinaryTree.java | 2 ++ code_java/src/solution/MeetingRooms.java | 2 ++ code_java/src/solution/MeetingRoomsII.java | 2 ++ code_java/src/solution/MergeIntervals.java | 2 ++ code_java/src/solution/MergeKSortedList.java | 2 ++ code_java/src/solution/MergeTwoBinaryTrees.java | 2 ++ code_java/src/solution/MergeTwoSortedList.java | 2 ++ code_java/src/solution/MinimumDepthOfBinaryTree.java | 2 ++ code_java/src/solution/MostFrequentSubtreeSum.java | 2 ++ code_java/src/solution/NestedListWeightSum.java | 2 ++ code_java/src/solution/NestedListWeightSumII.java | 2 ++ code_java/src/solution/OddEvenLinkedList.java | 2 ++ code_java/src/solution/PalindromeLinkedList.java | 2 ++ code_java/src/solution/PartitionList.java | 2 ++ code_java/src/solution/PathSum.java | 2 ++ code_java/src/solution/PathSumII.java | 2 ++ code_java/src/solution/PathSumIII.java | 2 ++ code_java/src/solution/PlusOneLinkedList.java | 2 ++ .../src/solution/PopulatingNextRightPointersInEachNode.java | 2 ++ .../src/solution/PopulatingNextRightPointersInEachNodeII.java | 2 ++ code_java/src/solution/RecoverBinarySearchTree.java | 2 ++ code_java/src/solution/RemoveDuplicateList.java | 2 ++ code_java/src/solution/RemoveDuplicatesFromSortedList.java | 2 ++ code_java/src/solution/RemoveDuplicatesFromSortedListII.java | 2 ++ code_java/src/solution/RemoveLinkedListElements.java | 2 ++ code_java/src/solution/RemoveNthNodeFromEndOfList.java | 2 ++ code_java/src/solution/ReorderList.java | 2 ++ code_java/src/solution/ReverseLinkedList.java | 2 ++ code_java/src/solution/ReverseLinkedListII.java | 2 ++ code_java/src/solution/ReverseNodesInKGroup.java | 2 ++ code_java/src/solution/RotateList.java | 2 ++ code_java/src/solution/SameTree.java | 2 ++ code_java/src/solution/SortList.java | 2 ++ code_java/src/solution/SubtreeOfAnotherTree.java | 2 ++ code_java/src/solution/SumOfLeftLeaves.java | 2 ++ code_java/src/solution/SumRootToLeafNumbers.java | 2 ++ code_java/src/solution/SwapNodesInPairs.java | 2 ++ code_java/src/solution/SymmetricTree.java | 2 ++ code_java/src/solution/TrimABinarySearchTree.java | 2 ++ code_java/src/solution/TwoSumIV.java | 2 ++ code_java/src/solution/UniqueBinarySearchTreesII.java | 2 ++ code_java/src/solution/ValidateBinarySearchTree.java | 2 ++ 84 files changed, 169 insertions(+) diff --git a/code_java/src/solution/BSTIterator.java b/code_java/src/solution/BSTIterator.java index 595d51d..9c43755 100644 --- a/code_java/src/solution/BSTIterator.java +++ b/code_java/src/solution/BSTIterator.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Stack; public class BSTIterator { diff --git a/code_java/src/solution/BinaryTreeRightSideView.java b/code_java/src/solution/BinaryTreeRightSideView.java index d094b53..2786c0b 100644 --- a/code_java/src/solution/BinaryTreeRightSideView.java +++ b/code_java/src/solution/BinaryTreeRightSideView.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; import java.util.Queue; diff --git a/code_java/src/solution/BinaryTreeTilt.java b/code_java/src/solution/BinaryTreeTilt.java index 88455c2..119c611 100644 --- a/code_java/src/solution/BinaryTreeTilt.java +++ b/code_java/src/solution/BinaryTreeTilt.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class BinaryTreeTilt { int tilt = 0; diff --git a/code_java/src/solution/BinaryTreeVerticalOrderTraversal.java b/code_java/src/solution/BinaryTreeVerticalOrderTraversal.java index 278a758..3da4d0d 100644 --- a/code_java/src/solution/BinaryTreeVerticalOrderTraversal.java +++ b/code_java/src/solution/BinaryTreeVerticalOrderTraversal.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.HashMap; import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java b/code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java index 73124c5..d7c4d5d 100644 --- a/code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java +++ b/code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/CloneGraph.java b/code_java/src/solution/CloneGraph.java index 753b88c..b1b0742 100644 --- a/code_java/src/solution/CloneGraph.java +++ b/code_java/src/solution/CloneGraph.java @@ -1,5 +1,7 @@ package solution; +import common.UndirectedGraphNode; + import java.util.HashMap; import java.util.LinkedList; import java.util.Map; diff --git a/code_java/src/solution/ClosestBinarySearchTreeValue.java b/code_java/src/solution/ClosestBinarySearchTreeValue.java index cf9e3b5..8e0c218 100644 --- a/code_java/src/solution/ClosestBinarySearchTreeValue.java +++ b/code_java/src/solution/ClosestBinarySearchTreeValue.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class ClosestBinarySearchTreeValue { public int closestValue(TreeNode root, double target) { diff --git a/code_java/src/solution/Codec.java b/code_java/src/solution/Codec.java index e2e00c4..4695aff 100644 --- a/code_java/src/solution/Codec.java +++ b/code_java/src/solution/Codec.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.*; /** diff --git a/code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java b/code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java index 2678c24..47ac165 100644 --- a/code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java +++ b/code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class ConstructBinaryTreeFromInorderAndPostorderTraversal { public TreeNode buildTree(int[] inorder, int[] postorder) { diff --git a/code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java b/code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java index 7a0c5b3..b7c4283 100644 --- a/code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java +++ b/code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.HashMap; public class ConstructBinaryTreeFromPreorderAndPostorderTraversal { diff --git a/code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java b/code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java index 5fcce59..e17136c 100644 --- a/code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java +++ b/code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class ConstructBinaryTreeFromPreorderInorderTraversal { public TreeNode buildTree(int[] preorder, int[] inorder) { diff --git a/code_java/src/solution/ConstructStringFromBinaryTree.java b/code_java/src/solution/ConstructStringFromBinaryTree.java index 212ad23..31c106e 100644 --- a/code_java/src/solution/ConstructStringFromBinaryTree.java +++ b/code_java/src/solution/ConstructStringFromBinaryTree.java @@ -2,6 +2,8 @@ package solution; /** * https://leetcode.com/articles/construct-string-from-binary-tree/ */ +import common.TreeNode; + /** * 这题不难,主要是搞清楚题目意思 * 即返回root + (左子树) + (右子树) diff --git a/code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java b/code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java index 25d3cb1..a9fd9b6 100644 --- a/code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java +++ b/code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class ConvertSortedArrayToBinarySearchTree { public TreeNode sortedArrayToBST(int[] nums) { diff --git a/code_java/src/solution/ConvertSortedListToBinarySearchTree.java b/code_java/src/solution/ConvertSortedListToBinarySearchTree.java index c446ea0..54b7e1b 100644 --- a/code_java/src/solution/ConvertSortedListToBinarySearchTree.java +++ b/code_java/src/solution/ConvertSortedListToBinarySearchTree.java @@ -1,5 +1,8 @@ package solution; +import common.ListNode; +import common.TreeNode; + public class ConvertSortedListToBinarySearchTree { public TreeNode sortedListToBST(ListNode head) { diff --git a/code_java/src/solution/CopyListWithRandomPointer.java b/code_java/src/solution/CopyListWithRandomPointer.java index d702d7e..bb5fb2a 100644 --- a/code_java/src/solution/CopyListWithRandomPointer.java +++ b/code_java/src/solution/CopyListWithRandomPointer.java @@ -1,5 +1,7 @@ package solution; +import common.RandomListNode; + /** * 易错的地方在于random要判空 */ diff --git a/code_java/src/solution/CountUnivalueSubtrees.java b/code_java/src/solution/CountUnivalueSubtrees.java index b0fe372..537724b 100644 --- a/code_java/src/solution/CountUnivalueSubtrees.java +++ b/code_java/src/solution/CountUnivalueSubtrees.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class CountUnivalueSubtrees { /** diff --git a/code_java/src/solution/DeleteNodeInALinkedList.java b/code_java/src/solution/DeleteNodeInALinkedList.java index 30f950e..2344afc 100644 --- a/code_java/src/solution/DeleteNodeInALinkedList.java +++ b/code_java/src/solution/DeleteNodeInALinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * https://leetcode.com/articles/delete-node-linked-list/ */ diff --git a/code_java/src/solution/DiameterOfBinaryTree.java b/code_java/src/solution/DiameterOfBinaryTree.java index 974fc71..774e362 100644 --- a/code_java/src/solution/DiameterOfBinaryTree.java +++ b/code_java/src/solution/DiameterOfBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class DiameterOfBinaryTree { /** diff --git a/code_java/src/solution/ExcelSheetColumnNumber.java b/code_java/src/solution/ExcelSheetColumnNumber.java index 65cdcd3..5484178 100644 --- a/code_java/src/solution/ExcelSheetColumnNumber.java +++ b/code_java/src/solution/ExcelSheetColumnNumber.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/FindBottomLeftTreeValue.java b/code_java/src/solution/FindBottomLeftTreeValue.java index d89483f..0e6cb5e 100644 --- a/code_java/src/solution/FindBottomLeftTreeValue.java +++ b/code_java/src/solution/FindBottomLeftTreeValue.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.Queue; diff --git a/code_java/src/solution/FindDuplicateSubtrees.java b/code_java/src/solution/FindDuplicateSubtrees.java index 12af9ca..8eb1ed5 100644 --- a/code_java/src/solution/FindDuplicateSubtrees.java +++ b/code_java/src/solution/FindDuplicateSubtrees.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.HashMap; import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/FindLargestValueInEachTreeRow.java b/code_java/src/solution/FindLargestValueInEachTreeRow.java index 72ef061..5ec8de6 100644 --- a/code_java/src/solution/FindLargestValueInEachTreeRow.java +++ b/code_java/src/solution/FindLargestValueInEachTreeRow.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; import java.util.Queue; diff --git a/code_java/src/solution/FindLeavesOfBinaryTree.java b/code_java/src/solution/FindLeavesOfBinaryTree.java index 5fdbdb3..47e7208 100644 --- a/code_java/src/solution/FindLeavesOfBinaryTree.java +++ b/code_java/src/solution/FindLeavesOfBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/FindModeInBinarySearchTree.java b/code_java/src/solution/FindModeInBinarySearchTree.java index 75d2a74..ece65d1 100644 --- a/code_java/src/solution/FindModeInBinarySearchTree.java +++ b/code_java/src/solution/FindModeInBinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/FindRightInterval.java b/code_java/src/solution/FindRightInterval.java index 89fb762..44b79de 100644 --- a/code_java/src/solution/FindRightInterval.java +++ b/code_java/src/solution/FindRightInterval.java @@ -1,5 +1,7 @@ package solution; +import common.Interval; + import java.util.Map; import java.util.TreeMap; diff --git a/code_java/src/solution/FlattenBinaryTreeToLinkedList.java b/code_java/src/solution/FlattenBinaryTreeToLinkedList.java index 939f2fe..5872708 100644 --- a/code_java/src/solution/FlattenBinaryTreeToLinkedList.java +++ b/code_java/src/solution/FlattenBinaryTreeToLinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.ArrayList; import java.util.List; import java.util.Stack; diff --git a/code_java/src/solution/FlattenNestedListIterator.java b/code_java/src/solution/FlattenNestedListIterator.java index 9684f52..9d552c3 100644 --- a/code_java/src/solution/FlattenNestedListIterator.java +++ b/code_java/src/solution/FlattenNestedListIterator.java @@ -1,5 +1,7 @@ package solution; +import common.NestedInteger; + import java.util.Iterator; import java.util.List; import java.util.Stack; diff --git a/code_java/src/solution/HouseRobberIII.java b/code_java/src/solution/HouseRobberIII.java index 95f71a7..686fe50 100644 --- a/code_java/src/solution/HouseRobberIII.java +++ b/code_java/src/solution/HouseRobberIII.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class HouseRobberIII { /** diff --git a/code_java/src/solution/InorderSuccessorInBST.java b/code_java/src/solution/InorderSuccessorInBST.java index ba9d1c8..aa527c8 100644 --- a/code_java/src/solution/InorderSuccessorInBST.java +++ b/code_java/src/solution/InorderSuccessorInBST.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.List; import java.util.Stack; diff --git a/code_java/src/solution/InsertInterval.java b/code_java/src/solution/InsertInterval.java index ec0ec8d..624b54a 100644 --- a/code_java/src/solution/InsertInterval.java +++ b/code_java/src/solution/InsertInterval.java @@ -1,5 +1,7 @@ package solution; +import common.Interval; + import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/InsertionSortList.java b/code_java/src/solution/InsertionSortList.java index 9adc190..3af381b 100644 --- a/code_java/src/solution/InsertionSortList.java +++ b/code_java/src/solution/InsertionSortList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class InsertionSortList { /** diff --git a/code_java/src/solution/IntersectionOfTwoLinkedLists.java b/code_java/src/solution/IntersectionOfTwoLinkedLists.java index e92a244..5f9df63 100644 --- a/code_java/src/solution/IntersectionOfTwoLinkedLists.java +++ b/code_java/src/solution/IntersectionOfTwoLinkedLists.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * Created by dingjiekrbo on 2016/11/17. * https://leetcode.com/articles/intersection-two-linked-lists/ diff --git a/code_java/src/solution/InvertBinaryTree.java b/code_java/src/solution/InvertBinaryTree.java index 454ca88..ac5833e 100644 --- a/code_java/src/solution/InvertBinaryTree.java +++ b/code_java/src/solution/InvertBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.Queue; diff --git a/code_java/src/solution/KthSmallestElementInBST.java b/code_java/src/solution/KthSmallestElementInBST.java index fc6e35a..7220b2d 100644 --- a/code_java/src/solution/KthSmallestElementInBST.java +++ b/code_java/src/solution/KthSmallestElementInBST.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Stack; /** diff --git a/code_java/src/solution/LargestBSTSubtree.java b/code_java/src/solution/LargestBSTSubtree.java index 444b4a1..04706f4 100644 --- a/code_java/src/solution/LargestBSTSubtree.java +++ b/code_java/src/solution/LargestBSTSubtree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class LargestBSTSubtree { class Result { diff --git a/code_java/src/solution/LeafSimilarTrees.java b/code_java/src/solution/LeafSimilarTrees.java index fe3de04..fa91a2e 100644 --- a/code_java/src/solution/LeafSimilarTrees.java +++ b/code_java/src/solution/LeafSimilarTrees.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Stack; public class LeafSimilarTrees { diff --git a/code_java/src/solution/LinkedListCycle.java b/code_java/src/solution/LinkedListCycle.java index 91c0543..f4d5556 100644 --- a/code_java/src/solution/LinkedListCycle.java +++ b/code_java/src/solution/LinkedListCycle.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class LinkedListCycle { // 注意判空 diff --git a/code_java/src/solution/LinkedListCycleII.java b/code_java/src/solution/LinkedListCycleII.java index 04af408..0823f1c 100644 --- a/code_java/src/solution/LinkedListCycleII.java +++ b/code_java/src/solution/LinkedListCycleII.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class LinkedListCycleII { /** * 这里有个问题,如果链表是a,b,然后又回到a diff --git a/code_java/src/solution/LongestUnivaluePath.java b/code_java/src/solution/LongestUnivaluePath.java index b59255e..5f6d044 100644 --- a/code_java/src/solution/LongestUnivaluePath.java +++ b/code_java/src/solution/LongestUnivaluePath.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class LongestUnivaluePath { public int longestUnivaluePath(TreeNode root) { diff --git a/code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java b/code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java index 7cb8064..53b9663 100644 --- a/code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java +++ b/code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class LowestCommonAncestorOfBinarySearchTree { /** diff --git a/code_java/src/solution/LowestCommonAncestorOfBinaryTree.java b/code_java/src/solution/LowestCommonAncestorOfBinaryTree.java index d7d31fd..a924411 100644 --- a/code_java/src/solution/LowestCommonAncestorOfBinaryTree.java +++ b/code_java/src/solution/LowestCommonAncestorOfBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.*; public class LowestCommonAncestorOfBinaryTree { diff --git a/code_java/src/solution/MaximumBinaryTree.java b/code_java/src/solution/MaximumBinaryTree.java index 4198538..75ff3ad 100644 --- a/code_java/src/solution/MaximumBinaryTree.java +++ b/code_java/src/solution/MaximumBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class MaximumBinaryTree { /** diff --git a/code_java/src/solution/MaximumDepthOfBinaryTree.java b/code_java/src/solution/MaximumDepthOfBinaryTree.java index 40ab003..a2b97d0 100644 --- a/code_java/src/solution/MaximumDepthOfBinaryTree.java +++ b/code_java/src/solution/MaximumDepthOfBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class MaximumDepthOfBinaryTree { public int maxDepth(TreeNode node) { diff --git a/code_java/src/solution/MeetingRooms.java b/code_java/src/solution/MeetingRooms.java index a68961a..57e8590 100644 --- a/code_java/src/solution/MeetingRooms.java +++ b/code_java/src/solution/MeetingRooms.java @@ -1,5 +1,7 @@ package solution; +import common.Interval; + import java.util.Arrays; import java.util.Comparator; diff --git a/code_java/src/solution/MeetingRoomsII.java b/code_java/src/solution/MeetingRoomsII.java index 4041978..6d7b9a4 100644 --- a/code_java/src/solution/MeetingRoomsII.java +++ b/code_java/src/solution/MeetingRoomsII.java @@ -1,5 +1,7 @@ package solution; +import common.Interval; + import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; diff --git a/code_java/src/solution/MergeIntervals.java b/code_java/src/solution/MergeIntervals.java index 60a54cb..202a50b 100644 --- a/code_java/src/solution/MergeIntervals.java +++ b/code_java/src/solution/MergeIntervals.java @@ -1,5 +1,7 @@ package solution; +import common.Interval; + import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; diff --git a/code_java/src/solution/MergeKSortedList.java b/code_java/src/solution/MergeKSortedList.java index cff7f2f..5f9266a 100644 --- a/code_java/src/solution/MergeKSortedList.java +++ b/code_java/src/solution/MergeKSortedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + import java.util.Comparator; import java.util.PriorityQueue; diff --git a/code_java/src/solution/MergeTwoBinaryTrees.java b/code_java/src/solution/MergeTwoBinaryTrees.java index 99413b2..60a592a 100644 --- a/code_java/src/solution/MergeTwoBinaryTrees.java +++ b/code_java/src/solution/MergeTwoBinaryTrees.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class MergeTwoBinaryTrees { public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { diff --git a/code_java/src/solution/MergeTwoSortedList.java b/code_java/src/solution/MergeTwoSortedList.java index 6951abf..7098de1 100644 --- a/code_java/src/solution/MergeTwoSortedList.java +++ b/code_java/src/solution/MergeTwoSortedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class MergeTwoSortedList { // 耗时15ms diff --git a/code_java/src/solution/MinimumDepthOfBinaryTree.java b/code_java/src/solution/MinimumDepthOfBinaryTree.java index 8630669..e8b1ff1 100644 --- a/code_java/src/solution/MinimumDepthOfBinaryTree.java +++ b/code_java/src/solution/MinimumDepthOfBinaryTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class MinimumDepthOfBinaryTree { /** diff --git a/code_java/src/solution/MostFrequentSubtreeSum.java b/code_java/src/solution/MostFrequentSubtreeSum.java index 2af6292..62ad6e6 100644 --- a/code_java/src/solution/MostFrequentSubtreeSum.java +++ b/code_java/src/solution/MostFrequentSubtreeSum.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.HashMap; import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/NestedListWeightSum.java b/code_java/src/solution/NestedListWeightSum.java index 56981f5..5855c65 100644 --- a/code_java/src/solution/NestedListWeightSum.java +++ b/code_java/src/solution/NestedListWeightSum.java @@ -1,5 +1,7 @@ package solution; +import common.NestedInteger; + import java.util.List; /** diff --git a/code_java/src/solution/NestedListWeightSumII.java b/code_java/src/solution/NestedListWeightSumII.java index 42ab398..7f477af 100644 --- a/code_java/src/solution/NestedListWeightSumII.java +++ b/code_java/src/solution/NestedListWeightSumII.java @@ -1,5 +1,7 @@ package solution; +import common.NestedInteger; + import java.util.List; /** diff --git a/code_java/src/solution/OddEvenLinkedList.java b/code_java/src/solution/OddEvenLinkedList.java index 7b6dded..4c35e87 100644 --- a/code_java/src/solution/OddEvenLinkedList.java +++ b/code_java/src/solution/OddEvenLinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class OddEvenLinkedList { public ListNode oddEvenList(ListNode head) { diff --git a/code_java/src/solution/PalindromeLinkedList.java b/code_java/src/solution/PalindromeLinkedList.java index 989c1f7..6271be1 100644 --- a/code_java/src/solution/PalindromeLinkedList.java +++ b/code_java/src/solution/PalindromeLinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class PalindromeLinkedList { // 耗时2ms diff --git a/code_java/src/solution/PartitionList.java b/code_java/src/solution/PartitionList.java index 959c54a..608d765 100644 --- a/code_java/src/solution/PartitionList.java +++ b/code_java/src/solution/PartitionList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class PartitionList { ListNode partition(ListNode head, int x) { diff --git a/code_java/src/solution/PathSum.java b/code_java/src/solution/PathSum.java index 6af4ebc..c773fe0 100644 --- a/code_java/src/solution/PathSum.java +++ b/code_java/src/solution/PathSum.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class PathSum { public boolean hasPathSum(TreeNode root, int sum) { diff --git a/code_java/src/solution/PathSumII.java b/code_java/src/solution/PathSumII.java index 664c86d..b1803c5 100644 --- a/code_java/src/solution/PathSumII.java +++ b/code_java/src/solution/PathSumII.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.ArrayList; import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/PathSumIII.java b/code_java/src/solution/PathSumIII.java index 547fd8a..fbf0968 100644 --- a/code_java/src/solution/PathSumIII.java +++ b/code_java/src/solution/PathSumIII.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.HashMap; public class PathSumIII { diff --git a/code_java/src/solution/PlusOneLinkedList.java b/code_java/src/solution/PlusOneLinkedList.java index f7ba64e..79698e9 100644 --- a/code_java/src/solution/PlusOneLinkedList.java +++ b/code_java/src/solution/PlusOneLinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + import java.util.Stack; public class PlusOneLinkedList { diff --git a/code_java/src/solution/PopulatingNextRightPointersInEachNode.java b/code_java/src/solution/PopulatingNextRightPointersInEachNode.java index d3bba08..241ab50 100644 --- a/code_java/src/solution/PopulatingNextRightPointersInEachNode.java +++ b/code_java/src/solution/PopulatingNextRightPointersInEachNode.java @@ -1,5 +1,7 @@ package solution; +import common.TreeLinkNode; + public class PopulatingNextRightPointersInEachNode { /** 递归法,巧妙地运用dummy使代码很简洁 diff --git a/code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java b/code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java index cb7a284..c5a279e 100644 --- a/code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java +++ b/code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java @@ -1,5 +1,7 @@ package solution; +import common.TreeLinkNode; + public class PopulatingNextRightPointersInEachNodeII { /** diff --git a/code_java/src/solution/RecoverBinarySearchTree.java b/code_java/src/solution/RecoverBinarySearchTree.java index 9814469..3f12297 100644 --- a/code_java/src/solution/RecoverBinarySearchTree.java +++ b/code_java/src/solution/RecoverBinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Stack; public class RecoverBinarySearchTree { diff --git a/code_java/src/solution/RemoveDuplicateList.java b/code_java/src/solution/RemoveDuplicateList.java index a26885b..543488c 100644 --- a/code_java/src/solution/RemoveDuplicateList.java +++ b/code_java/src/solution/RemoveDuplicateList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class RemoveDuplicateList { /** diff --git a/code_java/src/solution/RemoveDuplicatesFromSortedList.java b/code_java/src/solution/RemoveDuplicatesFromSortedList.java index 427ea88..cf4b4cf 100644 --- a/code_java/src/solution/RemoveDuplicatesFromSortedList.java +++ b/code_java/src/solution/RemoveDuplicatesFromSortedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * https://leetcode.com/articles/remove-duplicates-sorted-list/ */ diff --git a/code_java/src/solution/RemoveDuplicatesFromSortedListII.java b/code_java/src/solution/RemoveDuplicatesFromSortedListII.java index 1d8f75a..96ad05c 100644 --- a/code_java/src/solution/RemoveDuplicatesFromSortedListII.java +++ b/code_java/src/solution/RemoveDuplicatesFromSortedListII.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class RemoveDuplicatesFromSortedListII { public ListNode deleteDuplicates(ListNode head) { diff --git a/code_java/src/solution/RemoveLinkedListElements.java b/code_java/src/solution/RemoveLinkedListElements.java index b2a9614..6f85b86 100644 --- a/code_java/src/solution/RemoveLinkedListElements.java +++ b/code_java/src/solution/RemoveLinkedListElements.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class RemoveLinkedListElements { public ListNode removeElements(ListNode head, int val) { diff --git a/code_java/src/solution/RemoveNthNodeFromEndOfList.java b/code_java/src/solution/RemoveNthNodeFromEndOfList.java index a0e89cf..40060e1 100644 --- a/code_java/src/solution/RemoveNthNodeFromEndOfList.java +++ b/code_java/src/solution/RemoveNthNodeFromEndOfList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * https://leetcode.com/articles/remove-nth-node-end-list/ */ diff --git a/code_java/src/solution/ReorderList.java b/code_java/src/solution/ReorderList.java index fe02d02..adaa86a 100644 --- a/code_java/src/solution/ReorderList.java +++ b/code_java/src/solution/ReorderList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class ReorderList { public void reorderList(ListNode head) { diff --git a/code_java/src/solution/ReverseLinkedList.java b/code_java/src/solution/ReverseLinkedList.java index 626ce74..572159d 100644 --- a/code_java/src/solution/ReverseLinkedList.java +++ b/code_java/src/solution/ReverseLinkedList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * https://leetcode.com/articles/reverse-linked-list/ */ diff --git a/code_java/src/solution/ReverseLinkedListII.java b/code_java/src/solution/ReverseLinkedListII.java index aa30bb3..e71742b 100644 --- a/code_java/src/solution/ReverseLinkedListII.java +++ b/code_java/src/solution/ReverseLinkedListII.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class ReverseLinkedListII { public ListNode reverseBetween(ListNode head, int m, int n) { diff --git a/code_java/src/solution/ReverseNodesInKGroup.java b/code_java/src/solution/ReverseNodesInKGroup.java index df5d104..0131274 100644 --- a/code_java/src/solution/ReverseNodesInKGroup.java +++ b/code_java/src/solution/ReverseNodesInKGroup.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class ReverseNodesInKGroup { public ListNode reverseKGroup(ListNode head, int k) { diff --git a/code_java/src/solution/RotateList.java b/code_java/src/solution/RotateList.java index 6a4232a..d140f31 100644 --- a/code_java/src/solution/RotateList.java +++ b/code_java/src/solution/RotateList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class RotateList { public ListNode rotateRight(ListNode head, int n) { diff --git a/code_java/src/solution/SameTree.java b/code_java/src/solution/SameTree.java index b29864d..8dd67fd 100644 --- a/code_java/src/solution/SameTree.java +++ b/code_java/src/solution/SameTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class SameTree { public boolean isSameTree(TreeNode p, TreeNode q) { diff --git a/code_java/src/solution/SortList.java b/code_java/src/solution/SortList.java index e2263be..80512b7 100644 --- a/code_java/src/solution/SortList.java +++ b/code_java/src/solution/SortList.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + /** * 这题采用merge sort,可自顶向下或自底向上 * 区别是自顶向下是递归的,需要额外的空间 diff --git a/code_java/src/solution/SubtreeOfAnotherTree.java b/code_java/src/solution/SubtreeOfAnotherTree.java index 8c9bf43..7378e72 100644 --- a/code_java/src/solution/SubtreeOfAnotherTree.java +++ b/code_java/src/solution/SubtreeOfAnotherTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class SubtreeOfAnotherTree { /** diff --git a/code_java/src/solution/SumOfLeftLeaves.java b/code_java/src/solution/SumOfLeftLeaves.java index 15cc3ff..d27c47b 100644 --- a/code_java/src/solution/SumOfLeftLeaves.java +++ b/code_java/src/solution/SumOfLeftLeaves.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Stack; public class SumOfLeftLeaves { diff --git a/code_java/src/solution/SumRootToLeafNumbers.java b/code_java/src/solution/SumRootToLeafNumbers.java index 287444e..f1b48ef 100644 --- a/code_java/src/solution/SumRootToLeafNumbers.java +++ b/code_java/src/solution/SumRootToLeafNumbers.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class SumRootToLeafNumbers { public int sumNumbers(TreeNode root) { diff --git a/code_java/src/solution/SwapNodesInPairs.java b/code_java/src/solution/SwapNodesInPairs.java index 2d0d1c5..053c7f9 100644 --- a/code_java/src/solution/SwapNodesInPairs.java +++ b/code_java/src/solution/SwapNodesInPairs.java @@ -1,5 +1,7 @@ package solution; +import common.ListNode; + public class SwapNodesInPairs { public ListNode swapPairs(ListNode head) { diff --git a/code_java/src/solution/SymmetricTree.java b/code_java/src/solution/SymmetricTree.java index 149a881..35a335d 100644 --- a/code_java/src/solution/SymmetricTree.java +++ b/code_java/src/solution/SymmetricTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.LinkedList; import java.util.Queue; import java.util.Stack; diff --git a/code_java/src/solution/TrimABinarySearchTree.java b/code_java/src/solution/TrimABinarySearchTree.java index b92ccc2..1823c6f 100644 --- a/code_java/src/solution/TrimABinarySearchTree.java +++ b/code_java/src/solution/TrimABinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class TrimABinarySearchTree { public TreeNode trimBST(TreeNode root, int L, int R) { diff --git a/code_java/src/solution/TwoSumIV.java b/code_java/src/solution/TwoSumIV.java index 627ddb9..be934d4 100644 --- a/code_java/src/solution/TwoSumIV.java +++ b/code_java/src/solution/TwoSumIV.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.ArrayList; import java.util.HashSet; import java.util.List; diff --git a/code_java/src/solution/UniqueBinarySearchTreesII.java b/code_java/src/solution/UniqueBinarySearchTreesII.java index f830035..5bc3b69 100644 --- a/code_java/src/solution/UniqueBinarySearchTreesII.java +++ b/code_java/src/solution/UniqueBinarySearchTreesII.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + import java.util.Collections; import java.util.LinkedList; import java.util.List; diff --git a/code_java/src/solution/ValidateBinarySearchTree.java b/code_java/src/solution/ValidateBinarySearchTree.java index 99fac81..caf28e8 100644 --- a/code_java/src/solution/ValidateBinarySearchTree.java +++ b/code_java/src/solution/ValidateBinarySearchTree.java @@ -1,5 +1,7 @@ package solution; +import common.TreeNode; + public class ValidateBinarySearchTree { // 耗时1ms -- Gitee From 4719a1f743054f841cac5d7e779e856ced341917 Mon Sep 17 00:00:00 2001 From: lipengfei Date: Sat, 1 Aug 2020 22:37:47 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20java=20=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 4201a9b..67d3034 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ /app/app.iml build out/ +*.class +./code_java/classes \ No newline at end of file -- Gitee From ab30ac5196efcfa31eccd3b50db4193ab31d6da1 Mon Sep 17 00:00:00 2001 From: lipengfei Date: Sat, 1 Aug 2020 23:28:31 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code_java/src/others/chrysanthemum/Main1.java | 4 ++-- code_java/src/others/chrysanthemum/Main3.java | 3 +++ code_java/src/others/test/Main1Test.java | 2 +- code_java/src/others/test/Main3Test.java | 5 +++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/code_java/src/others/chrysanthemum/Main1.java b/code_java/src/others/chrysanthemum/Main1.java index 48b5e12..0ff2d00 100644 --- a/code_java/src/others/chrysanthemum/Main1.java +++ b/code_java/src/others/chrysanthemum/Main1.java @@ -4,8 +4,8 @@ import java.util.Arrays; /** * N株植物,补充1升水 - * 一个数组,N个数字表示int[] {3, 1, 9, 10} ,表示N株的水瓶,选择其中cnt个瓶子,使这些瓶子的水一样多, - * 两个瓶子水可能一样多,选取的cnt可以不连续, + * 一个数组,N个数字表示int[] {3, 1, 9, 10} ,表示N株的水瓶,选择其中cnt个瓶子,每次只能补充1升水,使这些瓶子的水一样多, + * 其中两个瓶子水可能一样多,选取的cnt可以不连续, * 最少需要多少次? * cnt<=N<=10^6 * 结果对 10^9+7 取模表示结果 diff --git a/code_java/src/others/chrysanthemum/Main3.java b/code_java/src/others/chrysanthemum/Main3.java index 1b664f1..c1e8acf 100644 --- a/code_java/src/others/chrysanthemum/Main3.java +++ b/code_java/src/others/chrysanthemum/Main3.java @@ -1,5 +1,7 @@ package others.chrysanthemum; +import java.util.HashSet; + /** * 运动会,任意3排,抽方阵 * 学校开运动会,队伍是 N*3 的 矩阵, 从其中选出 3 排,组成一个方阵,使得 3*3 的方阵是对称的。 @@ -10,6 +12,7 @@ public class Main3 { public int numWay(String[] grid) { int len = grid.length; String[] matrix; + HashSet set = new HashSet(); int res = 0; for (int i = 0; i < len - 2; i++) { for (int j = i + 1; j < len - 1; j++) { diff --git a/code_java/src/others/test/Main1Test.java b/code_java/src/others/test/Main1Test.java index e289237..5cde14c 100644 --- a/code_java/src/others/test/Main1Test.java +++ b/code_java/src/others/test/Main1Test.java @@ -28,6 +28,6 @@ public class Main1Test { res = main1.minOperations(t, 2); System.out.println(res); - System.out.println("max:" + Math.pow(2,32)); + // System.out.println("max:" + Math.pow(2,32)); } } diff --git a/code_java/src/others/test/Main3Test.java b/code_java/src/others/test/Main3Test.java index f9e7c0c..9f9093f 100644 --- a/code_java/src/others/test/Main3Test.java +++ b/code_java/src/others/test/Main3Test.java @@ -20,6 +20,11 @@ public class Main3Test { res = main3.numWay(grid); System.out.println(res); grid = new String[] {"aab","aaa","baa"}; + // grid = new String[] {"baa","aaa","aab"}; + res = main3.numWay(grid); + System.out.println(res); + + grid = new String[] {"aaa","aaa","aaa","aaa"}; res = main3.numWay(grid); System.out.println(res); } -- Gitee From 42102358cd301579565c993c4cbff153f40f8088 Mon Sep 17 00:00:00 2001 From: lipengfei Date: Thu, 3 Sep 2020 01:14:06 +0800 Subject: [PATCH 5/5] docify --- README.md | 446 +----------------- _coverpage.md | 14 + _media/favicon.ico | Bin 0 -> 4286 bytes _media/leetcode-s.png | Bin 0 -> 12119 bytes _media/leetcode.png | Bin 0 -> 46105 bytes _media/leetcode.svg | 16 + _media/leetcodeEveryday.jpg | Bin 0 -> 10751 bytes _navbar.md | 8 + _sidebar.md | 11 + algorithms/README.md | 146 ++++++ algorithms/oj.md | 3 + ...70\347\224\250\347\256\227\346\263\225.md" | 409 ++++++++++++++++ ...01\347\254\224\350\257\225\351\242\230.md" | 23 + index.html | 83 ++++ ...17\346\227\245\346\211\223\345\215\241.md" | 396 ++++++++++++++++ 15 files changed, 1135 insertions(+), 420 deletions(-) create mode 100644 _coverpage.md create mode 100644 _media/favicon.ico create mode 100644 _media/leetcode-s.png create mode 100644 _media/leetcode.png create mode 100644 _media/leetcode.svg create mode 100644 _media/leetcodeEveryday.jpg create mode 100644 _navbar.md create mode 100644 _sidebar.md create mode 100644 algorithms/README.md create mode 100644 algorithms/oj.md create mode 100644 "algorithms/\344\272\224\345\244\247\345\270\270\347\224\250\347\256\227\346\263\225.md" create mode 100644 "algorithms/\345\270\270\350\247\201\347\254\224\350\257\225\351\242\230.md" create mode 100644 index.html create mode 100644 "\346\257\217\346\227\245\346\211\223\345\215\241.md" diff --git a/README.md b/README.md index b921417..06fb91f 100644 --- a/README.md +++ b/README.md @@ -1,437 +1,43 @@ -# Leetcode 学习与总结 +# 每日力扣 -[Leetcode全量题目](LeetCode全部题目.md) +1. [每日打卡](每日打卡.md) +2. [LeetCode全部题目](LeetCode全部题目.md) +3. [LeetCode题目分类](LeetCode题目分类.md) +4. [其它题目](extras.md) -## 一、题目列表 +## 电子书 -| # | TitleEN | TitleCN | Level | [Java](code_java/README.md) | [C++](code_cpp/README.md) | [Python](code_python\README.md) | Go | Remark | -| ---- | ------------------------------------------------------------ | ---------- | ----- | ------------------------------------------------------------ | ------------------------- | ------------------------------- | ---- | ------------------------------------------------------------ | -| 1 | [Two Sum](https://leetcode-cn.com/problems/two-sum/) | | | [Java解答](code_java/src/solution/TwoSum.java) | | | | | -| 2 | [Add Two Numbers](https://leetcode-cn.com/problems/add-two-numbers/) | | | [Java解答](code_java/src/solution/AddTwoNumber.java) | | | | | -| 3 | [Longest Substring Without Repeating Characters](https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) | 无重复字符的最长子串 | medium| [Java解答](code_java/src/solution/LongestSubstringWithoutRepeatingCharacters.java) | | | | 使用双指针法,跟#11题一起做 | -| 4 | [Median of Two Sorted Arrays](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) | | | [Java解答](code_java/src/solution/MedianOfTwoSortedArrays.java) | | | | 这题很经典,多做几遍 | -| 5 | [Longest Palindromic Substring](https://leetcode-cn.com/problems/longest-palindromic-substring/) | | | [Java解答](code_java/src/solution/LongestPalindromicSubstring.java) | | | | 这题对比动态规划和最优算法 | -| 6 | [ZigZag Conversion](https://leetcode-cn.com/problems/zigzag-conversion/) | | | [Java解答](code_java/src/solution/ZigZagConversion.java) | | | | | -| 7 | [Reverse Integer](https://leetcode-cn.com/problems/reverse-integer/) | | | [Java解答](code_java/src/solution/ReverseInteger.java) | | | | | -| 8 | [String to Integer (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/) | | | [Java解答](code_java/src/solution/String2Integer.java) | | | | 很考代码能力,容易错 | -| 9 | [Palindrome Number](https://leetcode-cn.com/problems/palindrome-number/) | | | [Java解答](code_java/src/solution/PalindromeNumber.java) | | | | | -| 10 | [Regular Expression Matching](https://leetcode-cn.com/problems/regular-expression-matching/) | | | [Java解答](code_java/src/solution/RegularExpressionMatching.java) | | | | 这题很经典,多做几遍,和#44一起 | -| 11 | [Container With Most Water](https://leetcode-cn.com/problems/container-with-most-water/) | 盛最多水的容器 | medium | [Java解答](code_java/src/solution/ContainerWithMostWater.java) | | | | | -| 12 | [Integer to Roman](https://leetcode-cn.com/problems/integer-to-roman/) | | | [Java解答](code_java/src/solution/IntegerToRoman.java) | | | | | -| 13 | [Roman to Integer](https://leetcode-cn.com/problems/roman-to-integer/) | | | [Java解答](code_java/src/solution/RomanToInteger.java) | | | | | -| 14 | [Longest Common Prefix](https://leetcode-cn.com/problems/longest-common-prefix/) | | | [Java解答](code_java/src/solution/LongestCommonPrefix.java) | | | | | -| 15 | [3Sum](https://leetcode-cn.com/problems/3sum/) | 三数之和 | | [Java解答](code_java/src/solution/ThreeSum.java) | | | | | -| 16 | [3Sum Closest](https://leetcode-cn.com/problems/3sum-closest/) | | | [Java解答](code_java/src/solution/ThreeSumClosest.java) | | | | | -| 17 | [Letter solution.Combinations of a Phone Number](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) | | | [Java解答](code_java/src/solution/LetterCombinationOfPhoneNumber.java) | | | | 递归/回溯:最后一次递归才加入结果列表 | -| 18 | [4Sum](https://leetcode-cn.com/problems/4sum/) | | | [Java解答](code_java/src/solution/FourSum.java) | | | | | -| 19 | [Remove Nth Node From End of List](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) | | | [Java解答](code_java/src/solution/RemoveNthNodeFromEndOfList.java) | | | | | -| 20 | [Valid Parentheses](https://leetcode-cn.com/problems/valid-parentheses/) | | | [Java解答](code_java/src/solution/ValidParentheses.java) | | | | | -| 21 | [Merge Two Sorted Lists](https://leetcode-cn.com/problems/merge-two-sorted-lists/) | | | [Java解答](code_java/src/solution/MergeTwoSortedList.java) | | | | | -| 22 | [Generate Parentheses](https://leetcode-cn.com/problems/generate-parentheses/) | | | [Java解答](code_java/src/solution/GenerateParentheses.java) | | | | 这题看两遍 | -| 23 | [Merge k Sorted Lists](https://leetcode-cn.com/problems/merge-k-sorted-lists/) | | | [Java解答](code_java/src/solution/MergeKSortedList.java) | | | | | -| 24 | [Swap Nodes in Pairs](https://leetcode-cn.com/problems/swap-nodes-in-pairs/) | | | [Java解答](code_java/src/solution/SwapNodesInPairs.java) | | | | | -| 25 | [Reverse Nodes in k-Group](https://leetcode-cn.com/problems/reverse-nodes-in-k-group/) | | | [Java解答](code_java/src/solution/ReverseNodesInKGroup.java) | | | | | -| 26 | [Remove Duplicates from Sorted Array](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedArray.java) | | | | | -| 27 | [Remove Element](https://leetcode-cn.com/problems/remove-element/) | | | [Java解答](code_java/src/solution/RemoveElement.java) | | | | | -| 28 | [ Implement strStr()](https://leetcode-cn.com/problems/implement-strstr/) | | | [Java解答](code_java/src/solution/StrStr.java) | | | | | -| 29 | [Divide Two Integers](https://leetcode-cn.com/problems/divide-two-integers/) | | | [Java解答](code_java/src/solution/DivideTwoIntegers.java) | | | | | -| 30 | [Substring with Concatenation of All Words](https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/) | | | [Java解答](code_java/src/solution/SubstringWithConcatenationOfAllWords.java) | | | | | -| 31 | [Next Permutation](https://leetcode-cn.com/problems/next-permutation/) | | | [Java解答](code_java/src/solution/NextPermutation.java) | | | | | -| 32 | [Longest Valid Parentheses](https://leetcode-cn.com/problems/longest-valid-parentheses/) | | | [Java解答](code_java/src/solution/LongestValidParentheses.java) | | | | | -| 33 | [Search in Rotated Sorted Array](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/) | | | [Java解答](code_java/src/solution/SearchInRotatedSortedArray.java) | | | | | -| 34 | [Search for a Range](https://leetcode-cn.com/problems/search-for-a-range/) | | | [Java解答](code_java/src/solution/SearchForARange.java) | | | | | -| 35 | [Search Insert Position](https://leetcode-cn.com/problems/search-insert-position/) | | | [Java解答](code_java/src/solution/SearchInsertPosition.java) | | | | | -| 36 | [Valid Sudoku](https://leetcode-cn.com/problems/valid-sudoku/#/description) | | | [Java解答](code_java/src/solution/ValidSudoku.java) | | | | | -| 37 | [Sudoku Solver](https://leetcode-cn.com/problems/sudoku-solver/#/description) | | | [Java解答](code_java/src/solution/SudokuSolver.java) | | | | 这道题是典型的back tracking,多做几遍 | -| 38 | [Count and Say](https://leetcode-cn.com/problems/count-and-say/) | | | [Java解答](code_java/src/solution/CountAndSay.java) | | | | | -| 39 | [Combination Sum](https://leetcode-cn.com/problems/combination-sum/) | | | [Java解答](code_java/src/solution/CombinationSum.java) | | | | 排列组合系列的题要多做几遍 | -| 40 | [Combination Sum II](https://leetcode-cn.com/problems/combination-sum-ii/) | | | [Java解答](code_java/src/solution/CombinationSumII.java) | | | | | -| 41 | [First Missing Positive](https://leetcode-cn.com/problems/first-missing-positive/#/description) | | | [Java解答](code_java/src/solution/FirstMissingPositive.java) | | | | | -| 42 | [Trapping Rain Water](https://leetcode-cn.com/problems/trapping-rain-water/) | | | [Java解答](code_java/src/solution/TrappingRainWater.java) | | | | | -| 43 | [Multiply Strings](https://leetcode-cn.com/problems/multiply-strings/) | | | [Java解答](code_java/src/solution/MultiplyStrings.java) | | | | | -| 44 | [Wildcard Matching](https://leetcode-cn.com/problems/wildcard-matching/) | | | [Java解答](code_java/src/solution/WildcardMatching.java) | | | | 和#10多做几遍 | -| 45 | [Jump Game II](https://leetcode-cn.com/problems/jump-game-ii/#/description) | | | [Java解答](code_java/src/solution/JumpGameII.java) | | | | | -| 46 | [solution.Permutations](https://leetcode-cn.com/problems/permutations/) | | | [Java解答](code_java/src/solution/Permutations.java) | | | | | -| 47 | [solution.Permutations II](https://leetcode-cn.com/problems/permutations-ii/) | | | [Java解答](code_java/src/solution/PermutationsII.java) | | | | 多做几遍 | -| 48 | [Rotate Image](https://leetcode-cn.com/problems/rotate-image/) | | | [Java解答](code_java/src/solution/RotateImage.java) | | | | | -| 49 | [Group Anagrams](https://leetcode-cn.com/problems/anagrams/) | | | [Java解答](code_java/src/solution/GroupAnagrams.java) | | | | | -| 50 | [solution.Pow(x, n)](https://leetcode-cn.com/problems/powx-n/) | | | [Java解答](code_java/src/solution/Pow.java) | | | | | -| 51 | [N-Queens](https://leetcode-cn.com/problems/n-queens/) | | | [Java解答](code_java/src/solution/NQueens.java) | | | | | -| 52 | [N-Queens II](https://leetcode-cn.com/problems/n-queens-ii/) | | | [Java解答](code_java/src/solution/NQueensII.java) | | | | | -| 53 | [Maximum Subarray](https://leetcode-cn.com/problems/maximum-subarray/) | 最大子序和 | easy | [DP算法](code_java/src/solution/MaximumSubarray.java) | | | | DP算法,T=O(N),S=O(1) | -| 54 | [Spiral Matrix](https://leetcode-cn.com/problems/spiral-matrix/) | | | [Java解答](code_java/src/solution/SpiralMatrix.java) | | | | | -| 55 | [Jump Game](https://leetcode-cn.com/problems/jump-game/#/description) | | | [Java解答](code_java/src/solution/JumpGame.java) | | | | | -| 56 | [Merge Intervals](https://leetcode-cn.com/problems/merge-intervals/) | | | [Java解答](code_java/src/solution/MergeIntervals.java) | | | | | -| 57 | [Insert Interval](https://leetcode-cn.com/problems/insert-interval/) | | | [Java解答](code_java/src/solution/InsertInterval.java) | | | | 这题要多做几遍 | -| 60 | [Permutation Sequence](https://leetcode-cn.com/problems/permutation-sequence/) | | | [Java解答](code_java/src/solution/PermutationSequence.java) | | | | 这题思路巧妙,多做两遍 | -| 61 | [Rotate List](https://leetcode-cn.com/problems/rotate-list/) | | | [Java解答](code_java/src/solution/RotateList.java) | | | | | -| 62 | [Unique Paths](https://leetcode-cn.com/problems/unique-paths/) | 不同的路径 | medium | [排列组合法/DP算法](code_java/src/solution/UniquePath.java) | | | | 排列组合法: 将机器人行列要走的轨迹当作要选择的方块 | -| 63 | [Unique Path II](https://leetcode-cn.com/problems/unique-paths-ii/) | 不同的路径2 | medium | [DP算法](code_java/src/solution/UniquePathII.java) | | | | DP算法,可以利用原先矩阵将空间复杂度降为 O(1) | -| 66 | [Plus One](https://leetcode-cn.com/problems/plus-one/) | | | [Java解答](code_java/src/solution/PlusOne.java) | | | | 这题多看一遍 | -| 67 | [Add Binary](https://leetcode-cn.com/problems/add-binary/) | | | [Java解答](code_java/src/solution/AddBinary.java) | | | | | -| 68 | [Text Justification](https://leetcode-cn.com/problems/text-justification/) | | | [Java解答](code_java/src/solution/TextJustification.java) | | | | | -| 69 | [solution.Sqrt(x)](https://leetcode-cn.com/problems/sqrtx/) | | | [Java解答](code_java/src/solution/Sqrt.java) | | | | | -| 70 | [Climb Stairs](https://leetcode-cn.com/problems/climbing-stairs/) | 爬楼梯 | easy | [迭代法/动态规划法/递归法](code_java/src/solution/ClimbingStairs.java) | | | | 可使用迭代法/动态规划法/递归法 | -| 71 | [Simplify Path](https://leetcode-cn.com/problems/simplify-path/) | | | [Java解答](code_java/src/solution/SimplifyPath.java) | | | | | -| 72 | [Edit Distance](https://leetcode-cn.com/problems/edit-distance/) | 编辑距离 | difficult | [Java解答](code_java/src/solution/EditDistance.java) | | | | DP算法 | -| 73 | [Set Matrix Zeroes](https://leetcode-cn.com/problems/set-matrix-zeroes/description/) | | | [Java解答](code_java/src/solution/SetMatrixZeroes.java) | | | | | -| 74 | [Search a 2D Matrix](https://leetcode-cn.com/problems/search-a-2d-matrix/) | | | [Java解答](code_java/src/solution/Search2DMatrix.java) | | | | | -| 75 | [Sort Colors](https://leetcode-cn.com/problems/sort-colors/) | | | [Java解答](code_java/src/solution/SortColors.java) | | | | 这题多做几遍,很有意思 | -| 76 | [Minimum Window Substring](https://leetcode-cn.com/problems/minimum-window-substring/) | | | [Java解答](code_java/src/solution/MinimumWindowSubstring.java) | | | | 这题以及类似的题一定要多做几遍,很经典,参见window | -| 77 | [solution.Combinations](https://leetcode-cn.com/problems/combinations) | | | [Java解答](code_java/src/solution/Combinations.java) | | | | | -| 78 | [solution.Subsets](https://leetcode-cn.com/problems/subsets/) | | | [Java解答](code_java/src/solution/Subsets.java) | | | | | -| 79 | [Word Search](https://leetcode-cn.com/problems/word-search/) | | | [Java解答](code_java/src/solution/WordSearch.java) | | | | | -| 80 | [Remove Duplicates from Sorted Array II](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedArrayII.java) | | | | | -| 81 | [Search in Rotated Sorted Array II](https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/) | | | [Java解答](code_java/src/solution/SearchInRotatedSortedArrayII.java) | | | | | -| 82 | [Remove Duplicates from Sorted List II](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedListII.java) | | | | | -| 83 | [Remove Duplicates from Sorted List](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedList.java) | | | | | -| 84 | [Largest Rectangle in Histogram](https://leetcode-cn.com/problems/largest-rectangle-in-histogram/) | | | [Java解答](code_java/src/solution/LargestRectangleInHistogram.java) | | | | | -| 85 | [Maximal Rectangle](https://leetcode-cn.com/problems/maximal-rectangle/) | | | [Java解答](code_java/src/solution/MaximalRectangle.java) | | | | | -| 86 | [Partition List](https://leetcode-cn.com/problems/partition-list/) | | | [Java解答](code_java/src/solution/PartitionList.java) | | | | | -| 88 | [Merge Sorted Array](https://leetcode-cn.com/problems/merge-sorted-array/) | | | [Java解答](code_java/src/solution/MergeSortedArray.java) | | | | | -| 90 | [solution.Subsets II](https://leetcode-cn.com/problems/subsets-ii/) | | | [Java解答](code_java/src/solution/SubsetsII.java) | | | | | -| 91 | [Decode Ways](https://leetcode-cn.com/problems/decode-ways/) | | | [Java解答](code_java/src/solution/DecodeWays.java) | | | | 这题多做几遍,包括#639 | -| 92 | [Reverse Linked List II](https://leetcode-cn.com/problems/reverse-linked-list-ii/) | | | [Java解答](code_java/src/solution/ReverseLinkedListII.java) | | | | | -| 93 | [Restore IP Addresses](https://leetcode-cn.com/problems/restore-ip-addresses/) | | | [Java解答](code_java/src/solution/RestoreIPAddresses.java) | | | | 多看两遍 | -| 94 | [Binary Tree Inorder Traversal](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeInorderTraversal.java) | | | | | -| 95 | [Unique Binary Search Trees II](https://leetcode-cn.com/problems/unique-binary-search-trees-ii/) | | | [Java解答](code_java/src/solution/UniqueBinarySearchTreesII.java) | | | | 多做几遍,递归和DP | -| 96 | [Unique Binary Search Trees](https://leetcode-cn.com/problems/unique-binary-search-trees/) | | | [Java解答](code_java/src/solution/UniqueBinarySearchTrees.java) | | | | | -| 98 | [Validate Binary Search Tree](https://leetcode-cn.com/problems/validate-binary-search-tree/) | | | [Java解答](code_java/src/solution/ValidateBinarySearchTree.java) | | | | 注意溢出 | -| 99 | [Recover Binary Search Tree](https://leetcode-cn.com/problems/recover-binary-search-tree/) | | | [Java解答](code_java/src/solution/RecoverBinarySearchTree.java) | | | | 这题很容易错,要多做几遍 | -| 100 | [Same Tree](https://leetcode-cn.com/problems/same-tree/) | | | [Java解答](code_java/src/solution/SameTree.java) | | | | | -| 101 | [Symmetric Tree](https://leetcode-cn.com/problems/symmetric-tree/) | 对称二叉树 | | [Java解答](code_java/src/solution/SymmetricTree.java) | | | | | -| 102 | [Binary Tree Level Order Traversal](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeLevelOrderTraversal.java) | | | | | -| 103 | [Binary Tree Zigzag Level Order Traversal](https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java) | | | | | -| 104 | [Maximum Depth of Binary Tree](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/) | 最大树深度 | | [Java解答](code_java/src/solution/MaximumDepthOfBinaryTree.java) | | | | | -| 105 | [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java) | | | | | -| 106 | [Construct Binary Tree from Inorder and Postorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java) | | | | | -| 107 | [Binary Tree Level Order Traversal II](https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/) | | | [Java解答](code_java/src/solution/BinaryTreeLevelOrderTraversalII.java) | | | | | -| 108 | [Convert Sorted Array to Binary Search Tree](https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/) | | | [Java解答](code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java) | | | | | -| 109 | [Convert Sorted List to Binary Search Tree](https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/) | | | [Java解答](code_java/src/solution/ConvertSortedListToBinarySearchTree.java) | | | | | -| 110 | [Balanced Binary Tree](https://leetcode-cn.com/problems/balanced-binary-tree/) | 平衡二叉树 | | [Java解答](code_java/src/solution/BalancedBinaryTree.java) | | | | | -| 111 | [Minimum Depth of Binary Tree](https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/) | | | [Java解答](code_java/src/solution/MinimumDepthOfBinaryTree.java) | | | | | -| 112 | [Path Sum](https://leetcode-cn.com/problems/path-sum/) | | | [Java解答](code_java/src/solution/PathSum.java) | | | | | -| 113 | [Path Sum II](https://leetcode-cn.com/problems/path-sum-ii/) | | | [Java解答](code_java/src/solution/PathSumII.java) | | | | 错了好几次,得多做几遍 | -| 114 | [Flatten Binary Tree to Linked List](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/) | | | [Java解答](code_java/src/solution/FlattenBinaryTreeToLinkedList.java) | | | | | -| 116 | [Populating Next Right Pointers in Each Node](https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/) | | | [Java解答](code_java/src/solution/PopulatingNextRightPointersInEachNode.java) | | | | | -| 117 | [Populating Next Right Pointers in Each Node II](https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/) | | | [Java解答](code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java) | | | | | -| 118 | [Pascal's Triangle](https://leetcode-cn.com/problems/pascals-triangle/) | | | [Java解答](code_java/src/solution/PascalsTriangle.java) | | | | | -| 119 | [Pascal's Triangle II](https://leetcode-cn.com/problems/pascals-triangle-ii/description/) | | | [Java解答](code_java/src/solution/PascalTriangleII.java) | | | | | -| 120 | [Triangle](https://leetcode-cn.com/problems/triangle) | 三角形最小路径和 | medium | [Java解答](code_java/src/solution/Triangle.java) | | | | dp, 自上而下,自下而上的方法,可用 dp[][],dp[] 两种辅助空间 | -| 121 | [Best Time to Buy and Sell Stock](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStock.java) | | | | | -| 122 | [Best Time to Buy and Sell Stock II](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockII.java) | | | | | -| 123 | [Best Time to Buy and Sell Stock III](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockIII.java) | | | | | -| 124 | [Binary Tree Maximum Path Sum](https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/) | | | [Java解答](code_java/src/solution/BinaryTreeMaximumPathSum.java) | | | | | -| 125 | [Valid Palindrome](https://leetcode-cn.com/problems/valid-palindrome/) | | | [Java解答](code_java/src/solution/ValidPalindrome.java) | | | | | -| 126 | [Word Ladder II](https://leetcode-cn.com/problems/word-ladder-ii/) | | | [Java解答](code_java/src/solution/WordLadderII.java) | | | | | -| 127 | [Word Ladder](https://leetcode-cn.com/problems/word-ladder/) | | | [Java解答](code_java/src/solution/WordLadder.java) | | | | 此题非常经典,务必连同ii多做几遍,将双端BFS吃透 | -| 128 | [Longest Consecutive Sequence](https://leetcode-cn.com/problems/longest-consecutive-sequence/) | | | [Java解答](code_java/src/solution/LongestConsecutiveSequence.java) | | | | | -| 129 | [Sum Root to Leaf Numbers](https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/) | | | [Java解答](code_java/src/solution/SumRootToLeafNumbers.java) | | | | | -| 130 | [Surrounded Regions](https://leetcode-cn.com/problems/surrounded-regions/) | | | [Java解答](code_java/src/solution/SurroundedRegions.java) | | | | | -| 131 | [Palindrome Partitioning](https://leetcode-cn.com/problems/palindrome-partitioning/) | | | [Java解答](code_java/src/solution/PalindromePartitioning.java) | | | | | -| 132 | [Palindrome Partitioning II](https://leetcode-cn.com/problems/palindrome-partitioning-ii/) | | | [Java解答](code_java/src/solution/PalindromePartitioningII.java) | | | | | -| 133 | [Clone Graph](https://leetcode-cn.com/problems/clone-graph/) | | | [Java解答](code_java/src/solution/CloneGraph.java) | | | | 这题不难,多看两遍,BFS方法再做两遍 | -| 135 | [solution.Candy](https://leetcode-cn.com/problems/candy/) | | | [Java解答](code_java/src/solution/Candy.java) | | | | | -| 138 | [Copy List with Random Pointer](https://leetcode-cn.com/problems/copy-list-with-random-pointer/) | | | [Java解答](code_java/src/solution/CopyListWithRandomPointer.java) | | | | 有一个易错点 | -| 139 | [Word Break](https://leetcode-cn.com/problems/word-break/) | | | [Java解答](code_java/src/solution/WordBreak.java) | | | | 多看两遍 | -| 140 | [Word Break II](https://leetcode-cn.com/problems/word-break-ii/) | | | [Java解答](code_java/src/solution/WordBreakII.java) | | | | 这题多做两遍,很典型 | -| 141 | [Linked List Cycle](https://leetcode-cn.com/problems/linked-list-cycle/) | | | [Java解答](code_java/src/solution/LinkedListCycle.java) | | | | | -| 142 | [Linked List Cycle II](https://leetcode-cn.com/problems/linked-list-cycle-ii/) | | | [Java解答](code_java/src/solution/LinkedListCycleII.java) | | | | | -| 143 | [Reorder List](https://leetcode-cn.com/problems/reorder-list/) | | | [Java解答](code_java/src/solution/ReorderList.java) | | | | | -| 144 | [Binary Tree Preorder Traversal](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreePreorderTraversal.java) | | | | | -| 145 | [Binary Tree Postorder Traversal](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreePostorderTraversal.java) | | | | | -| 146 | [LRU Cache](https://leetcode-cn.com/problems/lru-cache/) | | | [Java解答](code_java/src/solution/LRUCache.java) | | | | 好题目,多做几遍 | -| 147 | [Insertion Sort List](https://leetcode-cn.com/problems/insertion-sort-list/) | | | [Java解答](code_java/src/solution/InsertionSortList.java) | | | | | -| 148 | [Sort List](https://leetcode-cn.com/problems/sort-list) | | | [Java解答](code_java/src/solution/SortList.java) | | | | | -| 149 | [Max Points on a Line](https://leetcode-cn.com/problems/max-points-on-a-line/) | | | [Java解答](code_java/src/solution/MaxPointsOnALine.java) | | | | | -| 150 | [Evaluate Reverse Polish Notation](https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/) | | | [Java解答](code_java/src/solution/EvaluateReversePolishNotation.java) | | | | | -| 151 | [Reverse Words in a String](https://leetcode-cn.com/problems/reverse-words-in-a-string/description/) | | | [Java解答](code_java/src/solution/ReverseWordsInAString.java) | | | | 这题虽然不难,但是也错了几次 | -| 152 | [Maximum Product Subarray](https://leetcode-cn.com/problems/maximum-product-subarray/) | | | [Java解答](code_java/src/solution/MaximumProductSubarray.java) | | | | | -| 153 | [Find Minimum in Rotated Sorted Array](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/) | | | [Java解答](code_java/src/solution/FindMinimumInRotatedSortedArray.java) | | | | | -| 154 | [Find Minimum in Rotated Sorted Array II](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/) | | | [Java解答](code_java/src/solution/FindMinimumInRotatedSortedArrayII.java) | | | | | -| 155 | [Min Stack](https://leetcode-cn.com/problems/min-stack/) | | | [Java解答](code_java/src/solution/MinStack.java) | | | | | -| 156 | [Binary Tree Upside Down](https://leetcode-cn.com/problems/binary-tree-upside-down/) | | | [Java解答](code_java/src/solution/BinaryTreeUpsideDown.java) | | | | 这道题挺有意思,多做几遍 | -| 157 | [Read N Characters Given Read4](https://leetcode-cn.com/problems/read-n-characters-given-read4/) | | | [Java解答](code_java/src/solution/ReadNCharactersGivenRead4.java) | | | | 这题多做几遍,结合#158 | -| 158 | [Read N Characters Given Read4 II - Call multiple times](https://leetcode-cn.com/problems/read-n-characters-given-read4-ii-call-multiple-times/) | | | [Java解答](code_java/src/solution/ReadNCharactersGivenRead4II.java) | | | | | -| 159 | [Longest Substring with At Most Two Distinct Characters](https://leetcode-cn.com/problems/longest-substring-with-at-most-two-distinct-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtMostTwoDistinctCharacters.java) | | | | 多看两遍 | -| 160 | [Intersection of Two Linked Lists](https://leetcode-cn.com/problems/intersection-of-two-linked-lists/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoLinkedLists.java) | | | | | -| 161 | [One Edit Distance](https://leetcode-cn.com/problems/one-edit-distance/) | | | [Java解答](code_java/src/solution/OneEditDistance.java) | | | | 和#72做两遍 | -| 162 | [Find Peak Element](https://leetcode-cn.com/problems/find-peak-element/) | | | [Java解答](code_java/src/solution/FindPeakElement.java) | | | | | -| 163 | [Missing Ranges](https://leetcode-cn.com/problems/missing-ranges/) | | | [Java解答](code_java/src/solution/MissingRanges.java) | | | | 多做几遍,太容易错了 | -| 164 | [Maximum Gap](https://leetcode-cn.com/problems/maximum-gap/) | | | [Java解答](code_java/src/solution/MaximumGap.java) | | | | | -| 167 | [Two Sum II - Input array is sorted](https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/) | | | [Java解答](code_java/src/solution/TwoSumII.java) | | | | | -| 168 | [Excel Sheet Column Title](https://leetcode-cn.com/problems/excel-sheet-column-title/) | | | [Java解答](code_java/src/solution/ExcelSheetColumnTitle.java) | | | | | -| 169 | [Majority Element](https://leetcode-cn.com/problems/majority-element/) | | | [Java解答](code_java/src/solution/MajorityElement.java) | | | | | -| 170 | [Two Sum III - Data structure design](https://leetcode-cn.com/problems/two-sum-iii-data-structure-design/) | | | [Java解答](code_java/src/solution/TwoSumIII.java) | | | | 这道题再多做一遍 | -| 171 | [Excel Sheet Column Number](https://leetcode-cn.com/problems/excel-sheet-column-number/) | | | [Java解答](code_java/src/solution/ExcelSheetColumnNumber.java) | | | | | -| 172 | [Factorial Trailing Zeroes](https://leetcode-cn.com/problems/factorial-trailing-zeroes/) | | | [Java解答](code_java/src/solution/FactorialTrailingZeroes.java) | | | | | -| 173 | [Binary Search Tree Iterator](https://leetcode-cn.com/problems/binary-search-tree-iterator/) | | | [Java解答](code_java/src/solution/BSTIterator.java) | | | | 多留意一下 | -| 179 | [Largest Number](https://leetcode-cn.com/problems/largest-number/) | | | [Java解答](code_java/src/solution/LargestNumber.java) | | | | | -| 186 | [Reverse Words in a String II](https://leetcode-cn.com/problems/reverse-words-in-a-string-ii/description/) | | | [Java解答](code_java/src/solution/ReverseWordsInAStringII.java) | | | | | -| 188 | [Best Time to Buy and Sell Stock IV](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockIV.java) | | | | | -| 189 | [Rotate Array](https://leetcode-cn.com/problems/rotate-array/) | | | [Java解答](code_java/src/solution/RotateArray.java) | | | | | -| 190 | [Reverse Bits](https://leetcode-cn.com/problems/reverse-bits/) | | | [Java解答](code_java/src/solution/ReverseBits.java) | | | | | -| 198 | [House Robber](https://leetcode-cn.com/problems/house-robber/) | | | [Java解答](code_java/src/solution/HouseRobber.java) | | | | | -| 199 | [Binary Tree Right Side View](https://leetcode-cn.com/problems/binary-tree-right-side-view/) | | | [Java解答](code_java/src/solution/BinaryTreeRightSideView.java) | | | | | -| 200 | [Number of Islands](https://leetcode-cn.com/problems/number-of-islands/) | | | [Java解答](code_java/src/solution/NumberOfIslands.java) | | | | 这道题很经典,而且方法不止一种,每种方法都多做几遍,包括UF,#305 | -| 203 | [Remove Linked List Elements](https://leetcode-cn.com/problems/remove-linked-list-elements/) | | | [Java解答](code_java/src/solution/RemoveLinkedListElements.java) | | | | | -| 204 | [Count Primes](https://leetcode-cn.com/problems/count-primes/) | | | [Java解答](code_java/src/solution/CountPrimes.java) | | | | | -| 206 | [Reverse Linked List](https://leetcode-cn.com/problems/reverse-linked-list/) | | | [Java解答](code_java/src/solution/ReverseLinkedList.java) | | | | | -| 207 | [Course Schedule](https://leetcode-cn.com/problems/course-schedule/) | | | [Java解答](code_java/src/solution/CourseSchedule.java) | | | | 典型的拓扑排序 | -| 208 | [Implement solution.Trie (Prefix Tree)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/) | | | [Java解答](code_java/src/solution/Trie.java) | | | | 和#211多留意,trie很典型 | -| 209 | [Minimum Size Subarray Sum](https://leetcode-cn.com/problems/minimum-size-subarray-sum/) | | | [Java解答](code_java/src/solution/MinimumSizeSubarraySum.java) | | | | | -| 210 | [Course Schedule II](https://leetcode-cn.com/problems/course-schedule-ii/) | | | [Java解答](code_java/src/solution/CourseScheduleII.java) | | | | | -| 211 | [Add and Search Word - Data structure design](https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/) | | | [Java解答](code_java/src/solution/WordDictionary.java) | | | | | -| 212 | [Word Search II](https://leetcode-cn.com/problems/word-search-ii/) | | | [Java解答](code_java/src/solution/WordSearchII.java) | | | | | -| 213 | [House Robber II](https://leetcode-cn.com/problems/house-robber-ii/) | | | [Java解答](code_java/src/solution/HouseRobberII.java) | | | | | -| 214 | [Shortest Palindrome](https://leetcode-cn.com/problems/shortest-palindrome/) | | | [Java解答](code_java/src/solution/ShortestPalindrome.java) | | | | | -| 215 | [Kth Largest Element in an Array](https://leetcode-cn.com/problems/kth-largest-element-in-an-array/) | | | [Java解答](code_java/src/solution/KthLargestElementInArray.java) | | | | 这题很经典,三种解法都要了然于胸 | -| 216 | [Combination Sum III](https://leetcode-cn.com/problems/combination-sum-iii/) | | | [Java解答](code_java/src/solution/CombinationSumIII.java) | | | | | -| 217 | [Contains Duplicate](https://leetcode-cn.com/problems/contains-duplicate/) | | | [Java解答](code_java/src/solution/ContainsDuplicate.java) | | | | | -| 218 | [The Skyline Problem](https://leetcode-cn.com/problems/the-skyline-problem/) | | | [Java解答](code_java/src/solution/TheSkylineProblem.java) | | | | 这题多做两遍 | -| 219 | [Contains Duplicate II](https://leetcode-cn.com/problems/contains-duplicate-ii/) | | | [Java解答](code_java/src/solution/ContainsDuplicateII.java) | | | | | -| 220 | [Contains Duplicate III](https://leetcode-cn.com/problems/contains-duplicate-iii/) | | | [Java解答](code_java/src/solution/ContainsDuplicateIII.java) | | | | | -| 221 | [Maximal Square](https://leetcode-cn.com/problems/maximal-square/) | | | [Java解答](code_java/src/solution/MaximalSquare.java) | | | | | -| 222 | [Count Complete Tree Nodes](https://leetcode-cn.com/problems/count-complete-tree-nodes/) | | | [Java解答](code_java/src/solution/CountCompleteTreeNodes.java) | | | | 一般的做法会超时 | -| 223 | [Rectangle Area](https://leetcode-cn.com/problems/rectangle-area/) | | | [Java解答](code_java/src/solution/RectangleArea.java) | | | | | -| 224 | [Basic Calculator](https://leetcode-cn.com/problems/basic-calculator/) | | | [Java解答](code_java/src/solution/BasicCalculator.java) | | | | | -| 225 | [Implement Stack using Queues](https://leetcode-cn.com/problems/implement-stack-using-queues/) | | | [Java解答](code_java/src/solution/MyStack.java) | | | | | -| 226 | [Invert Binary Tree](https://leetcode-cn.com/problems/invert-binary-tree/) | | | [Java解答](code_java/src/solution/InvertBinaryTree.java) | | | | | -| 228 | [Summary Ranges](https://leetcode-cn.com/problems/summary-ranges/) | | | [Java解答](code_java/src/solution/SummaryRanges.java) | | | | | -| 229 | [Majority Element II](https://leetcode-cn.com/problems/majority-element-ii/) | | | [Java解答](code_java/src/solution/MajorityElementII.java) | | | | | -| 230 | [Kth Smallest Element in a BST](https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/) | | | [Java解答](code_java/src/solution/KthSmallestElementInBST.java) | | | | 注意Follow Up | -| 232 | [Implement Queue using Stacks](https://leetcode-cn.com/problems/implement-queue-using-stacks/) | | | [Java解答](code_java/src/solution/MyQueue.java) | | | | | -| 233 | [Number of Digit One](https://leetcode-cn.com/problems/number-of-digit-one/) | | | [Java解答](code_java/src/solution/NumberOfDigitOne.java) | | | | | -| 234 | [Palindrome Linked List](https://leetcode-cn.com/problems/palindrome-linked-list/) | | | [Java解答](code_java/src/solution/PalindromeLinkedList.java) | | | | | -| 235 | [Lowest Common Ancestor of a Binary Search Tree](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) | | | [Java解答](code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java) | | | | | -| 236 | [Lowest Common Ancestor of a Binary Tree](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/) | | | [Java解答](code_java/src/solution/LowestCommonAncestorOfBinaryTree.java) | | | | 这题很经典,多做几遍,留意节点不在树中的情况 | -| 237 | [Delete Node in a Linked List](https://leetcode-cn.com/problems/delete-node-in-a-linked-list/) | | | [Java解答](code_java/src/solution/DeleteNodeInALinkedList.java) | | | | | -| 238 | [Product of Array Except Self](https://leetcode-cn.com/problems/product-of-array-except-self/) | | | [Java解答](code_java/src/solution/ProductOfArrayExceptSelf.java) | | | | | -| 239 | [Sliding Window Maximum](https://leetcode-cn.com/problems/sliding-window-maximum/) | | | [Java解答](code_java/src/solution/SlidingWindowMaximum.java) | | | | 这题非常经典,多做几遍,包括常规算法(优先队列,treemap)及优化算法双端队列 | -| 240 | [Search a 2D Matrix II](https://leetcode-cn.com/problems/search-a-2d-matrix-ii/) | | | [Java解答](code_java/src/solution/Search2DMatrixII.java) | | | | | -| 241 | [Different Ways to Add Parentheses](https://leetcode-cn.com/problems/different-ways-to-add-parentheses/) | | | [Java解答](code_java/src/solution/DifferenceWaysToAddParentheses.java) | | | | | -| 242 | [Valid Anagram](https://leetcode-cn.com/problems/valid-anagram/) | | | [Java解答](code_java/src/solution/ValidAnagram.java) | | | | | -| 243 | [Shortest Word Distance](https://leetcode-cn.com/problems/shortest-word-distance/) | | | [Java解答](code_java/src/solution/ShortestWordDistance.java) | | | | | -| 244 | [Shortest Word Distance II](https://leetcode-cn.com/problems/shortest-word-distance-ii/) | | | [Java解答](code_java/src/solution/ShortestWordDistanceII.java) | | | | | -| 245 | [Shortest Word Distance III](https://leetcode-cn.com/problems/shortest-word-distance-iii/) | | | [Java解答](code_java/src/solution/ShortestWordDistanceIII.java) | | | | | -| 246 | [Strobogrammatic Number](https://leetcode-cn.com/problems/strobogrammatic-number/) | | | [Java解答](code_java/src/solution/StrobogrammaticNumber.java) | | | | #247一个系列,多看两遍 | -| 247 | [Strobogrammatic Number II](https://leetcode-cn.com/problems/strobogrammatic-number-ii/) | | | [Java解答](code_java/src/solution/src/StrobogrammaticNumberII.java) | | | | 多看两遍 | -| 249 | [Group Shifted Strings](https://leetcode-cn.com/problems/group-shifted-strings/) | | | [Java解答](code_java/src/solution/GroupShiftedStrings.java) | | | | | -| 250 | [Count Univalue Subtrees](https://leetcode-cn.com/problems/count-univalue-subtrees/) | | | [Java解答](code_java/src/solution/CountUnivalueSubtrees.java) | | | | 这题要多做几遍 | -| 251 | [Flatten 2D Vector](https://leetcode-cn.com/problems/flatten-2d-vector/) | | | [Java解答](code_java/src/solution/Vector2D.java) | | | | | -| 252 | [Meeting Rooms](https://leetcode-cn.com/problems/meeting-rooms/) | | | [Java解答](code_java/src/solution/MeetingRooms.java) | | | | | -| 253 | [Meeting Rooms II](https://leetcode-cn.com/problems/meeting-rooms-ii/) | | | [Java解答](code_java/src/solution/MeetingRoomsII.java) | | | | | -| 254 | [Factor solution.Combinations](https://leetcode-cn.com/problems/factor-combinations/) | | | [Java解答](code_java/src/solution/FactorCombinations.java) | | | | | -| 255 | [Verify Preorder Sequence in Binary Search Tree](https://leetcode-cn.com/problems/verify-preorder-sequence-in-binary-search-tree/) | | | [Java解答](code_java/src/solution/VerifyPreorderSequenceInBinarySearchTree.java) | | | | 很简单,粗心错了 | -| 256 | [Paint House](https://leetcode-cn.com/problems/paint-house/) | | | [Java解答](code_java/src/solution/PaintHouse.java) | | | | | -| 257 | [Binary Tree Paths](https://leetcode-cn.com/problems/binary-tree-paths/) | | | [Java解答](code_java/src/solution/BinaryTreePaths.java) | | | | | -| 259 | [3Sum Smaller](https://leetcode-cn.com/problems/3sum-smaller/) | | | [Java解答](code_java/src/solution/ThreeSumSmaller.java) | | | | 这题虽然简单,但是因为思维定式还是错了几次 | -| 261 | [Graph Valid Tree](https://leetcode-cn.com/problems/graph-valid-tree/) | | | [Java解答](code_java/src/solution/GraphValidTree.java) | | | | 这题多做几遍 | -| 263 | [Ugly Number](https://leetcode-cn.com/problems/ugly-number/) | | | [Java解答](code_java/src/solution/UglyNumber.java) | | | | | -| 264 | [Ugly Number II](https://leetcode-cn.com/problems/ugly-number-ii/) | | | [Java解答](code_java/src/solution/UglyNumberII.java) | | | | | -| 265 | [Paint House II](https://leetcode-cn.com/problems/paint-house-ii) | | | [Java解答](code_java/src/solution/PaintHouseII.java) | | | | | -| 266 | [Palindrome Permutation](https://leetcode-cn.com/problems/palindrome-permutation/) | | | [Java解答](code_java/src/solution/PalindromePermutation.java) | | | | | -| 267 | [Palindrome Permutation II](https://leetcode-cn.com/problems/palindrome-permutation-ii/) | | | [Java解答](code_java/src/solution/PalindromePermutationII.java) | | | | 典型,多看两遍 | -| 268 | [Missing Number](https://leetcode-cn.com/problems/missing-number) | | | [Java解答](code_java/src/solution/MissingNumber.java) | | | | | -| 269 | [Alien Dictionary](https://leetcode-cn.com/problems/alien-dictionary/) | | | [Java解答](code_java/src/solution/AlienDictionary.java) | | | | 这题要多做几遍 | -| 270 | [Closest Binary Search Tree Value](https://leetcode-cn.com/problems/closest-binary-search-tree-value/) | | | [Java解答](code_java/src/solution/ClosestBinarySearchTreeValue.java) | | | | | -| 271 | [Encode and Decode Strings](https://leetcode-cn.com/problems/encode-and-decode-strings/) | | | [Java解答](code_java/src/solution/EncodeAndDecodeStrings.java) | | | | 思路巧妙,多看几遍 | -| 272 | [Closest Binary Search Tree Value II](https://leetcode-cn.com/problems/closest-binary-search-tree-value-ii/) | | | [Java解答](code_java/src/solution/ClosestBinarySearchTreeValueII.java) | | | | 这题非常值得多做几遍,几种写法都试试 | -| 273 | [Integer to English Words](https://leetcode-cn.com/problems/integer-to-english-words/) | | | [Java解答](code_java/src/solution/IntegerToEnglishWords.java) | | | | 多做几遍,做到bug free | -| 274 | [H-Index](https://leetcode-cn.com/problems/h-index/) | | | [Java解答](code_java/src/solution/HIndex.java) | | | | | -| 275 | [H-Index II](https://leetcode-cn.com/problems/h-index-ii/) | | | [Java解答](code_java/src/solution/HIndexII.java) | | | | | -| 277 | [Find the Celebrity](https://leetcode-cn.com/problems/find-the-celebrity/) | | | [Java解答](code_java/src/solution/FindCelebrity.java) | | | | | -| 278 | [First Bad Version](https://leetcode-cn.com/problems/first-bad-version/) | | | [Java解答](code_java/src/solution/FirstBadVersion.java) | | | | | -| 279 | [Perfect Squares](https://leetcode-cn.com/problems/perfect-squares/) | | | [Java解答](code_java/src/solution/PerfectSquares.java) | | | | | -| 280 | [Wiggle Sort](https://leetcode-cn.com/problems/wiggle-sort/) | | | [Java解答](code_java/src/solution/WiggleSort.java) | | | | 思路巧妙,多看两遍 | -| 281 | [Zigzag Iterator](https://leetcode-cn.com/problems/zigzag-iterator/) | | | [Java解答](code_java/src/solution/ZigzagIterator.java) | | | | 多做三遍,考虑扩展到k的情况 | -| 282 | [Expression Add Operators](https://leetcode-cn.com/problems/expression-add-operators/) | | | [Java解答](code_java/src/solution/ExpressionAddOperators.java) | | | | | -| 283 | [Move Zeroes](https://leetcode-cn.com/problems/move-zeroes/) | | | [Java解答](code_java/src/solution/MoveZeroes.java) | | | | | -| 284 | [Peeking Iterator](https://leetcode-cn.com/problems/peeking-iterator/) | | | [Java解答](code_java/src/solution/PeekingIterator.java) | | | | | -| 285 | [Inorder Successor in BST](https://leetcode-cn.com/problems/inorder-successor-in-bst/) | | | [Java解答](code_java/src/solution/InorderSuccessorInBST.java) | | | | 这道题有意思,要多做几遍 | -| 286 | [Walls and Gates](https://leetcode-cn.com/problems/walls-and-gates/) | | | [Java解答](code_java/src/solution/WallsAndGates.java) | | | | 多看两遍 | -| 287 | [Find the Duplicate Number](https://leetcode-cn.com/problems/find-the-duplicate-number/) | | | [Java解答](code_java/src/solution/FindTheDuplicateNumber.java) | | | | | -| 288 | [Unique Word Abbreviation](https://leetcode-cn.com/problems/unique-word-abbreviation/) | | | [Java解答](code_java/src/solution/ValidWordAbbr.java) | | | | 这题不难,多做两遍,题目意思容易理解错 | -| 289 | [Game of Life](https://leetcode-cn.com/problems/game-of-life/) | | | [Java解答](code_java/src/solution/GameOfLife.java) | | | | | -| 293 | [Flip Game](https://leetcode-cn.com/problems/flip-game/) | | | [Java解答](code_java/src/solution/FlipGame.java) | | | | | -| 294 | [Flip Game II](https://leetcode-cn.com/problems/flip-game-ii/) | | | [Java解答](code_java/src/solution/FlipGameII.java) | | | | | -| 295 | [Find Median from Data Stream](https://leetcode-cn.com/problems/find-median-from-data-stream/) | | | [Java解答](code_java/src/solution/FindMedianFromDataStream.java) | | | | | -| 297 | [Serialize and Deserialize Binary Tree](https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/) | | | [Java解答](code_java/src/solution/Codec.java) | | | | 好题目,多做做,递归的非递归的 | -| 298 | [Binary Tree Longest Consecutive Sequence](https://leetcode-cn.com/problems/binary-tree-longest-consecutive-sequence/) | | | [Java解答](code_java/src/solution/BinaryTreeLongestConsecutiveSequence.java) | | | | 多做三遍,尽可能简洁 | -| 299 | [Bulls and Cows](https://leetcode-cn.com/problems/bulls-and-cows/) | | | [Java解答](code_java/src/solution/BullsAndCows.java) | | | | | -| 300 | [Longest Increasing Subsequence](https://leetcode-cn.com/problems/longest-increasing-subsequence/) | | | [Java解答](code_java/src/solution/LongestIncreasingSubsequence.java) | | | | | -| 301 | [Remove Invalid Parentheses](https://leetcode-cn.com/problems/remove-invalid-parentheses/) | | | [Java解答](code_java/src/solution/RemoveInvalidParentheses.java) | | | | 比较难,多做几遍 | -| 302 | [Smallest Rectangle Enclosing Black Pixels](https://leetcode-cn.com/problems/smallest-rectangle-enclosing-black-pixels/) | | | [Java解答](code_java/src/solution/SmallestRectangleEnclosingBlackPixels.java) | | | | | -| 303 | [Range Sum Query - Immutable](https://leetcode-cn.com/problems/range-sum-query-immutable/) | | | [Java解答](code_java/src/solution/NumArray.java) | | | | | -| 304 | [Range Sum Query 2D - Immutable](https://leetcode-cn.com/problems/range-sum-query-2d-immutable/) | | | [Java解答](code_java/src/solution/NumMatrix.java) | | | | | -| 305 | [Number of Islands II](https://leetcode-cn.com/problems/number-of-islands-ii/) | | | [Java解答](code_java/src/solution/NumberOfIslandsII.java) | | | | 这题多做几遍,经典的UF | -| 307 | [Range Sum Query - Mutable](https://leetcode-cn.com/problems/range-sum-query-mutable/) | | | [Java解答](code_java/src/solution/NumArrayII.java) | | | | 和#303, #304, #308定要多做几遍,掌握BIT | -| 308 | [Range Sum Query 2D - Mutable](https://leetcode-cn.com/problems/range-sum-query-2d-mutable/) | | | [Java解答](code_java/src/solution/NumMatrixII.java) | | | | | -| 309 | [Best Time to Buy and Sell Stock with Cooldown](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockWithCoolDown.java) | | | | | -| 310 | [Minimum Height Trees](https://leetcode-cn.com/problems/minimum-height-trees/) | | | [Java解答](code_java/src/solution/MinimumHeightTrees.java) | | | | 这题多做几遍 | -| 311 | [Sparse Matrix Multiplication](https://leetcode-cn.com/problems/sparse-matrix-multiplication/) | | | [Java解答](code_java/src/solution/SparseMatrixMultiplication.java) | | | | | -| 312 | [Burst Balloons](https://leetcode-cn.com/problems/burst-balloons/) | | | [Java解答](code_java/src/solution/BurstBalloons.java) | | | | | -| 313 | [Super Ugly Number](https://leetcode-cn.com/problems/super-ugly-number/) | | | [Java解答](code_java/src/solution/SuperUglyNumber.java) | | | | | -| 314 | [Binary Tree Vertical Order Traversal](https://leetcode-cn.com/problems/binary-tree-vertical-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeVerticalOrderTraversal.java) | | | | | -| 315 | [Count of Smaller Numbers After Self](https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/) | | | [Java解答](code_java/src/solution/CountOfSmallerNumbersAfterSelf.java) | | | | | -| 316 | [Remove Duplicate Letters](https://leetcode-cn.com/problems/remove-duplicate-letters/) | | | [Java解答](code_java/src/solution/RemoveDuplicateLetters.java) | | | | | -| 317 | [Shortest Distance from All Buildings](https://leetcode-cn.com/problems/shortest-distance-from-all-buildings/) | | | [Java解答](code_java/src/solution/ShortestDistanceFromAllBuildings.java) | | | | 典型的bfs,多做两遍 | -| 319 | [Bulb Switcher](https://leetcode-cn.com/problems/bulb-switcher/) | | | [Java解答](code_java/src/solution/BulbSwitcher.java) | | | | | -| 320 | [Generalized Abbreviation](https://leetcode-cn.com/problems/generalized-abbreviation/) | | | [Java解答](code_java/src/solution/GeneralizedAbbreviation.java) | | | | 这题是典型的back tracking,多做几遍 | -| 322 | [Coin Change](https://leetcode-cn.com/problems/coin-change/) | | | [Java解答](code_java/src/solution/CoinChange.java) | | | | | -| 323 | [Number of Connected Components in an Undirected Graph](https://leetcode-cn.com/problems/number-of-connected-components-in-an-undirected-graph/) | | | [Java解答](code_java/src/solution/NumberOfConnectedComponents.java) | | | | 典型的图,多看两遍 | -| 324 | [Wiggle Sort II](https://leetcode-cn.com/problems/wiggle-sort-ii/) | | | [Java解答](code_java/src/solution/WiggleSortII.java) | | | | | -| 325 | [Maximum Size Subarray Sum Equals k](https://leetcode-cn.com/problems/maximum-size-subarray-sum-equals-k/) | | | [Java解答](code_java/src/solution/MaximumSizeSubarraySumEqualsK.java) | | | | 这题思路有意思,多做几遍 | -| 328 | [Odd Even Linked List](https://leetcode-cn.com/problems/odd-even-linked-list/) | | | [Java解答](code_java/src/solution/OddEvenLinkedList.java) | | | | | -| 329 | [Longest Increasing Path in a Matrix](https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/) | | | [Java解答](code_java/src/solution/LongestIncreasingPathInAMatrix.java) | | | | 这题要多做几遍 | -| 332 | [Reconstruct Itinerary](https://leetcode-cn.com/problems/reconstruct-itinerary/) | | | [Java解答](code_java/src/solution/ReconstructItinerary.java) | | | | | -| 333 | [Largest BST Subtree](https://leetcode-cn.com/problems/largest-bst-subtree/) | | | [Java解答](code_java/src/solution/LargestBSTSubtree.java) | | | | 这道题虽然不难,但是折腾了很久,一定要多做 | -| 334 | [Increasing Triplet Subsequence](https://leetcode-cn.com/problems/increasing-triplet-subsequence/) | | | [Java解答](code_java/src/solution/IncreasingTripletSubsequence.java) | | | | | -| 335 | [Self Crossing](https://leetcode-cn.com/problems/self-crossing/) | | | [Java解答](code_java/src/solution/SelfCrossing.java) | | | | | -| 336 | [Palindrome Pairs](https://leetcode-cn.com/problems/palindrome-pairs/) | | | [Java解答](code_java/src/solution/PalindromePairs.java) | | | | | -| 337 | [House Robber III](https://leetcode-cn.com/problems/house-robber-iii/) | | | [Java解答](code_java/src/solution/HouseRobberIII.java) | | | | 建议再做两遍 | -| 339 | [Nested List Weight Sum](https://leetcode-cn.com/problems/nested-list-weight-sum/) | | | [Java解答](code_java/src/solution/NestedListWeightSum.java) | | | | | -| 340 | [Longest Substring with At Most K Distinct Characters](https://leetcode-cn.com/problems/longest-substring-with-at-most-k-distinct-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtMostKDistinctCharacters.java) | | | | 和#159类似 | -| 341 | [Flatten Nested List Iterator](https://leetcode-cn.com/problems/flatten-nested-list-iterator/) | | | [Java解答](code_java/src/solution/src/NestedIterator.java) | | | | 这题有点意思,多做两遍 | -| 344 | [Reverse String](https://leetcode-cn.com/problems/reverse-string/) | | | [Java解答](code_java/src/solution/ReverseString.java) | | | | | -| 345 | [Reverse Vowels of a String](https://leetcode-cn.com/problems/reverse-vowels-of-a-string/) | | | [Java解答](code_java/src/solution/ReverseVowelsOfaString.java) | | | | | -| 346 | [Moving Average from Data Stream](https://leetcode-cn.com/problems/moving-average-from-data-stream/) | | | [Java解答](code_java/src/solution/MovingAverage.java) | | | | | -| 347 | [Top K Frequent Elements](https://leetcode-cn.com/problems/top-k-frequent-elements/) | | | [Java解答](code_java/src/solution/TopKFrequentElements.java) | | | | | -| 349 | [Intersection of Two Arrays](https://leetcode-cn.com/problems/intersection-of-two-arrays/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoArrays.java) | | | | | -| 350 | [Intersection of Two Arrays II](https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoArraysII.java) | | | | | -| 351 | [Android Unlock Patterns](https://leetcode-cn.com/problems/android-unlock-patterns/) | | | [Java解答](code_java/src/solution/AndroidUnlockPatterns.java) | | | | 这题多做几遍 | -| 357 | [Count Numbers with Unique Digits](https://leetcode-cn.com/problems/count-numbers-with-unique-digits/) | | | [Java解答](code_java/src/solution/CountNumberWithUniqueDigits.java) | | | | | -| 358 | [Rearrange String k Distance Apart](https://leetcode-cn.com/problems/rearrange-string-k-distance-apart/) | | | [Java解答](code_java/src/solution/RearrangeStringKDistanceApart.java) | | | | | -| 359 | [Logger Rate Limiter](https://leetcode-cn.com/problems/logger-rate-limiter/) | | | [Java解答](code_java/src/solution/LoggerRateLimiter.java) | | | | 这题如果不考虑空间消耗的话其实很简单 | -| 361 | [Bomb Enemy](https://leetcode-cn.com/problems/bomb-enemy/) | | | [Java解答](code_java/src/solution/BombEnemy.java) | | | | 这题多做几遍,开始没思路 | -| 364 | [Nested List Weight Sum II](https://leetcode-cn.com/problems/nested-list-weight-sum-ii/) | | | [Java解答](code_java/src/solution/NestedListWeightSumII.java) | | | | | -| 366 | [Find Leaves of Binary Tree](https://leetcode-cn.com/problems/find-leaves-of-binary-tree/) | | | [Java解答](code_java/src/solution/FindLeavesOfBinaryTree.java) | | | | 这道题刚开始还没思路 | -| 367 | [Valid Perfect Square](https://leetcode-cn.com/problems/valid-perfect-square) | | | [Java解答](code_java/src/solution/ValidPerfectSquare.java) | | | | | -| 369 | [Plus One Linked List](https://leetcode-cn.com/problems/plus-one-linked-list/) | | | [Java解答](code_java/src/solution/PlusOneLinkedList.java) | | | | | -| 370 | [Range Addition](https://leetcode-cn.com/problems/range-addition/) | | | [Java解答](code_java/src/solution/RangeAddition.java) | | | | | -| 373 | [Find K Pairs with Smallest Sums](https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/) | | | [Java解答](code_java/src/solution/FindKPairsWithSmallestSums.java) | | | | | -| 374 | [Guess Number Higher or Lower](https://leetcode-cn.com/problems/guess-number-higher-or-lower/) | | | [Java解答](code_java/src/solution/GuessNumberHigherOrLower.java) | | | | | -| 375 | [Guess Number Higher or Lower II](https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/) | | | [Java解答](code_java/src/solution/GuessNumberHigherOrLowerII.java) | | | | | -| 377 | [Combination Sum IV](https://leetcode-cn.com/problems/combination-sum-iv/) | | | [Java解答](code_java/src/solution/src/combinationSum4.java) | | | | | -| 378 | [Kth Smallest Element in a Sorted Matrix](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/) | | | [Java解答](code_java/src/solution/KthSmallestElementInASortedMatrix.java) | | | | | -| 380 | [Insert Delete GetRandom O(1)](https://leetcode-cn.com/problems/insert-delete-getrandom-o1/) | | | [Java解答](code_java/src/solution/src/RandomizedSet.java) | | | | 这道题很有意思,多做几遍 | -| 381 | [Insert Delete GetRandom O(1) - Duplicates allowed](https://leetcode-cn.com/problems/insert-delete-getrandom-o1-duplicates-allowed/) | | | [Java解答](code_java/src/solution/src/RandomizedCollection.java) | | | | | -| 382 | [Linked List Random Node](https://leetcode-cn.com/problems/linked-list-random-node/) | | | [Java解答](code_java/src/solution/LinkedListRandomNode.java) | | | | | -| 384 | [Shuffle an Array](https://leetcode-cn.com/problems/shuffle-an-array/) | | | [Java解答](code_java/src/solution/ShuffleAnArray.java) | | | | | -| 387 | [First Unique Character in a String](https://leetcode-cn.com/problems/first-unique-character-in-a-string/) | | | [Java解答](code_java/src/solution/FirstUniqueCharacterInAString.java) | | | | | -| 388 | [Longest Absolute File Path](https://leetcode-cn.com/problems/longest-absolute-file-path/) | | | [Java解答](code_java/src/solution/LongestAbsoluteFilePath.java) | | | | 其实不难,乍看没思路,多做几遍 | -| 391 | [Perfect Rectangle](https://leetcode-cn.com/problems/perfect-rectangle/) | | | [Java解答](code_java/src/solution/PerfectRectangle.java) | | | | 这题很trick,多做两遍 | -| 392 | [Is Subsequence](https://leetcode-cn.com/problems/is-subsequence/)| 判断子序列 | esay | [贪心算法/DP算法](code_java/src/solution/IsSubsequence.java) | | | | DP算法:不建议使用,纯粹学习思想 | -| 393 | [UTF-8 Validation](https://leetcode-cn.com/problems/utf-8-validation/) | | | [Java解答](code_java/src/solution/UTFValidation.java) | | | | 错了很多次,多做几遍 | -| 394 | [Decode String](https://leetcode-cn.com/problems/decode-string/) | | | [Java解答](code_java/src/solution/DecodeString.java) | | | | 这题容易错,多做四遍 | -| 395 | [Longest Substring with At Least K Repeating Characters](https://leetcode-cn.com/problems/longest-substring-with-at-least-k-repeating-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtLeastKRepeatingCharacters.java) | | | | | -| 398 | [Random Pick Index](https://leetcode-cn.com/problems/random-pick-index/) | | | [Java解答](code_java/src/solution/RandomPickIndex.java) | | | | | -| 399 | [Evaluate Division](https://leetcode-cn.com/problems/evaluate-division/) | | | [Java解答](code_java/src/solution/EvaluateDivision.java) | | | | 这题多做几遍 | -| 401 | [Binary Watch](https://leetcode-cn.com/problems/binary-watch/) | | | [Java解答](code_java/src/solution/BinaryWatch.java) | | | | | -| 404 | [Sum of Left Leaves](https://leetcode-cn.com/problems/sum-of-left-leaves/) | | | [Java解答](code_java/src/solution/SumOfLeftLeaves.java) | | | | | -| 406 | [Queue Reconstruction by Height](https://leetcode-cn.com/problems/queue-reconstruction-by-height/) | | | [Java解答](code_java/src/solution/QueueReconstructionByHeight.java) | | | | 这题开始没思路,多做几遍 | -| 407 | [Trapping Rain Water II](https://leetcode-cn.com/problems/trapping-rain-water-ii/) | | | [Java解答](code_java/src/solution/TrappingRainWaterII.java) | | | | | -| 408 | [Valid Word Abbreviation](https://leetcode-cn.com/problems/valid-word-abbreviation/) | | | [Java解答](code_java/src/solution/src/validWordAbbreviation.java) | | | | 多做两遍 | -| 409 | [Longest Palindrome](https://leetcode-cn.com/problems/longest-palindrome/) | | | [Java解答](code_java/src/solution/LongestPalindrome.java) | | | | | -| 410 | [Split Array Largest Sum](https://leetcode-cn.com/problems/split-array-largest-sum) | | | [Java解答](code_java/src/solution/SplitArrayLargestSum.java) | | | | | -| 412 | [Fizz Buzz](https://leetcode-cn.com/problems/fizz-buzz/) | | | [Java解答](code_java/src/solution/FizzBuzz.java) | | | | | -| 413 | [Third Maximum Number](https://leetcode-cn.com/problems/third-maximum-number/) | | | [Java解答](code_java/src/solution/ThirdMaximumNumber.java) | | | | | -| 418 | [Sentence Screen Fitting](https://leetcode-cn.com/problems/sentence-screen-fitting/) | | | [Java解答](code_java/src/solution/SentenceScreenFitting.java) | | | | 这题思路巧妙,多做几遍,常规思路超时 | -| 422 | [Valid Word Square](https://leetcode-cn.com/problems/valid-word-square/) | | | [Java解答](code_java/src/solution/ValidWordSquare.java) | | | | | -| 425 | [Word Squares](https://leetcode-cn.com/problems/word-squares/) | | | [Java解答](code_java/src/solution/src/WordSquare.java) | | | | 这题很典型,多做几遍 | -| 436 | [Find Right Interval](https://leetcode-cn.com/problems/find-right-interval/) | | | [Java解答](code_java/src/solution/FindRightInterval.java) | | | | | -| 437 | [Path Sum III](https://leetcode-cn.com/problems/path-sum-iii/) | | | [Java解答](code_java/src/solution/PathSumIII.java) | | | | 这道题错了很多遍,要重点关注 | -| 438 | [Find All Anagrams in a String](https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/) | | | [Java解答](code_java/src/solution/FindAllAnagramsInString.java) | | | | 这道题非常经典,最优解法需要多做几遍,保证once bug free | -| 442 | [Find All Duplicates in an Array](https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/) | | | [Java解答](code_java/src/solution/FindAllDuplicatesInAnArray.java) | | | | | -| 445 | [Add Two Numbers II](https://leetcode-cn.com/problems/add-two-numbers-ii/discuss/) | | | [Java解答](code_java/src/solution/AddTwoNumbersII.java) | | | | | -| 448 | [Find All Numbers Disappeared in an Array](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array) | | | [Java解答](code_java/src/solution/FindAllNumbersDisappearedInAnArray.java) | | | | | -| 449 | [Serialize and Deserialize BST](https://leetcode-cn.com/problems/serialize-and-deserialize-bst) | | | [Java解答](code_java/src/solution/SerializeAndDeserializeBST.java) | | | | 和#297一样 | -| 450 | [Delete Node in a BST](https://leetcode-cn.com/problems/delete-node-in-a-bst/) | 删除二叉搜索树中的节点 | | [Java解答](code_java/src/solution/DeleteNodeInBST.java) | | | | 这题非常经典,值得多做十遍 | -| 451 | [Sort Characters By Frequency](https://leetcode-cn.com/problems/sort-characters-by-frequency/) | | | [Java解答](code_java/src/solution/SortCharactersByFrequency.java) | | | | | -| 455 | [Assign Cookies](https://leetcode-cn.com/problems/assign-cookies/) | 分发饼干 | esay | [贪心算法](code_java/src/solution/AssignCookies.java) | | | | | | -| 459 | [Repeated Substring Pattern](https://leetcode-cn.com/problems/repeated-substring-pattern/) | | | [Java解答](code_java/src/solution/RepeatedSubstringPattern.java) | | | | | -| 477 | [Total Hamming Distance](https://leetcode-cn.com/problems/total-hamming-distance/) | | | [Java解答](code_java/src/solution/TotalHammingDistance.java) | | | | | -| 480 | [Sliding Window Median](https://leetcode-cn.com/problems/sliding-window-median/) | | | [Java解答](code_java/src/solution/SlidingWindowMedian.java) | | | | | -| 482 | [License Key Formatting](https://leetcode-cn.com/problems/license-key-formatting/) | | | [Java解答](code_java/src/solution/LicenseKeyFormatting.java) | | | | | -| 483 | [Smallest Good Base](https://leetcode-cn.com/problems/smallest-good-base/) | | | [Java解答](code_java/src/solution/SmallestGoodBase.java) | | | | | -| 485 | [Max Consecutive Ones](https://leetcode-cn.com/problems/max-consecutive-ones/) | | | [Java解答](code_java/src/solution/MaxConsecutiveOnes.java) | | | | | -| 487 | [Max Consecutive Ones II](https://leetcode-cn.com/problems/max-consecutive-ones-ii/) | | | [Java解答](code_java/src/solution/MaxConsecutiveOnesII.java) | | | | | -| 501 | [Find Mode in Binary Search Tree](https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/) | | | [Java解答](code_java/src/solution/FindModeInBinarySearchTree.java) | | | | 不难,容易错,多做两次 | -| 508 | [Most Frequent Subtree Sum](https://leetcode-cn.com/problems/most-frequent-subtree-sum/submissions/) | | | [Java解答](code_java/src/solution/MostFrequentSubtreeSum.java) | | | | | -| 513 | [Find Bottom Left Tree Value](https://leetcode-cn.com/problems/find-bottom-left-tree-value/) | | | [Java解答](code_java/src/solution/FindBottomLeftTreeValue.java) | | | | | -| 515 | [Find Largest Value in Each Tree Row](https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/) | | | [Java解答](code_java/src/solution/FindLargestValueInEachTreeRow.java) | | | | | -| 524 | [Longest Word in Dictionary through Deleting](https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/) | | | [Java解答](code_java/src/solution/LongestWordInDictionaryThroughDeleting.java) | | | | | -| 526 | [Beautiful Arrangement](https://leetcode-cn.com/problems/beautiful-arrangement/) | | | [Java解答](code_java/src/solution/BeautifulArrangement.java) | | | | | -| 535 | [Encode and Decode TinyURL](https://leetcode-cn.com/problems/encode-and-decode-tinyurl/) | | | [Java解答](code_java/src/solution/EncodeAndDecodeTinyURL.java) | | | | | -| 538 | [Convert BST to Greater Tree](https://leetcode-cn.com/problems/convert-bst-to-greater-tree/) | | | [Java解答](code_java/src/solution/ConvertBSTToGreaterTree.java) | | | | | -| 541 | [Reverse String II](https://leetcode-cn.com/problems/reverse-string-ii/) | | | [Java解答](code_java/src/solution/ReverseStringII.java) | | | | | -| 543 | [Diameter of Binary Tree](https://leetcode-cn.com/problems/diameter-of-binary-tree/) | | | [Java解答](code_java/src/solution/DiameterOfBinaryTree.java) | | | | 这题易错 | -| 547 | [Friend Circles](https://leetcode-cn.com/problems/friend-circles/) | | | [Java解答](code_java/src/solution/FriendCircles.java) | | | | | -| 557 | [Reverse Words in a String III](https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/) | | | [Java解答](code_java/src/solution/ReverseWordsInAStringIII.java) | | | | | -| 560 | [Subarray Sum Equals K](https://leetcode-cn.com/problems/subarray-sum-equals-k/) | | | [Java解答](code_java/src/solution/SubarraySumEqualsK.java) | | | | | -| 563 | [Binary Tree Tilt](https://leetcode-cn.com/problems/binary-tree-tilt/) | | | [Java解答](code_java/src/solution/BinaryTreeTilt.java) | | | | | -| 564 | [Find the Closest Palindrome](https://leetcode-cn.com/problems/find-the-closest-palindrome/) | | | [Java解答](code_java/src/solution/FindTheClosestPalindrome.java) | | | | 此题暴力法即可 | -| 572 | [Subtree of Another Tree](https://leetcode-cn.com/problems/subtree-of-another-tree/) | | | [Java解答](code_java/src/solution/SubtreeOfAnotherTree.java) | | | | | -| 606 | [Construct String from Binary Tree](https://leetcode-cn.com/problems/construct-string-from-binary-tree/) | | | [Java解答](code_java/src/solution/ConstructStringFromBinaryTree.java) | | | | | -| 617 | [Merge Two Binary Trees](https://leetcode-cn.com/problems/merge-two-binary-trees/) | | | [Java解答](code_java/src/solution/MergeTwoBinaryTrees.java) | | | | 很简单 | -| 621 | [Task Scheduler](https://leetcode-cn.com/problems/task-scheduler/) | | | [Java解答](code_java/src/solution/TaskScheduler.java) | | | | | -| 637 | [Average of Levels in Binary Tree](https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/#/description) | | | [Java解答](code_java/src/solution/AverageOfLevelsInBinaryTree.java) | | | | | -| 652 | [Find Duplicate Subtrees](https://leetcode-cn.com/problems/find-duplicate-subtrees/) | | | [Java解答](code_java/src/solution/FindDuplicateSubtrees.java) | | | | 开始还没思路 | -| 653 | [Two Sum IV - Input is a BST](https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst/) | | | [Java解答](code_java/src/solution/TwoSumIV.java) | | | | | -| 654 | [Maximum Binary Tree](https://leetcode-cn.com/problems/maximum-binary-tree/description/) | | | [Java解答](code_java/src/solution/MaximumBinaryTree.java) | | | | | -| 669 | [Trim a Binary Search Tree](https://leetcode-cn.com/problems/trim-a-binary-search-tree/) | | | [Java解答](code_java/src/solution/TrimABinarySearchTree.java) | | | | | -| 681 | [Next Closest Time](https://leetcode-cn.com/problems/next-closest-time/) | | | [Java解答](code_java/src/solution/NextClosestTime.java) | | | | 这题多做几遍 | -| 683 | [K Empty Slots](https://leetcode-cn.com/problems/k-empty-slots/) | | | [Java解答](code_java/src/solution/KEmptySlots.java) | | | | | -| 684 | [Redundant Connection](https://leetcode-cn.com/problems/redundant-connection/) | | | [Java解答](code_java/src/solution/RedundantConnection.java) | | | | | -| 687 | [Longest Univalue Path](https://leetcode-cn.com/problems/longest-univalue-path/) | | | [Java解答](code_java/src/solution/LongestUnivaluePath.java) | | | | | -| 695 | [Max Area of Island](https://leetcode-cn.com/problems/max-area-of-island/) | | | [Java解答](code_java/src/solution/MaxAreaOfIsland.java) | | | | | -| 703 | [Kth Largest Element in a Stream](https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/) | 数据流中第K大元素 | medium | [优先级队列解法](code_java/src/solution/KthLargestElementInAStream.java) / [小根堆解法](](code_java/src/solution/KthLargestElementInAStream2.java)) | | | | 优先级队列解法/小根堆解法 | -| 771 | [Jewels and Stones](https://leetcode-cn.com/problems/jewels-and-stones/) | | | [Java解答](code_java/src/solution/JewelsAndStones.java) | | | | | -| 814 | [Binary Tree Pruning](https://leetcode-cn.com/problems/binary-tree-pruning/) | | | [Java解答](code_java/src/solution/JewelsAndStones.java) | | | | | -| 819 | [Most Common Word](https://leetcode-cn.com/problems/most-common-word/) | | | [Java解答](code_java/src/solution/MostCommonWord.java) | | | | | -| 843 | [Guess the Word](https://leetcode-cn.com/problems/guess-the-word/) | | | [Java解答](code_java/src/solution/GuessTheWord.java) | | | | | -| 844 | [Backspace String Compare](https://leetcode-cn.com/problems/backspace-string-compare/) | | | [Java解答](code_java/src/solution/BackspaceStringCompare.java) | | | | | -| 849 | [Maximize Distance to Closest Person](https://leetcode-cn.com/problems/maximize-distance-to-closest-person/) | | | [Java解答](code_java/src/solution/MaximizeDistanceToClosestPerson.java) | | | | | -| 857 | [Minimum Cost to Hire K Workers](https://leetcode-cn.com/problems/minimum-cost-to-hire-k-workers/) | | | [Java解答](code_java/src/solution/MinimumCostToHireKWorkers.java) | | | | | -| 872 | [Leaf-Similar Trees](https://leetcode-cn.com/problems/leaf-similar-trees/) | | | [Java解答](code_java/src/solution/LeafSimilarTrees.java) | | | | | -| 889 | [Construct Binary Tree from Preorder and Postorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java) | | | | | -| 904 | [Fruit Into Baskets](https://leetcode-cn.com/problems/fruit-into-baskets/) | | | [Java解答](code_java/src/solution/FruitIntoBaskets.java) | | | | | -| 929 | [Unique Email Addresses](https://leetcode-cn.com/problems/unique-email-addresses/) | | | [Java解答](code_java/src/solution/UniqueEmailAddresses.java) | | | | | +Latex排版整理的电子书 +- [Backtracking](./ebook/backtracking/leetcode-backtracking.pdf) +- [Graph](./ebook/graph/leetcode-graph.pdf) +- [Tree](./ebook/tree/leetcode-tree.pdf) +- [DP](./ebook/dp/leetcode-dp.pdf) +- [Array](./ebook/array/leetcode-array.pdf) +- [List](./ebook/list/leetcode-list.pdf) -## 二、电子书(pdf) - Latex排版整理的电子书 - - [Backtracking](./ebook/backtracking/leetcode-backtracking.pdf) - - [Graph](./ebook/graph/leetcode-graph.pdf) - - [Tree](./ebook/tree/leetcode-tree.pdf) - - [DP](./ebook/dp/leetcode-dp.pdf) - - [Array](./ebook/array/leetcode-array.pdf) - - [List](./ebook/list/leetcode-list.pdf) +## 总结 -

+- [刷题要点总结](./doc/Attention.md) +- [Facebook面试总结](./doc/Facebook.md) +- [Bitset技巧](./doc/BitSet.md) +- [Map新接口](./doc/Map.md) +- [其它题目](extras.md) -## 三、文档列表 - - [刷题要点总结](./doc/Attention.md) - - [Facebook面试总结](./doc/Facebook.md) - - [Bitset技巧](./doc/BitSet.md) - - [Map新接口](./doc/Map.md) - - [其它题目](extras.md) +# 数据结构与算法 -

+* [五大常用算法](algorithms/五大常用算法.md) +* [OJ练习](algorithms/oj.md) +* [常见笔试题](algorithms/常见笔试题.md) ---------------------------------------- -**项目规范** +**项目规范**: 本文使用 [`Markdown`](https://www.markdownguide.org/basic-syntax) 编写, 排版符合[`中文技术文档写作规范`](https://github.com/hbulpf/document-style-guide)。Find Me On [**Github**](https://github.com/hbulpf/LeetcodeEveryday) , [**Gitee**](https://gitee.com/sifangcloud/LeetcodeEveryday) -本文使用 [`Markdown`](https://www.markdownguide.org/basic-syntax) 编写, 排版符合[`中文技术文档写作规范`](https://github.com/hbulpf/document-style-guide)。Find Me On [**Github**](https://github.com/hbulpf/LeetcodeEveryday) , [**Gitee**](https://gitee.com/sifangcloud/LeetcodeEveryday) +**友情贡献**: @[**RunAtWorld**](http://www.github.com/RunAtWorld)   -**友情贡献** - -@[**RunAtWorld**](http://www.github.com/RunAtWorld)   - - -#### 关注公众号 『四方云和』 获取更多优质文章 ~ +**关注公众号 『四方云和』 获取更多优质文章 ~** ![sfyh_qrcode](sfyh_qrcode.jpg) diff --git a/_coverpage.md b/_coverpage.md new file mode 100644 index 0000000..12b5a60 --- /dev/null +++ b/_coverpage.md @@ -0,0 +1,14 @@ +![logo](_media/leetcode-s.png) + +# 力扣每日一题 1.0 + +[仓库](https://gitee.com/sifangcloud/LeetcodeEveryday) +[开始](#每日力扣) + + + + + + + +![color](#f0f0f0) \ No newline at end of file diff --git a/_media/favicon.ico b/_media/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d47eb743623a560ac63eaa7554a6ce72869edf1c GIT binary patch literal 4286 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 OQj}Gbsg^Q-_5T3yHgDGe literal 0 HcmV?d00001 diff --git a/_media/leetcode.png b/_media/leetcode.png new file mode 100644 index 0000000000000000000000000000000000000000..37019ac3b5ebba8c5f21b761c3db66bf6f89463e GIT binary patch literal 46105 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 S3y0~z4@~Q_W`VlxgZ}_g!S_7? literal 0 HcmV?d00001 diff --git a/_media/leetcode.svg b/_media/leetcode.svg new file mode 100644 index 0000000..609d6cc --- /dev/null +++ b/_media/leetcode.svg @@ -0,0 +1,16 @@ + + + 力扣 + + + + + + + + + + + + + \ No newline at end of file diff --git a/_media/leetcodeEveryday.jpg b/_media/leetcodeEveryday.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b7c0dc19b032d4b95d76a2c757d8cffc41ed30e GIT binary patch literal 10751 zcmdsccT|(xwr?zmqM&p|KqUwgnv{eNTO{-%gb+HLCXi61ci3)4DFOxvNS78!AVEri zP!*+14?TeN4$_;zW50LyIrqK$#<=JHd)GJSSZk~~*PL_BZ>-<=t?xSu5ujgF4~I{h66hC5(hZeH+zyPbUo zFkZb7dLi`E1s=df#tWAiFPwb?+yz_!T)cFi?Y|n$l}ndtFaD*}y#=^%>C%OZSLm-^ zy?o`;Uq%-$Ub;-fc!lW!Ewk7YeRmdCHgN-M&zI=_C?TnAQ`%?e zmEFjv0-Kut$@>(#dG3$nJkEKn{}}At+r5LVI)_Lw>w1>87K>>}eOMt~CFJ3#U0;j@2j z<^Mb4;$;op(B%(M2b}>X(zFn;W)$E$|NXyg>5ui+k_vjH)|4tNb0T)G<3s=;u0Q_L z{5x&lfUaRbpBbA6uPdu@VyDx%#(S6{ev2u%;M96FcAjs8#~-VDQIB-*yPW>7ueIU* zzzh86^IYfZ2^A;wo0IvO8H+V)+qau+PLdDqf2xf7hr1Od=^e*AY5_#a?%?S%cQ zo|V5RDBHQn899rJ7f8$Y@b69oK7);}JhFf?|E^(rQc>n1!YWqNh3%$211Pr5B1YeK zv4;9r1dk{X#98tVB4Z9w#~gHmjZ#E=I{+&A$ED|gj=?=MBXh#~YBD(^25ZAT1s)OF zmbiFlccOnc9)ePoqcy9SLB4Y6;`q={1650R^XgfXOCWe&?Lypmc|p3gIq0wy5o6C3 zVDQk(IC1Ccr4C-_h(w}$$23GhfS;KD02|TQS{qIgB0nOOvZMy6-ZGAd!kai0D~NGu z_7n}NUrG|JmeJ%Vv|PIH2i4x4W*x$H^O}R2;K@$|rulyEp|URPI+?LZwYQn*^S-ll z9zCQB$JcuqFtNXIUcG4U$kRh{d>W48$gX3ZyW)mu#V_UMJ3B{n;D7_{ zkMMQZ`&5iqwID^NbP1@wWa&0|R3hHB(V-dtR`U6io;?1FB#A=zxry?`c*xG)yWmE? z0R*|HpSVYol37}RDs1_&e=vD4WyCqATGiDnDmuZcwg6vmC*`M7Cp(6Wd6PWGG+>X% z)!0XLEK$R*+>U#M#&vWLLSxOhW+teIiV<96k7nwxiiFtL)9X1D1&Ghs{Rye@s0)v2 znT=YMu-K6YOQxs(p6pxc^r>!4C%_Nmo4tDqm9G66?CzDY-K#J%{d13BSyXgkO{NWR zT(aThg2L}}_u7zu8b{vcg$I7vE9AAo%S5$DzAbfl4dQ#Y?6+*Af;231YE4^C#RT65 zF1idLWDfAs7J`SHt?8&%Cxn-S0clGcCrf?)gPiiYgcyMf!;N6dz1r7R>vc}Qnl`9g zJjymPVMflVbPdQ=Bynkl?byZ0Bxo$DFU<@m?kKL(tv({T8e=mjy&rfh%S!PB;t(oe4cS`LE_)xBedWG}>CSHBda7a1Y4K^!kbQkd zs2GrHPIX`%CwR+MkaFFliEf%QM^ z?|L0*9;2O|ogJ_2UgG{_jj>%kijo-n@lx4)0N{3}2upkIo3i6Mh2KU1-2VWm>q>v0 z+gD+36NF43J(Svin$fmD1H{K3u1hA(ju->(@;Sw2&>B+IZa5{W&!S+>`A@2K*xvPt zm>N~aG=lNCNd^C*v3U>&JUS#VN6iDcm0?FU_a@QP2UlEOm%5x4@o*G{A&;7iY&b=w zg9WF|>nw} zN{rFbDh*(LX5ZzcY3FBS&R*c3l!}8PAw9JmzdY@k51Blp1j5&_)3nSJM)#3SvlpLOov=K(4g?FIE{;!ex7@RVZ0J(#dO;Al z%0@~J8qpjTD;D+2VG{!vS&CM`?hz@8qXZd!EiG9?9T3oT5FFqSN4VenlHeMXokyIT z?jO~Uy*IUGB$6&QYZ{~|Abs4)z@(T6JG^oRFo+N0{Pux>frXe-er-MZiQXyAY?V4n zNcpksrDmjDSf^jCvfM68x+ZM3RA^~MoxXWkS<3v{#K^*e1vSxf-PapG`-bm8?WOg= zV_n>qT|~_<$HGkHtv4~;wUXdj!`8__;a3V=F3`(V7a?M#wyhKXcPSU6l+;dxFY3{w zs)ZQyDivijP8PFF+NTNjR!{MrVAt#2!uSS;9L;=usTO<^b`Hi5TMkh{Zm$P4^G#5yzR0Q zP&r|R=%Zwu!y9j;yD&bU_mW=%Aw0kpbNgxTbIk8J$QW zw^B^_+QkqDrm0C>s8wEY;a$F1g4(tiS3@2v>y4C9M#oW0(UeSqp?8@|LJ=MGPZ~n% z-<0A7A9U=DJQ+wjEUqLwB?IFk)7uA2*ssp%v={a_Y=PI3?ySMJQ!vZlJt~vidJ3S= zh(ovM%<;rsNO!iOGAo|c+J-4jIN1Nb0#WU&o*a?X&vnN8a?a=T^=0!M(_LoEpuRwx zT-t7es3~gu2}DnXC{Jc(EI3sF8{Vk#crzXuL5QUKI`{Gz72Uiuz`@&YIKK*UYF{{H zzPzsjyxLT};a1-J1XU?|YbkzCP)g7^^;7zteF61I$%ul8j;`9}yfK6+0bKnuZfLwO z?s+ps9g{qcX*^b6?;Wn6aKl?gWW9BPKTFJ*wA9AMU+Ze=jyus9XZP|R99N)6Zc+`b zA^U4$zSaTm8v?SCgDIf~8d}_e+~$gsmUfnI;@Md)pL`O(B6wG8Aubip&V{Tpy`G1x zC+;u)+zxuV11gT;b1wQ|2sK~u@lBgvv+sBbrah7j^hv)SaiksrxO?RV0Koo!Ff<6; zzQxhKk+6Ho4&e6>OceTc@7FOu+6sA38h)}ovTwIn-rG0i=RD*po5$5u7ujTlh0FVG zGglT8KQt(^BZM}L_4QMQJ#3}BOKzZ8R=N-`DjM|AIcD!l(xk8kFP+W+ua%lY3ql+3 zO*c@?H$!_xORT=0pSI)oZ20=m)iBDo8jnnnQ~KPBxmn_Np2b7a6)vXS)sa))=3o98 zP2G=cpIAFE8maUeSS-eC5gO3``b= zsB*$}wnDawwfOH`3V?Z}mKz#S1%cRnWVHtSwdu{`@K1()PIA$j18OD;mnO(TE;g(9 zU29km_B;CuTUuBf@{MU5^@9m#s>}+!c|Dgm!#wZa)R#@Ao@q&_lBSl5Ye7kw7E}X9 zquIKzz-YWPnJ|I>Fn^GET&^>~0nu$~EZPJPr!(jr>|hz(y^8U5R5oJW;sW2i>cnnD z&ueTZWtUA#5aPG&AYueI2l@5-hl?~-!Ad@?_nzG&46)<)vX{QJ)cEVf?Q|e@L4xR)##5=!(bQX z;x+^{&A;{f+H|qL5k!-u{v$dRaS8EglA~BQ*;&fhL`1s)<&zwpM3S<{dxBgugtDZ_ zO51Aq_L+c$0HE7zY@xS;#1PtAWk)82uOh8_FJqHsy_>CpPeqR=gflN@*9;4mWR$JI zJMu<>22iZr$#c3;C@87v<4jgedtBk|$T%&j&0+|1|M$1IyKD1oyM#R!I?w|vZ(5w~ zqMAu1`%i71DUNY^v@1L#r;uV0zg5-zPxWHgj$ZvW>O64{DrCfE0)LKF-kDjdr7;%_ zNTO;OQJl1P($TQyUP`gx@PL}AC8K`OqUX~}df9yTN5?6$m9K#PQT-rVXfMRqj6lSt z*N9Wx8n>lV`#TnS1P~gdmT?vSh4!v{Im3mqZOnbh$=y157dy;s##G(>gIA1sE3W4Q zH3K8liXo$_iNd0RL17@40MEeZf_vF6Mm2efv@Wo*iD(4B?82Pw$h=U>`b*bQ{l5Ow z5^KZs8l`V(2iu^u`A4bDFDNUPah>_QuPX}TQV3BB;vUu^Fxj&93}DSBS1@(S?8Qkp zsMTOPI-M83WHXf#vaJ!Z|b&6-U-9lkF zd}DAxfsr}Wo*h*GZ96r9gFp(fe8fqPyKFp>cD$c|dJyCPq7YX@pbSSuKebJHXvQav@?3jxr)o7L!Ya!6V zw9O>TS(H8;{vtfAZ^o-XAOjQOVIqKa2-rccN#XQaS!G+l5lV)YOq`vEWXn%d=XDar z0{oeW^CGv35?JhMn~sB99kl%_a;vl|GCrEQ#AKwO97&0;Sj;Imxx3uE=6l=DrvqeO zq`l?hYIxw^87)zmm6ubnR@*0=ZIY->!sEhJwE0yZ8xom?jk55BC}F!e!Q>1pMy-2H zZMwsw)x-we^RekH+MDjSQ;^|3xWPCOS;#1jW6!ysu!lpS(4A^L>jslgilz#(OaKp;jq%>m4~bz;k|#V1DJIPH z(4`hou_awV&RjuUb~ZH8pB3Ki3&MdJR)l zic+eFQRv@a`0)?e|8I1^2cbw+T{nOGCyoAZto_^6d`IC8U5XP*@V*_vV^uW{%qoux z6P&f;^pj~##HW`|K_9box!GiARaBsYfn$aXIi|xYM5u01zPRm2+!Hl3UdM$#-GMFF z18)8J>r>6-pl%l|yd!K|?3FEPHx!;ZQ1e613bAW)Vpe~7d{(~oz%JviJv{0$g z_w(T}>pyH-{bTO<-@XuM>Xd~P`qaiDGK&DiMr~zvz~z2})qh;;RLIM1c*AAs^V6=vU6BKZzXx3VyFps(?&IBUDfcJVxVl%D z8w@sHTIc@QGg$&AA}1bhAZ2W)Jngcf&t|s-{xO?4BLA`zmjkM1j`NV^AJs~rj-Rz3% zgvwX5#%YxT)Y$GebbYp>^aGQL7mdHaH8GPF2a zb4Qm|{%oOgjbSqfML+w}_?!W5uCV{`o^d~wlvilDW=<1ZC0MDWRAlwXI>TDO-nmZR zRjK*y+sY}yKSpcKo|nMI=>}{R)<#`BN+XfmY_<=jacVjD-Q5HJ-X??PZ}h3bH!48~ zxGe2zXp4a-Zot+B9M==R!0WZMx#6)+O~XHN(vtU)L#>0Chi3zQFjh5D4oy0#7R{-M zQUY(ja{{CKyJ%kB6Br1OTWq{1mF`&|RHvRQP1@IASP?HhWm>@&q018zekp@ii^Av3 zJsqyM2cF!go)&8ySZqGr;9!W!x?M5U;^qNb`<0&S;qBm_oyIM9cinxVEp%4z+Fnq0 z25Fxs!6Ux!dF9fTh1~$X#*OfQI)H?##T@G@!OsBiPq^jQq)!m1YG$h&qK7hrR);xe zJ7Jzjb^KGl-$LHIh9Yu*i5$eUMPJv_c(x??(B9VlO{Kj)W3XK7TA)KVX=DbM{qj>= zb54lvi-LmMmRpG|YjD-OleNqGZSSP1;iz?Nal^BRLaX@^sp_lE16}K+2h-8E(Hz84 z!v)1BJRNj0Fgom0*XkT?zx(Cymbzep??r!c2leaE1-CxCeg>e;lr;3W^0;$?I}F7O zTL;2y&8(KoPb#i0jxp71_^`i2;%({b1bX1pQx~^|)PEW9`B&wgPMd`(eOOZZ9!hFr zOWJ?#9oSl<#Fi>XS>URRvmdt;rdaWGkIyY&;|E0d88$=}Br|ZKRm49x{%kp5M0_*b zWE0tNQ<_pRI0Lx%IP!Tz>oc6hDtTSbZ?ED7k?vidpG@l=bGL*}6U60oBbW7mm`Xl& zNgJDX5S_ZT6n{E%b?fQtn^@7~cfii?ZXH8g62*I^fQvS_{&`9?oicO1LiDee!n99- zIa}dR(W`k|c9?*bc?Y*tvh!tBo^gPD&t^bl1H1>&5 zOi61gdEHXRw+@a#%W6I^#ib-!=slG0Q~o6e$?+h$zg|#21LPGmPY_}XaCXjtc1AXm zhT1$l+xVTdW0Mlzp;E9v=VEX0)yMwxCe3x-=ykQZna1xT)l^QhS(sZ&-qME1D4o+n zC8a*wA8RSb$Y#R%%XPjT_W+I+TKR2HF-7|JyGcQP#!lU|;@aMFqhX=FB`1MmF)}xP zU91mm9*K({*7o#bv_e}#b-`ctLexkw+2?6ig>>0^ik-Gy8}#T!~w@9M6DnJszefXUA8*gn6PW0963l@3u})IkLZp` zOBv50pJXDIEq;m&;{DKsHvVF9QcUo695izG%a}efrH5b{(t=?=5ji;0v}tbEKCll1 zCV~w;IVn)+Q>?MbfY?Zdh$JRD<8ot2)^aJol$5C06GDZhNYcoP9ciGYS-~RaAvG;L zE&Z~zRCnaFYAvlC-ZrAF0m0Kg|CQh9&>)$hLZwjCpX;(%MA69l!LOZ&NH~HxQlwYp zKpDoY?VTB7k<=Ll{um}ld?CTGq_CEOxX8;-uTM3xx zpp<(uQtv5Nre{lT(WQ7-6CS7itnr;id5EwavD!VKygu@NdS>9_8Q{x8Co4CC8U|S8 z{0H1P_~g%>7F33<>FBbY+UA}C#7>7;Os&R~2R3A}`2Njhj@us-^Go7nAiZOc$W&a6 z)g2mk+VT?B=ry8y_oqyzdIo#2ZGq1AWISJcOKFE+cBG?7`e%a^eCA6#Ukn{o+Gg{HO_d zBIolF`_H9xmrc&Xe*jAx!!5-R4eO6%r8XNxty;e~jJ96X(i>Y^_k9iE5GJbuOCX#UsLQ0Dx$ zlZYVJ49Ab>75aOc*4;>tptX|v^Ik;%?CIApCi9U1(UT?%L*$%_u9y_=I=vnjFtzNR z=WIpKA`;&&jlT=O&ZL@yeq4jrGBHxV<%*U zF4*k}!zrCx!<(EW5cNR3xT;f>7UP-COZrsD9Ph+gr6~0(1&h6lxX7;z)(!|#crmq+ z*&in<2b3^N(ynLiO?Teu~%$6`r0T9<0RZf6VI7PRhyPn$ie4~p1` z#PsN86&4kJTFQqB%gtiq*LZRxlcCz4*?wJbpZiQ?<`^#I+nl2{ofTcTPNApF&)q$C zIsV@Edt2X66J**G@}mrM_a?fXBBT5D7u`qdgYjG4d$_bOQr#p=lhXl-Ozk@OmRR1v z9{`#2pPiM?WIZQ>W{OLCIaFIgJSzSfXFJHL+2SV5JrJ6aYGw&S@kHP>(`?ZVrSLhc zS}%T)4pv06xJR9^-UvrrbZx=V+L6?83_1|MD#&H8>fY2ir}tz#ILq*XGm79i@+~dT zEFrmjyis^m^U&nFlL4=11>6=so<8}_SZK&>e0`FaGT?Phjw>vzM=m~9kkn1_Gz$zd z8}IqRFI4H|yw7K-Qdriyw=Gkvip%68vJ4)C2~NC)q+Nzu5b(9 zL+q%=aD_eg4fJ2i-PJm2nkG=B1n_I8P)Y=lz z&px6#1H9@^0m&DW=@kAVLPAr4FvLG84nqn=SdP^+vR+a&P2g9H#;NTI@lknZjYQ#u z??}`kd|SSA@B4m}+7GE7>4INZj&Ab%`l_Qma^yYo-8MTHBwknaCN9gQ+;rRe7J7Exg1M8;mV zXN%}V^Eo&pqj*jDbW;{^jH14AQA%_!*53*g#L}*XS1Bh7GHr_?g{5HmIHtT^lq6^t zi3eq87e^^>E#>mgND`QP;UlQZ;t7N6VW8+JsL<7#*;J_F_VF%*XCOHCrZ7{W( zNQ=5{L`~;1Xb=~BsM0u-bD1G8vh(R>k+K0-v{b^n)<#x)gjU@Iu?_Sl> zJhs`GVWAuI+V-3d*yGat3IaHCo+atqxnwvuSG* zf$U-6MS6F7LHL65m`v@dlHbM?CDPXy^*C@CZ%dBKXm+wj_O9nfE&-*%6VYg4V~CW- zjgr-YDwZVkN5sb1gKENLAD9*l1>Rbi3baXBX^4b29}6yZW}z;m-zY5;gYQ z89@1%-M-q1{TYFyO@FwfgZ&Hubm&2;RsI?^3|rCOml1s@a7o!>K}*fO;|%oqpX6gs8NSuC!twASsN+K9s2 zur;77$Q#v0BqK>(2@lZ5MnJ?7-E9}j`Ny~HTz4$9AO@EB^QH0Vn(^X{MQ&Jhl&|it zl~ZPzUU*wTyjJRDEg7x2j47|2TbC*>b4ncLPBfl1t*x}3?Re)9;#29tI?TP_l6<$6 zJS)yO`<ArKaHLT0?TQ-ND4}N2>$*!|a^)C zgT(sy(&0mh>3D*<2&-p9L9rS^Xg!)WQF6pm4}Hh%%CU7!4#!^QklhGe*=Vf;s?N@^ zx~62EKlRSn!ReS@>4tqbbLg?&dgMuG=pDTUIhy?WNWF6qQBEJn9igwRQ)rcX4?l$}j35O)nd=@z{){ zg$Gk!Ne~*YR?EJ)@opQZPXS9w)LgmB`LCX_tH8cbOpY= z;3X$NuBKnM9C^LmMFst-tF}bp1$ome+5bbO?chgpOL1G$VtozY?4d+5(hZBLM^Il^ zWcH_5qLx9RJ2XOCZ^>{-!`fipQNG?Ne!(RFV}20Pyl{_^vv3B+w4^1Qo!u*Oy=Q^H z7PFUYp~*PvgbG&w#k|3pDft^5B`A`fx2h#+f#LDvS`UCzPn{Dw(u0Ffi%Uhs*LAlb z>#F$?GIja7uF)lxbsudUvbqj3YTlQgKpUbbncF4Y9fLH5J32E)V!fkua${_v`VZ@~ zWpL&t_23RTL$V8n;$7ign4+puQn_0MpS21Q726;SiiftAZOTmt=mrs`bI`J`9kqsrs^f1ofSF}Ik@$i)Uz~?}%!DecvU76ZfRZQ4rc@AE z1~HuBk*T|&$l`fuIN3tBGDtH@dMds=?&Ou31;*pxj7mJkT#DZdgg`&=QmJD6?|15QDhAsO^DcWR|W<`MyB=DbT_l&w0yK*)w61 zu$2Lpz{rwv5nm!}p#l#v11ist1n!J&eKcqc8 zJ=zH5z*nhk&iMbh=$LoAfEXU5(^hfx37{bV&mvr{GPE>jl8ro8*h}H?5i8%>ml`g}A1!;ACp&=tH6_Vs z%iLj`7@X_K<286#Rb0YTipsIeMyB?8nA`snKH#n?tUJjQ{o$~OzQ6Dl_EWTEBiP|v z8+^dGyF7Q-`Lus}Idyc4iv1;|w}<}S4;ezU$F-Zu%o>w8qu*lGEwtrfzuu*I;c>+4 z+25|kX*hWS-Q1i3H}(FxkN=Sae0XX%CrX}If%cQ%jLFpfzobXuRSQS=HQIBz@^Y11 zdeBe(FOj_Y`(|@l + +* 算法 + +* LeetCode + * [LeetCode全部题目](LeetCode全部题目.md) + * [LeetCode题目分类](LeetCode题目分类.md) + * [其它题目](extras.md) \ No newline at end of file diff --git a/_sidebar.md b/_sidebar.md new file mode 100644 index 0000000..8e0807b --- /dev/null +++ b/_sidebar.md @@ -0,0 +1,11 @@ +* 算法 + * [五大常用算法](algorithms/五大常用算法.md) + * [OJ练习](algorithms/oj.md) + * [常见笔试题](algorithms/常见笔试题.md) + + +* LeetCode + * [每日打卡](每日打卡.md) + * [LeetCode全部题目](LeetCode全部题目.md) + * [LeetCode题目分类](LeetCode题目分类.md) + * [其它题目](extras.md) \ No newline at end of file diff --git a/algorithms/README.md b/algorithms/README.md new file mode 100644 index 0000000..38b3661 --- /dev/null +++ b/algorithms/README.md @@ -0,0 +1,146 @@ +# 数据结构与算法 +## 基本数据结构与算法 + +1. 线性表 + 1. 顺序存储 + 1. 顺序表 + 2. 链式存储 + 1. 指针实现 + 1. 单链表 + 2. 双链表 + 3. 循环链表 + 2. 数组实现 + 1. 静态链表 +2. 树 + 1. 二叉树 + 1. 线索二叉树 + 2. 排序二叉树 + 1. 二叉排序树 + 2. [平衡二叉树](tree/bitree/link/balanced/BalancedTree.java): 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 + 3. BTree + 1. 基本BTree + 2. B+Tree + 4. 哈夫曼树 + 5. 红黑树 + 2. 多叉树 +3. 图 + 1. 图的存储 + 1. 邻接矩阵,邻接表 + 2. 邻接多重表,狮子链表 + 2. 图的遍历 + 1. BFS + 2. DFS + 3. 应用 + 1. 最小生成树 + 1. Prim算法 + 2. Kruskal算法 + 2. 最短路径 + 1. Dijkstra算法 + 2. Floy算法 + 3. 拓扑排序 AOV网 + 4. 关键路径 AOE网 +4. 排序 + 1. comparison sort + 1. 插入排序 insertion + 1. 插入排序 insertion sort + 2. 希尔排序 shell sort + 2. 交换排序 swap + 1. 冒泡排序 bubble sort + 2. 快速排序 quick sort + 3. 选择排序 + 1. 选择排序 selection sort + 2. 堆排序 heap sort + 4. 归并排序 merge sort + 2. integer sort + 1. 计数排序 counting sort + 2. 桶排序 bucket sort + 3. 基数排序 radix sort +5. 堆/栈/队列 + 1. [栈](../../src/main/dev/algorithm/stack) + 1. 顺序栈 + 2. 链栈 + 3. 共享栈 + 2. [队列](queue) + 1. 链式队列 + 2. 循环队列 + 3. 双端队列 + 3. [堆](../../src/main/dev/algorithm/heap) + 1. 大根堆 + 2. 小根堆 +6. 查找 + 1. 顺序查找 + 2. 折半查找 + 3. 分块查找 + 4. Hash查找 + +### 线性表 + +#### 顺序表 + +1. 使用连续存储的单元 +2. 线性表数组大小和空间在动态分配下可以调整,但也是申请一块更大的空间替换原始空间 +3. 随机访问:查找某个下标的元素, 复杂度为O(1);按元素值查找某个元素,复杂度为O(N) ; 插入和增加需要大量元素,复杂度为O(N) + +#### [链表](../../src/main/dev/algorithm/linkedlist) + + +### [树](../../src/main/dev/algorithm/tree) + +1. 二叉树 + * [平衡二叉树](tree/bitree/link/balanced/BalancedTree.java): 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 +2. BTree + * 基本BTree + * B+Tree +3. 多叉树 +4. 红黑树 + +### [图](../../src/main/dev/algorithm/graph) + + +### [排序算法](../../src/main/dev/algorithm/sort) + + +### 复杂度概览 + +最基础的是选择和插入,基于选择和插入分别改进出了冒泡和希尔。基于二分思想又提出了归并、快排和堆排序。最后基于数据的分布特征,提出了基数排序。这些排序算法的主要指标总结如下。 + +| 算法 | 最好时间 | 最坏时间 | 平均时间 | 额外空间 | 稳定性 | +| :--: | :------: | :------: | :-----------: | :------: | :----: | +| 选择 | N^2 | N^2 | N^2 | 1 | 不稳定 | +| 冒泡 | N | N^2 | N^2 | 1 | 稳定 | +| 插入 | N | N^2 | N^2 | 1 | 稳定 | +| 希尔 | N | N^2 | N^1.3(不确定) | 1 | 不稳定 | +| 归并 | N*logN | N*logN | N*logN | N | 稳定 | +| 快排 | N*logN | N^2 | N*logN | logN至N | 不稳定 | +| 堆 | N*logN | N*logN | N*logN | 1 | 不稳定 | +| 基数 | N*k | N*k | N*k | N+k | 稳定 | + + +### 堆/栈/队列 + +1. [栈](../../src/main/dev/algorithm/stack) +1. [队列](queue) +1. [堆](../../src/main/dev/algorithm/heap) + 1. 大根堆 + 2. 小根堆 + + +## [五大常用算法](五大常用算法.md) + +1. [动态规划](../../src/main/dev/algorithm/dp) +1. [贪心](../../src/main/dev/algorithm/greedy) +1. [分治]() +1. [回溯]() +1. [分支界定]() + +# 练习总结 + +1. [笔试练习题](exams.md) +2. [OJ 练习](oj.md) +3. [google code jam](https://codingcompetitions.withgoogle.com/codejam) + + +## 参考 + +1. [常见十大(内部)排序算法](https://blog.csdn.net/real_lisa/article/details/82685407) +1. [常见排序算法的总结 - 复杂度、实现和稳定性](https://www.jianshu.com/p/916b15eae350) \ No newline at end of file diff --git a/algorithms/oj.md b/algorithms/oj.md new file mode 100644 index 0000000..73451b1 --- /dev/null +++ b/algorithms/oj.md @@ -0,0 +1,3 @@ +# OJ练习 + +1. 孪生素数问题 \ No newline at end of file diff --git "a/algorithms/\344\272\224\345\244\247\345\270\270\347\224\250\347\256\227\346\263\225.md" "b/algorithms/\344\272\224\345\244\247\345\270\270\347\224\250\347\256\227\346\263\225.md" new file mode 100644 index 0000000..ec167e8 --- /dev/null +++ "b/algorithms/\344\272\224\345\244\247\345\270\270\347\224\250\347\256\227\346\263\225.md" @@ -0,0 +1,409 @@ +# 五大常用算法 + +> 分治、动态规划、贪心、回溯和分支界定 + +## 算法一:分治算法 + +### 一、基本概念 + +在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是 把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并 。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… + +任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素的排序问题,当n=1时,不需任何计算。n=2时,只要作一次比较即可排好序。n=3时只要作3次比较即可,…。而当n较大时,问题就不那么容易处理了。要想直接解决一个规模较大的问题,有时是相当困难的。 + +### 二、基本思想及策略 + +分治法的设计思想是: 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之 。 + +分治策略是: 对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解 。这种算法设计策略叫做分治法。 + +如果原问题可分割成k个子问题,1 < k ≤ n, 且这些子问题都可解并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。 这自然导致递归过程的产生。分治与递归像一对孪生兄弟,经常同时应用在算法设计之 中,并由此产生许多高效算法。 + +### 三、分治法适用情况 + +分治法所能解决的问题一般具有以下几个特征: +1. 该问题的规模 缩小 到一定的程度 就可以容易地解决 +2. 该问题可以分解为若干个规模较小的相同问题,即该问题 具有最优子结构性质 。 +3. 利用该问题分解出的子问题的解 可以合并 为该问题的解; +4. 该问题所分解出的各个子问题是相互独立的,即 子问题之间不包含公共的子子问题 。 + +第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加; +第二条特征是应用分治法的前提 它也是大多数问题可以满足的,此特征反映了递归思想的应用; +第三条特征是关键,能否利用分治法完全取决于问题是否具有第三条特征 ,如果 具备了第一条和第二条特征,而不具备第三条特征,则可以考虑用贪心法或动态规划法 。 +第四条特征涉及到分治法的效率 ,如果各子问题是不独立的则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然可用分治法,但 一般用动态规划法较好 。 + +### 四、分治法的基本步骤 + +分治法在每一层递归上都有三个步骤: + +``` +step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; + +step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题 + +step3 合并:将各个子问题的解合并为原问题的解。 +``` + +它的一般的算法设计模式如下: + +``` +Divide-and-Conquer(P) + +1. if |P|≤n0 + +2. then return(ADHOC(P)) + +3. 将P分解为较小的子问题 P1 ,P2 ,...,Pk + +4. for i←1 to k + +5. do yi ← Divide-and-Conquer(Pi) △ 递归解决Pi + +6. T ← MERGE(y1,y2,...,yk) △ 合并子问题 + +7. return(T) +``` + +其中|P|表示问题P的规模;n0为一阈值,表示当问题P的规模不超过n0时,问题已容易直接解出,不必再继续分解。ADHOC(P)是该分治法中的基本子算法,用于直接解小规模的问题P。因此,当P的规模不超过n0时直接用算法ADHOC(P)求解。算法MERGE(y1,y2,…,yk)是该分治法中的合并子算法,用于将P的子问题P1 ,P2 ,…,Pk的相应的解y1,y2,…,yk合并为P的解。 + +### 五、分治法的复杂性分析 + +一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,则有: + +``` +T(n)= k T(n/m)+f(n)1 +``` + +通过迭代法求得方程的解: +递归方程及其解只给出n等于m的方幂时T(n)的值,但是如果认为T(n)足够平滑,那么由n等于m的方幂时T(n)的值可以估计T(n)的增长速度。通常假定T(n)是单调上升的,从而当 +`mi≤n` + +### 六、可使用分治法求解的一些经典问题 + +``` +(1)二分搜索 +(2)大整数乘法 +(3)Strassen矩阵乘法 +(4)棋盘覆盖 +(5)合并排序 +(6)快速排序 +(7)线性时间选择 +(8)最接近点对问题 +(9)循环赛日程表 +(10)汉诺塔 +``` + +### 七、依据分治法设计程序时的思维过程 + +实际上就是类似于数学归纳法,找到解决本问题的求解方程公式,然后根据方程公式设计递归程序。 +1、一定是先找到最小问题规模时的求解方法 +2、然后考虑随着问题规模增大时的求解方法 +3、找到求解的递归函数式后(各种规模或因子),设计递归程序即可。 + +------ + +## 算法二:动态规划算法 + +### 一、基本概念 + +动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 + +### 二、基本思想与策略 + +基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。 + +由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。 + +与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。 + +### 三、适用的情况 + +能采用动态规划求解的问题的一般要具有3个性质: + +(1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 +(2) 无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。 +(3) 有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势)。 + +### 四、求解的基本步骤 + +动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 + +``` + 初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 + 图1 动态规划决策过程示意图 +12 +``` + +(1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 +(2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 +(3)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 +(4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。 + +一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包括边界条件)。 +实际应用中可以按以下几个简化的步骤进行设计: +(1)分析最优解的性质,并刻画其结构特征。 +(2)递归的定义最优解。 +(3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值 +(4)根据计算最优值时得到的信息,构造问题的最优解 + +### 五、算法实现的说明 + +动态规划的主要难点在于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。 +使用动态规划求解问题,最重要的就是确定动态规划三要素: + +``` + (1)问题的阶段 + (2)每个阶段的状态 + (3)从前一个阶段转化到后一个阶段之间的递推关系。 +123 +``` + +递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的核心之处。 + +确定了动态规划的这三要素,整个求解过程就可以用一个最优决策表来描述,最优决策表是一个二维表,其中行表示决策的阶段,列表示问题状态,表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值(如最短路径,最长公共子序列,最大价值等),填表的过程就是根据递推关系,从1行1列开始,以行或者列优先的顺序,依次填写表格,最后根据整个表格的数据通过简单的取舍或者运算求得问题的最优解。 + +``` + f(n,m)=max{f(n-1,m), f(n-1,m-w[n])+P(n,m)} +1 +``` + +### 六、动态规划算法基本框架 + +```C++ +for(j=1; j<=m; j=j+1) // 第一个阶段 + xn[j] = 初始值; + + for(i=n-1; i>=1; i=i-1)// 其他n-1个阶段 + for(j=1; j>=f(i); j=j+1)//f(i)与i有关的表达式 + xi[j]=j=max(或min){g(xi-1[j1:j2]), ......, g(xi-1[jk:jk+1])}; + +t = g(x1[j1:j2]); // 由子问题的最优解求解整个问题的最优解的方案 + +print(x1[j1]); + +for(i=2; i<=n-1; i=i+1) +{ + t = t-xi-1[ji]; + + for(j=1; j>=f(i); j=j+1) + if(t=xi[ji]) + break; +} +``` + +------ + +## 算法三:贪心算法 + +### 一、基本概念 + +所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 + +贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。 +所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。 + +### 二、贪心算法的基本思路 + +``` +1.建立数学模型来描述问题。 +2.把求解的问题分成若干个子问题。 +3.对每一子问题求解,得到子问题的局部最优解。 +4.把子问题的解局部最优解合成原来解问题的一个解。 +``` + +### 三、贪心算法适用的问题 + +贪心策略适用的前提是:局部最优策略能导致产生全局最优解。 +实际上,贪心算法适用的情况很少。一般,对一个问题分析是否适用于贪心算法,可以先选择该问题下的几个实际数据进行分析,就可做出判断。 + +### 四、贪心算法的实现框架 + +``` +从问题的某一初始解出发; +while (能朝给定总目标前进一步) +{ + 利用可行的决策,求出可行解的一个解元素; +} +由所有解元素组合成问题的一个可行解; +``` + +### 五、贪心策略的选择 + +因为用贪心算法只能通过解局部最优解的策略来达到全局最优解,因此,一定要注意判断问题是否适合采用贪心算法策略,找到的解是否一定是问题的最优解。 + +### 六、例题分析 + +下面是一个可以试用贪心算法解的题目,贪心解的确不错,可惜不是最优解。 + +``` +[背包问题]有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。 +要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 +物品 A B C D E F G +重量 35 30 60 50 40 10 25 +价值 10 40 30 50 35 40 30 +分析: +目标函数: ∑pi最大 +约束条件是装入的物品总重量不超过背包容量:∑wi<=M( M=150) +(1)根据贪心的策略,每次挑选价值最大的物品装入背包,得到的结果是否最优? +(2)每次挑选所占重量最小的物品装入是否能得到最优解? +(3)每次选取单位重量价值最大的物品,成为解本题的策略。 +值得注意的是,贪心算法并不是完全不可以使用,贪心策略一旦经过证明成立后,它就是一种高效的算法。 +贪心算法还是很常见的算法之一,这是由于它简单易行,构造贪心策略不是很困难。 +可惜的是,它需要证明后才能真正运用到题目的算法中。 +一般来说,贪心算法的证明围绕着:整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。 +对于例题中的3种贪心策略,都是无法成立(无法被证明)的,解释如下: +(1)贪心策略:选取价值最大者。反例: +W=30 +物品:A B C +重量:28 12 12 +价值:30 20 20 +根据策略,首先选取物品A,接下来就无法再选取了,可是,选取B、C则更好。 +(2)贪心策略:选取重量最小。它的反例与第一种策略的反例差不多。 +(3)贪心策略:选取单位重量价值最大的物品。反例: +W=30 +物品:A B C +重量:28 20 10 +价值:28 20 10 +根据策略,三种物品单位重量价值一样,程序无法依据现有策略作出判断,如果选择A,则答案错误。 +``` + +------ + +## 算法四:回溯法 + +### 一、概念 + +回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 + +回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 + +许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。 + +### 二、基本思想 + +在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。 + +若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。 + +而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。 + +### 三、用回溯法解题的一般步骤 + +``` +(1)针对所给问题,确定问题的解空间: + 首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。 +(2)确定结点的扩展搜索规则 +(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。 +``` + +### 四、算法框架 + +(1)问题框架 + +``` +设问题的解是一个n维向量(a1,a2,………,an),约束条件是ai(i=1,2,3,…..,n)之间满足某种条件,记为f(ai)。 +1 +``` + +(2)非递归回溯框架 + +```C++ +int a[n],i; +初始化数组a[]; +i = 1; +while (i>0(有路可走) and (未达到目标)) // 还未回溯到头 +{ + if(i > n) // 搜索到叶结点 + { + 搜索到一个解,输出; + } + else // 处理第i个元素 + { + a[i]第一个可能的值; + while(a[i]在不满足约束条件且在搜索空间内) + { + a[i]下一个可能的值; + } + if(a[i]在搜索空间内) + { + 标识占用的资源; + i = i+1; // 扩展下一个结点 + } + else + { + 清理所占的状态空间; // 回溯 + i = i –1; + } +} +``` + +(3)递归的算法框架 + +回溯法是对解空间的深度优先搜索,在一般情况下使用递归函数来实现回溯法比较简单,其中i为搜索的深度,框架如下: + +``` +int a[n]; +try(int i) +{ + if(i>n) + 输出结果; + else + { + for(j = 下界; j <= 上界; j=j+1) // 枚举i所有可能的路径 + { + if(fun(j)) // 满足限界函数和约束条件 + { + a[i] = j; + ... // 其他操作 + try(i+1); + 回溯前的清理工作(如a[i]置空值等); + } + } + } +} +``` + +------ + +## 算法五:分支限界法 + +### 一、基本描述 + +类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 + +(1)分支搜索算法 +所谓“分支”就是采用广度优先的策略,依次搜索E-结点的所有分支,也就是所有相邻结点,抛弃不满足约束条件的结点,其余结点加入活结点表。然后从表中选择一个结点作为下一个E-结点,继续搜索。 + +选择下一个E-结点的方式不同,则会有几种不同的分支搜索方式。 + +``` +1)FIFO搜索 +2)LIFO搜索 +3)优先队列式搜索 +``` + +(2)分支限界搜索算法 + +### 二、分支限界法的一般过程 + +由于求解目标不同,导致分支限界法与回溯法在解空间树T上的搜索方式也不相同。回溯法以深度优先的方式搜索解空间树T,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树T。 + +分支限界法的搜索策略是:在扩展结点处,先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值(限界),并根据这些已计算出的函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出一个最优解。 + +分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。问题的解空间树是表示问题解空间的一棵有序树,常见的有子集树和排列树。在搜索问题的解空间树时,分支限界法与回溯法对当前扩展结点所使用的扩展方式不同。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被子加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止。 + +### 三、回溯法和分支限界法的一些区别 + +有一些问题其实无论用回溯法还是分支限界法都可以得到很好的解决,但是另外一些则不然。也许我们需要具体一些的分析——到底何时使用分支限界而何时使用回溯呢? + +回溯法和分支限界法的一些区别: + +方法对解空间树的搜索方式 存储结点的常用数据结构 结点存储特性常用应用 + +回溯法深度优先搜索堆栈活结点的所有可行子结点被遍历后才被从栈中弹出找出满足约束条件的所有解 + +分支限界法广度优先或最小消耗优先搜索队列、优先队列每个结点只有一次成为活结点的机会找出满足约束条件的一个解或特定意义下的最优解 + + +## 参考 + +1. https://blog.csdn.net/yapian8/article/details/28240973?utm_source=tuicool&utm_medium=referral \ No newline at end of file diff --git "a/algorithms/\345\270\270\350\247\201\347\254\224\350\257\225\351\242\230.md" "b/algorithms/\345\270\270\350\247\201\347\254\224\350\257\225\351\242\230.md" new file mode 100644 index 0000000..6eb178c --- /dev/null +++ "b/algorithms/\345\270\270\350\247\201\347\254\224\350\257\225\351\242\230.md" @@ -0,0 +1,23 @@ +# 常见笔试题 + +1. 打印素数 +2. 给定入栈顺序,给出一组出栈顺序,判断是否满足条件。如入栈 :12345 出栈:21453] +1. 寻找和为定值的任意多个数 + ``` + 问题描述: + 给定n个不同的正整数,整数k(k < = n)以及一个目标数字。在这n个数里面找出K个数, + 使得这K个数的和等于目标数字,求问有多少种方案? + 给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案 + ``` +4. 给定一个二维数组,求其中连续子数组和的最大值。 + ``` + 问题描述:给定一个二维数组,求其中连续子数组和的最大值。 + 样例输入: + 1 5 -3 6 -7 + 3 5 -9 -4 6 + -8 4 0 12 -3 + 3 -1 5 -5  8 + 样例输出:20  + 4 0 12 -3 + -1 5 -5 8 + ``` \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..2fed3d5 --- /dev/null +++ b/index.html @@ -0,0 +1,83 @@ + + + + + Document + + + + + + + + 、 + + + +
+ + + + + + + + + + + + + + + + diff --git "a/\346\257\217\346\227\245\346\211\223\345\215\241.md" "b/\346\257\217\346\227\245\346\211\223\345\215\241.md" new file mode 100644 index 0000000..9541868 --- /dev/null +++ "b/\346\257\217\346\227\245\346\211\223\345\215\241.md" @@ -0,0 +1,396 @@ +# 刷题打卡 + +| # | TitleEN | TitleCN | Level | [Java](code_java/README.md) | [C++](code_cpp/README.md) | [Python](code_python\README.md) | Go | Remark | +| ---- | ------------------------------------------------------------ | ---------- | ----- | ------------------------------------------------------------ | ------------------------- | ------------------------------- | ---- | ------------------------------------------------------------ | +| 1 | [Two Sum](https://leetcode-cn.com/problems/two-sum/) | | | [Java解答](code_java/src/solution/TwoSum.java) | | | | | +| 2 | [Add Two Numbers](https://leetcode-cn.com/problems/add-two-numbers/) | | | [Java解答](code_java/src/solution/AddTwoNumber.java) | | | | | +| 3 | [Longest Substring Without Repeating Characters](https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/) | 无重复字符的最长子串 | medium| [Java解答](code_java/src/solution/LongestSubstringWithoutRepeatingCharacters.java) | | | | 使用双指针法,跟#11题一起做 | +| 4 | [Median of Two Sorted Arrays](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) | | | [Java解答](code_java/src/solution/MedianOfTwoSortedArrays.java) | | | | 这题很经典,多做几遍 | +| 5 | [Longest Palindromic Substring](https://leetcode-cn.com/problems/longest-palindromic-substring/) | | | [Java解答](code_java/src/solution/LongestPalindromicSubstring.java) | | | | 这题对比动态规划和最优算法 | +| 6 | [ZigZag Conversion](https://leetcode-cn.com/problems/zigzag-conversion/) | | | [Java解答](code_java/src/solution/ZigZagConversion.java) | | | | | +| 7 | [Reverse Integer](https://leetcode-cn.com/problems/reverse-integer/) | | | [Java解答](code_java/src/solution/ReverseInteger.java) | | | | | +| 8 | [String to Integer (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/) | | | [Java解答](code_java/src/solution/String2Integer.java) | | | | 很考代码能力,容易错 | +| 9 | [Palindrome Number](https://leetcode-cn.com/problems/palindrome-number/) | | | [Java解答](code_java/src/solution/PalindromeNumber.java) | | | | | +| 10 | [Regular Expression Matching](https://leetcode-cn.com/problems/regular-expression-matching/) | | | [Java解答](code_java/src/solution/RegularExpressionMatching.java) | | | | 这题很经典,多做几遍,和#44一起 | +| 11 | [Container With Most Water](https://leetcode-cn.com/problems/container-with-most-water/) | 盛最多水的容器 | medium | [Java解答](code_java/src/solution/ContainerWithMostWater.java) | | | | | +| 12 | [Integer to Roman](https://leetcode-cn.com/problems/integer-to-roman/) | | | [Java解答](code_java/src/solution/IntegerToRoman.java) | | | | | +| 13 | [Roman to Integer](https://leetcode-cn.com/problems/roman-to-integer/) | | | [Java解答](code_java/src/solution/RomanToInteger.java) | | | | | +| 14 | [Longest Common Prefix](https://leetcode-cn.com/problems/longest-common-prefix/) | | | [Java解答](code_java/src/solution/LongestCommonPrefix.java) | | | | | +| 15 | [3Sum](https://leetcode-cn.com/problems/3sum/) | 三数之和 | | [Java解答](code_java/src/solution/ThreeSum.java) | | | | | +| 16 | [3Sum Closest](https://leetcode-cn.com/problems/3sum-closest/) | | | [Java解答](code_java/src/solution/ThreeSumClosest.java) | | | | | +| 17 | [Letter solution.Combinations of a Phone Number](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/) | | | [Java解答](code_java/src/solution/LetterCombinationOfPhoneNumber.java) | | | | 递归/回溯:最后一次递归才加入结果列表 | +| 18 | [4Sum](https://leetcode-cn.com/problems/4sum/) | | | [Java解答](code_java/src/solution/FourSum.java) | | | | | +| 19 | [Remove Nth Node From End of List](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) | | | [Java解答](code_java/src/solution/RemoveNthNodeFromEndOfList.java) | | | | | +| 20 | [Valid Parentheses](https://leetcode-cn.com/problems/valid-parentheses/) | | | [Java解答](code_java/src/solution/ValidParentheses.java) | | | | | +| 21 | [Merge Two Sorted Lists](https://leetcode-cn.com/problems/merge-two-sorted-lists/) | | | [Java解答](code_java/src/solution/MergeTwoSortedList.java) | | | | | +| 22 | [Generate Parentheses](https://leetcode-cn.com/problems/generate-parentheses/) | | | [Java解答](code_java/src/solution/GenerateParentheses.java) | | | | 这题看两遍 | +| 23 | [Merge k Sorted Lists](https://leetcode-cn.com/problems/merge-k-sorted-lists/) | | | [Java解答](code_java/src/solution/MergeKSortedList.java) | | | | | +| 24 | [Swap Nodes in Pairs](https://leetcode-cn.com/problems/swap-nodes-in-pairs/) | | | [Java解答](code_java/src/solution/SwapNodesInPairs.java) | | | | | +| 25 | [Reverse Nodes in k-Group](https://leetcode-cn.com/problems/reverse-nodes-in-k-group/) | | | [Java解答](code_java/src/solution/ReverseNodesInKGroup.java) | | | | | +| 26 | [Remove Duplicates from Sorted Array](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedArray.java) | | | | | +| 27 | [Remove Element](https://leetcode-cn.com/problems/remove-element/) | | | [Java解答](code_java/src/solution/RemoveElement.java) | | | | | +| 28 | [ Implement strStr()](https://leetcode-cn.com/problems/implement-strstr/) | | | [Java解答](code_java/src/solution/StrStr.java) | | | | | +| 29 | [Divide Two Integers](https://leetcode-cn.com/problems/divide-two-integers/) | | | [Java解答](code_java/src/solution/DivideTwoIntegers.java) | | | | | +| 30 | [Substring with Concatenation of All Words](https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/) | | | [Java解答](code_java/src/solution/SubstringWithConcatenationOfAllWords.java) | | | | | +| 31 | [Next Permutation](https://leetcode-cn.com/problems/next-permutation/) | | | [Java解答](code_java/src/solution/NextPermutation.java) | | | | | +| 32 | [Longest Valid Parentheses](https://leetcode-cn.com/problems/longest-valid-parentheses/) | | | [Java解答](code_java/src/solution/LongestValidParentheses.java) | | | | | +| 33 | [Search in Rotated Sorted Array](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/) | | | [Java解答](code_java/src/solution/SearchInRotatedSortedArray.java) | | | | | +| 34 | [Search for a Range](https://leetcode-cn.com/problems/search-for-a-range/) | | | [Java解答](code_java/src/solution/SearchForARange.java) | | | | | +| 35 | [Search Insert Position](https://leetcode-cn.com/problems/search-insert-position/) | | | [Java解答](code_java/src/solution/SearchInsertPosition.java) | | | | | +| 36 | [Valid Sudoku](https://leetcode-cn.com/problems/valid-sudoku/#/description) | | | [Java解答](code_java/src/solution/ValidSudoku.java) | | | | | +| 37 | [Sudoku Solver](https://leetcode-cn.com/problems/sudoku-solver/#/description) | | | [Java解答](code_java/src/solution/SudokuSolver.java) | | | | 这道题是典型的back tracking,多做几遍 | +| 38 | [Count and Say](https://leetcode-cn.com/problems/count-and-say/) | | | [Java解答](code_java/src/solution/CountAndSay.java) | | | | | +| 39 | [Combination Sum](https://leetcode-cn.com/problems/combination-sum/) | | | [Java解答](code_java/src/solution/CombinationSum.java) | | | | 排列组合系列的题要多做几遍 | +| 40 | [Combination Sum II](https://leetcode-cn.com/problems/combination-sum-ii/) | | | [Java解答](code_java/src/solution/CombinationSumII.java) | | | | | +| 41 | [First Missing Positive](https://leetcode-cn.com/problems/first-missing-positive/#/description) | | | [Java解答](code_java/src/solution/FirstMissingPositive.java) | | | | | +| 42 | [Trapping Rain Water](https://leetcode-cn.com/problems/trapping-rain-water/) | | | [Java解答](code_java/src/solution/TrappingRainWater.java) | | | | | +| 43 | [Multiply Strings](https://leetcode-cn.com/problems/multiply-strings/) | | | [Java解答](code_java/src/solution/MultiplyStrings.java) | | | | | +| 44 | [Wildcard Matching](https://leetcode-cn.com/problems/wildcard-matching/) | | | [Java解答](code_java/src/solution/WildcardMatching.java) | | | | 和#10多做几遍 | +| 45 | [Jump Game II](https://leetcode-cn.com/problems/jump-game-ii/#/description) | | | [Java解答](code_java/src/solution/JumpGameII.java) | | | | | +| 46 | [solution.Permutations](https://leetcode-cn.com/problems/permutations/) | | | [Java解答](code_java/src/solution/Permutations.java) | | | | | +| 47 | [solution.Permutations II](https://leetcode-cn.com/problems/permutations-ii/) | | | [Java解答](code_java/src/solution/PermutationsII.java) | | | | 多做几遍 | +| 48 | [Rotate Image](https://leetcode-cn.com/problems/rotate-image/) | | | [Java解答](code_java/src/solution/RotateImage.java) | | | | | +| 49 | [Group Anagrams](https://leetcode-cn.com/problems/anagrams/) | | | [Java解答](code_java/src/solution/GroupAnagrams.java) | | | | | +| 50 | [solution.Pow(x, n)](https://leetcode-cn.com/problems/powx-n/) | | | [Java解答](code_java/src/solution/Pow.java) | | | | | +| 51 | [N-Queens](https://leetcode-cn.com/problems/n-queens/) | | | [Java解答](code_java/src/solution/NQueens.java) | | | | | +| 52 | [N-Queens II](https://leetcode-cn.com/problems/n-queens-ii/) | | | [Java解答](code_java/src/solution/NQueensII.java) | | | | | +| 53 | [Maximum Subarray](https://leetcode-cn.com/problems/maximum-subarray/) | 最大子序和 | easy | [DP算法](code_java/src/solution/MaximumSubarray.java) | | | | DP算法,T=O(N),S=O(1) | +| 54 | [Spiral Matrix](https://leetcode-cn.com/problems/spiral-matrix/) | | | [Java解答](code_java/src/solution/SpiralMatrix.java) | | | | | +| 55 | [Jump Game](https://leetcode-cn.com/problems/jump-game/#/description) | | | [Java解答](code_java/src/solution/JumpGame.java) | | | | | +| 56 | [Merge Intervals](https://leetcode-cn.com/problems/merge-intervals/) | | | [Java解答](code_java/src/solution/MergeIntervals.java) | | | | | +| 57 | [Insert Interval](https://leetcode-cn.com/problems/insert-interval/) | | | [Java解答](code_java/src/solution/InsertInterval.java) | | | | 这题要多做几遍 | +| 60 | [Permutation Sequence](https://leetcode-cn.com/problems/permutation-sequence/) | | | [Java解答](code_java/src/solution/PermutationSequence.java) | | | | 这题思路巧妙,多做两遍 | +| 61 | [Rotate List](https://leetcode-cn.com/problems/rotate-list/) | | | [Java解答](code_java/src/solution/RotateList.java) | | | | | +| 62 | [Unique Paths](https://leetcode-cn.com/problems/unique-paths/) | 不同的路径 | medium | [排列组合法/DP算法](code_java/src/solution/UniquePath.java) | | | | 排列组合法: 将机器人行列要走的轨迹当作要选择的方块 | +| 63 | [Unique Path II](https://leetcode-cn.com/problems/unique-paths-ii/) | 不同的路径2 | medium | [DP算法](code_java/src/solution/UniquePathII.java) | | | | DP算法,可以利用原先矩阵将空间复杂度降为 O(1) | +| 66 | [Plus One](https://leetcode-cn.com/problems/plus-one/) | | | [Java解答](code_java/src/solution/PlusOne.java) | | | | 这题多看一遍 | +| 67 | [Add Binary](https://leetcode-cn.com/problems/add-binary/) | | | [Java解答](code_java/src/solution/AddBinary.java) | | | | | +| 68 | [Text Justification](https://leetcode-cn.com/problems/text-justification/) | | | [Java解答](code_java/src/solution/TextJustification.java) | | | | | +| 69 | [solution.Sqrt(x)](https://leetcode-cn.com/problems/sqrtx/) | | | [Java解答](code_java/src/solution/Sqrt.java) | | | | | +| 70 | [Climb Stairs](https://leetcode-cn.com/problems/climbing-stairs/) | 爬楼梯 | easy | [迭代法/动态规划法/递归法](code_java/src/solution/ClimbingStairs.java) | | | | 可使用迭代法/动态规划法/递归法 | +| 71 | [Simplify Path](https://leetcode-cn.com/problems/simplify-path/) | | | [Java解答](code_java/src/solution/SimplifyPath.java) | | | | | +| 72 | [Edit Distance](https://leetcode-cn.com/problems/edit-distance/) | 编辑距离 | difficult | [Java解答](code_java/src/solution/EditDistance.java) | | | | DP算法 | +| 73 | [Set Matrix Zeroes](https://leetcode-cn.com/problems/set-matrix-zeroes/description/) | | | [Java解答](code_java/src/solution/SetMatrixZeroes.java) | | | | | +| 74 | [Search a 2D Matrix](https://leetcode-cn.com/problems/search-a-2d-matrix/) | | | [Java解答](code_java/src/solution/Search2DMatrix.java) | | | | | +| 75 | [Sort Colors](https://leetcode-cn.com/problems/sort-colors/) | | | [Java解答](code_java/src/solution/SortColors.java) | | | | 这题多做几遍,很有意思 | +| 76 | [Minimum Window Substring](https://leetcode-cn.com/problems/minimum-window-substring/) | | | [Java解答](code_java/src/solution/MinimumWindowSubstring.java) | | | | 这题以及类似的题一定要多做几遍,很经典,参见window | +| 77 | [solution.Combinations](https://leetcode-cn.com/problems/combinations) | | | [Java解答](code_java/src/solution/Combinations.java) | | | | | +| 78 | [solution.Subsets](https://leetcode-cn.com/problems/subsets/) | | | [Java解答](code_java/src/solution/Subsets.java) | | | | | +| 79 | [Word Search](https://leetcode-cn.com/problems/word-search/) | | | [Java解答](code_java/src/solution/WordSearch.java) | | | | | +| 80 | [Remove Duplicates from Sorted Array II](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedArrayII.java) | | | | | +| 81 | [Search in Rotated Sorted Array II](https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/) | | | [Java解答](code_java/src/solution/SearchInRotatedSortedArrayII.java) | | | | | +| 82 | [Remove Duplicates from Sorted List II](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedListII.java) | | | | | +| 83 | [Remove Duplicates from Sorted List](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/) | | | [Java解答](code_java/src/solution/RemoveDuplicatesFromSortedList.java) | | | | | +| 84 | [Largest Rectangle in Histogram](https://leetcode-cn.com/problems/largest-rectangle-in-histogram/) | | | [Java解答](code_java/src/solution/LargestRectangleInHistogram.java) | | | | | +| 85 | [Maximal Rectangle](https://leetcode-cn.com/problems/maximal-rectangle/) | | | [Java解答](code_java/src/solution/MaximalRectangle.java) | | | | | +| 86 | [Partition List](https://leetcode-cn.com/problems/partition-list/) | | | [Java解答](code_java/src/solution/PartitionList.java) | | | | | +| 88 | [Merge Sorted Array](https://leetcode-cn.com/problems/merge-sorted-array/) | | | [Java解答](code_java/src/solution/MergeSortedArray.java) | | | | | +| 90 | [solution.Subsets II](https://leetcode-cn.com/problems/subsets-ii/) | | | [Java解答](code_java/src/solution/SubsetsII.java) | | | | | +| 91 | [Decode Ways](https://leetcode-cn.com/problems/decode-ways/) | | | [Java解答](code_java/src/solution/DecodeWays.java) | | | | 这题多做几遍,包括#639 | +| 92 | [Reverse Linked List II](https://leetcode-cn.com/problems/reverse-linked-list-ii/) | | | [Java解答](code_java/src/solution/ReverseLinkedListII.java) | | | | | +| 93 | [Restore IP Addresses](https://leetcode-cn.com/problems/restore-ip-addresses/) | | | [Java解答](code_java/src/solution/RestoreIPAddresses.java) | | | | 多看两遍 | +| 94 | [Binary Tree Inorder Traversal](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeInorderTraversal.java) | | | | | +| 95 | [Unique Binary Search Trees II](https://leetcode-cn.com/problems/unique-binary-search-trees-ii/) | | | [Java解答](code_java/src/solution/UniqueBinarySearchTreesII.java) | | | | 多做几遍,递归和DP | +| 96 | [Unique Binary Search Trees](https://leetcode-cn.com/problems/unique-binary-search-trees/) | | | [Java解答](code_java/src/solution/UniqueBinarySearchTrees.java) | | | | | +| 98 | [Validate Binary Search Tree](https://leetcode-cn.com/problems/validate-binary-search-tree/) | | | [Java解答](code_java/src/solution/ValidateBinarySearchTree.java) | | | | 注意溢出 | +| 99 | [Recover Binary Search Tree](https://leetcode-cn.com/problems/recover-binary-search-tree/) | | | [Java解答](code_java/src/solution/RecoverBinarySearchTree.java) | | | | 这题很容易错,要多做几遍 | +| 100 | [Same Tree](https://leetcode-cn.com/problems/same-tree/) | | | [Java解答](code_java/src/solution/SameTree.java) | | | | | +| 101 | [Symmetric Tree](https://leetcode-cn.com/problems/symmetric-tree/) | 对称二叉树 | | [Java解答](code_java/src/solution/SymmetricTree.java) | | | | | +| 102 | [Binary Tree Level Order Traversal](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeLevelOrderTraversal.java) | | | | | +| 103 | [Binary Tree Zigzag Level Order Traversal](https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeZigzagLevelOrderTraversal.java) | | | | | +| 104 | [Maximum Depth of Binary Tree](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/) | 最大树深度 | | [Java解答](code_java/src/solution/MaximumDepthOfBinaryTree.java) | | | | | +| 105 | [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromPreorderInorderTraversal.java) | | | | | +| 106 | [Construct Binary Tree from Inorder and Postorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromInorderAndPostorderTraversal.java) | | | | | +| 107 | [Binary Tree Level Order Traversal II](https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/) | | | [Java解答](code_java/src/solution/BinaryTreeLevelOrderTraversalII.java) | | | | | +| 108 | [Convert Sorted Array to Binary Search Tree](https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/) | | | [Java解答](code_java/src/solution/ConvertSortedArrayToBinarySearchTree.java) | | | | | +| 109 | [Convert Sorted List to Binary Search Tree](https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/) | | | [Java解答](code_java/src/solution/ConvertSortedListToBinarySearchTree.java) | | | | | +| 110 | [Balanced Binary Tree](https://leetcode-cn.com/problems/balanced-binary-tree/) | 平衡二叉树 | | [Java解答](code_java/src/solution/BalancedBinaryTree.java) | | | | | +| 111 | [Minimum Depth of Binary Tree](https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/) | | | [Java解答](code_java/src/solution/MinimumDepthOfBinaryTree.java) | | | | | +| 112 | [Path Sum](https://leetcode-cn.com/problems/path-sum/) | | | [Java解答](code_java/src/solution/PathSum.java) | | | | | +| 113 | [Path Sum II](https://leetcode-cn.com/problems/path-sum-ii/) | | | [Java解答](code_java/src/solution/PathSumII.java) | | | | 错了好几次,得多做几遍 | +| 114 | [Flatten Binary Tree to Linked List](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/) | | | [Java解答](code_java/src/solution/FlattenBinaryTreeToLinkedList.java) | | | | | +| 116 | [Populating Next Right Pointers in Each Node](https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/) | | | [Java解答](code_java/src/solution/PopulatingNextRightPointersInEachNode.java) | | | | | +| 117 | [Populating Next Right Pointers in Each Node II](https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/) | | | [Java解答](code_java/src/solution/PopulatingNextRightPointersInEachNodeII.java) | | | | | +| 118 | [Pascal's Triangle](https://leetcode-cn.com/problems/pascals-triangle/) | | | [Java解答](code_java/src/solution/PascalsTriangle.java) | | | | | +| 119 | [Pascal's Triangle II](https://leetcode-cn.com/problems/pascals-triangle-ii/description/) | | | [Java解答](code_java/src/solution/PascalTriangleII.java) | | | | | +| 120 | [Triangle](https://leetcode-cn.com/problems/triangle) | 三角形最小路径和 | medium | [Java解答](code_java/src/solution/Triangle.java) | | | | dp, 自上而下,自下而上的方法,可用 dp[][],dp[] 两种辅助空间 | +| 121 | [Best Time to Buy and Sell Stock](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStock.java) | | | | | +| 122 | [Best Time to Buy and Sell Stock II](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockII.java) | | | | | +| 123 | [Best Time to Buy and Sell Stock III](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockIII.java) | | | | | +| 124 | [Binary Tree Maximum Path Sum](https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/) | | | [Java解答](code_java/src/solution/BinaryTreeMaximumPathSum.java) | | | | | +| 125 | [Valid Palindrome](https://leetcode-cn.com/problems/valid-palindrome/) | | | [Java解答](code_java/src/solution/ValidPalindrome.java) | | | | | +| 126 | [Word Ladder II](https://leetcode-cn.com/problems/word-ladder-ii/) | | | [Java解答](code_java/src/solution/WordLadderII.java) | | | | | +| 127 | [Word Ladder](https://leetcode-cn.com/problems/word-ladder/) | | | [Java解答](code_java/src/solution/WordLadder.java) | | | | 此题非常经典,务必连同ii多做几遍,将双端BFS吃透 | +| 128 | [Longest Consecutive Sequence](https://leetcode-cn.com/problems/longest-consecutive-sequence/) | | | [Java解答](code_java/src/solution/LongestConsecutiveSequence.java) | | | | | +| 129 | [Sum Root to Leaf Numbers](https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/) | | | [Java解答](code_java/src/solution/SumRootToLeafNumbers.java) | | | | | +| 130 | [Surrounded Regions](https://leetcode-cn.com/problems/surrounded-regions/) | | | [Java解答](code_java/src/solution/SurroundedRegions.java) | | | | | +| 131 | [Palindrome Partitioning](https://leetcode-cn.com/problems/palindrome-partitioning/) | | | [Java解答](code_java/src/solution/PalindromePartitioning.java) | | | | | +| 132 | [Palindrome Partitioning II](https://leetcode-cn.com/problems/palindrome-partitioning-ii/) | | | [Java解答](code_java/src/solution/PalindromePartitioningII.java) | | | | | +| 133 | [Clone Graph](https://leetcode-cn.com/problems/clone-graph/) | | | [Java解答](code_java/src/solution/CloneGraph.java) | | | | 这题不难,多看两遍,BFS方法再做两遍 | +| 135 | [solution.Candy](https://leetcode-cn.com/problems/candy/) | | | [Java解答](code_java/src/solution/Candy.java) | | | | | +| 138 | [Copy List with Random Pointer](https://leetcode-cn.com/problems/copy-list-with-random-pointer/) | | | [Java解答](code_java/src/solution/CopyListWithRandomPointer.java) | | | | 有一个易错点 | +| 139 | [Word Break](https://leetcode-cn.com/problems/word-break/) | | | [Java解答](code_java/src/solution/WordBreak.java) | | | | 多看两遍 | +| 140 | [Word Break II](https://leetcode-cn.com/problems/word-break-ii/) | | | [Java解答](code_java/src/solution/WordBreakII.java) | | | | 这题多做两遍,很典型 | +| 141 | [Linked List Cycle](https://leetcode-cn.com/problems/linked-list-cycle/) | | | [Java解答](code_java/src/solution/LinkedListCycle.java) | | | | | +| 142 | [Linked List Cycle II](https://leetcode-cn.com/problems/linked-list-cycle-ii/) | | | [Java解答](code_java/src/solution/LinkedListCycleII.java) | | | | | +| 143 | [Reorder List](https://leetcode-cn.com/problems/reorder-list/) | | | [Java解答](code_java/src/solution/ReorderList.java) | | | | | +| 144 | [Binary Tree Preorder Traversal](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreePreorderTraversal.java) | | | | | +| 145 | [Binary Tree Postorder Traversal](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreePostorderTraversal.java) | | | | | +| 146 | [LRU Cache](https://leetcode-cn.com/problems/lru-cache/) | | | [Java解答](code_java/src/solution/LRUCache.java) | | | | 好题目,多做几遍 | +| 147 | [Insertion Sort List](https://leetcode-cn.com/problems/insertion-sort-list/) | | | [Java解答](code_java/src/solution/InsertionSortList.java) | | | | | +| 148 | [Sort List](https://leetcode-cn.com/problems/sort-list) | | | [Java解答](code_java/src/solution/SortList.java) | | | | | +| 149 | [Max Points on a Line](https://leetcode-cn.com/problems/max-points-on-a-line/) | | | [Java解答](code_java/src/solution/MaxPointsOnALine.java) | | | | | +| 150 | [Evaluate Reverse Polish Notation](https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/) | | | [Java解答](code_java/src/solution/EvaluateReversePolishNotation.java) | | | | | +| 151 | [Reverse Words in a String](https://leetcode-cn.com/problems/reverse-words-in-a-string/description/) | | | [Java解答](code_java/src/solution/ReverseWordsInAString.java) | | | | 这题虽然不难,但是也错了几次 | +| 152 | [Maximum Product Subarray](https://leetcode-cn.com/problems/maximum-product-subarray/) | | | [Java解答](code_java/src/solution/MaximumProductSubarray.java) | | | | | +| 153 | [Find Minimum in Rotated Sorted Array](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/) | | | [Java解答](code_java/src/solution/FindMinimumInRotatedSortedArray.java) | | | | | +| 154 | [Find Minimum in Rotated Sorted Array II](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/) | | | [Java解答](code_java/src/solution/FindMinimumInRotatedSortedArrayII.java) | | | | | +| 155 | [Min Stack](https://leetcode-cn.com/problems/min-stack/) | | | [Java解答](code_java/src/solution/MinStack.java) | | | | | +| 156 | [Binary Tree Upside Down](https://leetcode-cn.com/problems/binary-tree-upside-down/) | | | [Java解答](code_java/src/solution/BinaryTreeUpsideDown.java) | | | | 这道题挺有意思,多做几遍 | +| 157 | [Read N Characters Given Read4](https://leetcode-cn.com/problems/read-n-characters-given-read4/) | | | [Java解答](code_java/src/solution/ReadNCharactersGivenRead4.java) | | | | 这题多做几遍,结合#158 | +| 158 | [Read N Characters Given Read4 II - Call multiple times](https://leetcode-cn.com/problems/read-n-characters-given-read4-ii-call-multiple-times/) | | | [Java解答](code_java/src/solution/ReadNCharactersGivenRead4II.java) | | | | | +| 159 | [Longest Substring with At Most Two Distinct Characters](https://leetcode-cn.com/problems/longest-substring-with-at-most-two-distinct-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtMostTwoDistinctCharacters.java) | | | | 多看两遍 | +| 160 | [Intersection of Two Linked Lists](https://leetcode-cn.com/problems/intersection-of-two-linked-lists/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoLinkedLists.java) | | | | | +| 161 | [One Edit Distance](https://leetcode-cn.com/problems/one-edit-distance/) | | | [Java解答](code_java/src/solution/OneEditDistance.java) | | | | 和#72做两遍 | +| 162 | [Find Peak Element](https://leetcode-cn.com/problems/find-peak-element/) | | | [Java解答](code_java/src/solution/FindPeakElement.java) | | | | | +| 163 | [Missing Ranges](https://leetcode-cn.com/problems/missing-ranges/) | | | [Java解答](code_java/src/solution/MissingRanges.java) | | | | 多做几遍,太容易错了 | +| 164 | [Maximum Gap](https://leetcode-cn.com/problems/maximum-gap/) | | | [Java解答](code_java/src/solution/MaximumGap.java) | | | | | +| 167 | [Two Sum II - Input array is sorted](https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/) | | | [Java解答](code_java/src/solution/TwoSumII.java) | | | | | +| 168 | [Excel Sheet Column Title](https://leetcode-cn.com/problems/excel-sheet-column-title/) | | | [Java解答](code_java/src/solution/ExcelSheetColumnTitle.java) | | | | | +| 169 | [Majority Element](https://leetcode-cn.com/problems/majority-element/) | | | [Java解答](code_java/src/solution/MajorityElement.java) | | | | | +| 170 | [Two Sum III - Data structure design](https://leetcode-cn.com/problems/two-sum-iii-data-structure-design/) | | | [Java解答](code_java/src/solution/TwoSumIII.java) | | | | 这道题再多做一遍 | +| 171 | [Excel Sheet Column Number](https://leetcode-cn.com/problems/excel-sheet-column-number/) | | | [Java解答](code_java/src/solution/ExcelSheetColumnNumber.java) | | | | | +| 172 | [Factorial Trailing Zeroes](https://leetcode-cn.com/problems/factorial-trailing-zeroes/) | | | [Java解答](code_java/src/solution/FactorialTrailingZeroes.java) | | | | | +| 173 | [Binary Search Tree Iterator](https://leetcode-cn.com/problems/binary-search-tree-iterator/) | | | [Java解答](code_java/src/solution/BSTIterator.java) | | | | 多留意一下 | +| 179 | [Largest Number](https://leetcode-cn.com/problems/largest-number/) | | | [Java解答](code_java/src/solution/LargestNumber.java) | | | | | +| 186 | [Reverse Words in a String II](https://leetcode-cn.com/problems/reverse-words-in-a-string-ii/description/) | | | [Java解答](code_java/src/solution/ReverseWordsInAStringII.java) | | | | | +| 188 | [Best Time to Buy and Sell Stock IV](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockIV.java) | | | | | +| 189 | [Rotate Array](https://leetcode-cn.com/problems/rotate-array/) | | | [Java解答](code_java/src/solution/RotateArray.java) | | | | | +| 190 | [Reverse Bits](https://leetcode-cn.com/problems/reverse-bits/) | | | [Java解答](code_java/src/solution/ReverseBits.java) | | | | | +| 198 | [House Robber](https://leetcode-cn.com/problems/house-robber/) | | | [Java解答](code_java/src/solution/HouseRobber.java) | | | | | +| 199 | [Binary Tree Right Side View](https://leetcode-cn.com/problems/binary-tree-right-side-view/) | | | [Java解答](code_java/src/solution/BinaryTreeRightSideView.java) | | | | | +| 200 | [Number of Islands](https://leetcode-cn.com/problems/number-of-islands/) | | | [Java解答](code_java/src/solution/NumberOfIslands.java) | | | | 这道题很经典,而且方法不止一种,每种方法都多做几遍,包括UF,#305 | +| 203 | [Remove Linked List Elements](https://leetcode-cn.com/problems/remove-linked-list-elements/) | | | [Java解答](code_java/src/solution/RemoveLinkedListElements.java) | | | | | +| 204 | [Count Primes](https://leetcode-cn.com/problems/count-primes/) | | | [Java解答](code_java/src/solution/CountPrimes.java) | | | | | +| 206 | [Reverse Linked List](https://leetcode-cn.com/problems/reverse-linked-list/) | | | [Java解答](code_java/src/solution/ReverseLinkedList.java) | | | | | +| 207 | [Course Schedule](https://leetcode-cn.com/problems/course-schedule/) | | | [Java解答](code_java/src/solution/CourseSchedule.java) | | | | 典型的拓扑排序 | +| 208 | [Implement solution.Trie (Prefix Tree)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/) | | | [Java解答](code_java/src/solution/Trie.java) | | | | 和#211多留意,trie很典型 | +| 209 | [Minimum Size Subarray Sum](https://leetcode-cn.com/problems/minimum-size-subarray-sum/) | | | [Java解答](code_java/src/solution/MinimumSizeSubarraySum.java) | | | | | +| 210 | [Course Schedule II](https://leetcode-cn.com/problems/course-schedule-ii/) | | | [Java解答](code_java/src/solution/CourseScheduleII.java) | | | | | +| 211 | [Add and Search Word - Data structure design](https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/) | | | [Java解答](code_java/src/solution/WordDictionary.java) | | | | | +| 212 | [Word Search II](https://leetcode-cn.com/problems/word-search-ii/) | | | [Java解答](code_java/src/solution/WordSearchII.java) | | | | | +| 213 | [House Robber II](https://leetcode-cn.com/problems/house-robber-ii/) | | | [Java解答](code_java/src/solution/HouseRobberII.java) | | | | | +| 214 | [Shortest Palindrome](https://leetcode-cn.com/problems/shortest-palindrome/) | | | [Java解答](code_java/src/solution/ShortestPalindrome.java) | | | | | +| 215 | [Kth Largest Element in an Array](https://leetcode-cn.com/problems/kth-largest-element-in-an-array/) | | | [Java解答](code_java/src/solution/KthLargestElementInArray.java) | | | | 这题很经典,三种解法都要了然于胸 | +| 216 | [Combination Sum III](https://leetcode-cn.com/problems/combination-sum-iii/) | | | [Java解答](code_java/src/solution/CombinationSumIII.java) | | | | | +| 217 | [Contains Duplicate](https://leetcode-cn.com/problems/contains-duplicate/) | | | [Java解答](code_java/src/solution/ContainsDuplicate.java) | | | | | +| 218 | [The Skyline Problem](https://leetcode-cn.com/problems/the-skyline-problem/) | | | [Java解答](code_java/src/solution/TheSkylineProblem.java) | | | | 这题多做两遍 | +| 219 | [Contains Duplicate II](https://leetcode-cn.com/problems/contains-duplicate-ii/) | | | [Java解答](code_java/src/solution/ContainsDuplicateII.java) | | | | | +| 220 | [Contains Duplicate III](https://leetcode-cn.com/problems/contains-duplicate-iii/) | | | [Java解答](code_java/src/solution/ContainsDuplicateIII.java) | | | | | +| 221 | [Maximal Square](https://leetcode-cn.com/problems/maximal-square/) | | | [Java解答](code_java/src/solution/MaximalSquare.java) | | | | | +| 222 | [Count Complete Tree Nodes](https://leetcode-cn.com/problems/count-complete-tree-nodes/) | | | [Java解答](code_java/src/solution/CountCompleteTreeNodes.java) | | | | 一般的做法会超时 | +| 223 | [Rectangle Area](https://leetcode-cn.com/problems/rectangle-area/) | | | [Java解答](code_java/src/solution/RectangleArea.java) | | | | | +| 224 | [Basic Calculator](https://leetcode-cn.com/problems/basic-calculator/) | | | [Java解答](code_java/src/solution/BasicCalculator.java) | | | | | +| 225 | [Implement Stack using Queues](https://leetcode-cn.com/problems/implement-stack-using-queues/) | | | [Java解答](code_java/src/solution/MyStack.java) | | | | | +| 226 | [Invert Binary Tree](https://leetcode-cn.com/problems/invert-binary-tree/) | | | [Java解答](code_java/src/solution/InvertBinaryTree.java) | | | | | +| 228 | [Summary Ranges](https://leetcode-cn.com/problems/summary-ranges/) | | | [Java解答](code_java/src/solution/SummaryRanges.java) | | | | | +| 229 | [Majority Element II](https://leetcode-cn.com/problems/majority-element-ii/) | | | [Java解答](code_java/src/solution/MajorityElementII.java) | | | | | +| 230 | [Kth Smallest Element in a BST](https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/) | | | [Java解答](code_java/src/solution/KthSmallestElementInBST.java) | | | | 注意Follow Up | +| 232 | [Implement Queue using Stacks](https://leetcode-cn.com/problems/implement-queue-using-stacks/) | | | [Java解答](code_java/src/solution/MyQueue.java) | | | | | +| 233 | [Number of Digit One](https://leetcode-cn.com/problems/number-of-digit-one/) | | | [Java解答](code_java/src/solution/NumberOfDigitOne.java) | | | | | +| 234 | [Palindrome Linked List](https://leetcode-cn.com/problems/palindrome-linked-list/) | | | [Java解答](code_java/src/solution/PalindromeLinkedList.java) | | | | | +| 235 | [Lowest Common Ancestor of a Binary Search Tree](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) | | | [Java解答](code_java/src/solution/LowestCommonAncestorOfBinarySearchTree.java) | | | | | +| 236 | [Lowest Common Ancestor of a Binary Tree](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/) | | | [Java解答](code_java/src/solution/LowestCommonAncestorOfBinaryTree.java) | | | | 这题很经典,多做几遍,留意节点不在树中的情况 | +| 237 | [Delete Node in a Linked List](https://leetcode-cn.com/problems/delete-node-in-a-linked-list/) | | | [Java解答](code_java/src/solution/DeleteNodeInALinkedList.java) | | | | | +| 238 | [Product of Array Except Self](https://leetcode-cn.com/problems/product-of-array-except-self/) | | | [Java解答](code_java/src/solution/ProductOfArrayExceptSelf.java) | | | | | +| 239 | [Sliding Window Maximum](https://leetcode-cn.com/problems/sliding-window-maximum/) | | | [Java解答](code_java/src/solution/SlidingWindowMaximum.java) | | | | 这题非常经典,多做几遍,包括常规算法(优先队列,treemap)及优化算法双端队列 | +| 240 | [Search a 2D Matrix II](https://leetcode-cn.com/problems/search-a-2d-matrix-ii/) | | | [Java解答](code_java/src/solution/Search2DMatrixII.java) | | | | | +| 241 | [Different Ways to Add Parentheses](https://leetcode-cn.com/problems/different-ways-to-add-parentheses/) | | | [Java解答](code_java/src/solution/DifferenceWaysToAddParentheses.java) | | | | | +| 242 | [Valid Anagram](https://leetcode-cn.com/problems/valid-anagram/) | | | [Java解答](code_java/src/solution/ValidAnagram.java) | | | | | +| 243 | [Shortest Word Distance](https://leetcode-cn.com/problems/shortest-word-distance/) | | | [Java解答](code_java/src/solution/ShortestWordDistance.java) | | | | | +| 244 | [Shortest Word Distance II](https://leetcode-cn.com/problems/shortest-word-distance-ii/) | | | [Java解答](code_java/src/solution/ShortestWordDistanceII.java) | | | | | +| 245 | [Shortest Word Distance III](https://leetcode-cn.com/problems/shortest-word-distance-iii/) | | | [Java解答](code_java/src/solution/ShortestWordDistanceIII.java) | | | | | +| 246 | [Strobogrammatic Number](https://leetcode-cn.com/problems/strobogrammatic-number/) | | | [Java解答](code_java/src/solution/StrobogrammaticNumber.java) | | | | #247一个系列,多看两遍 | +| 247 | [Strobogrammatic Number II](https://leetcode-cn.com/problems/strobogrammatic-number-ii/) | | | [Java解答](code_java/src/solution/src/StrobogrammaticNumberII.java) | | | | 多看两遍 | +| 249 | [Group Shifted Strings](https://leetcode-cn.com/problems/group-shifted-strings/) | | | [Java解答](code_java/src/solution/GroupShiftedStrings.java) | | | | | +| 250 | [Count Univalue Subtrees](https://leetcode-cn.com/problems/count-univalue-subtrees/) | | | [Java解答](code_java/src/solution/CountUnivalueSubtrees.java) | | | | 这题要多做几遍 | +| 251 | [Flatten 2D Vector](https://leetcode-cn.com/problems/flatten-2d-vector/) | | | [Java解答](code_java/src/solution/Vector2D.java) | | | | | +| 252 | [Meeting Rooms](https://leetcode-cn.com/problems/meeting-rooms/) | | | [Java解答](code_java/src/solution/MeetingRooms.java) | | | | | +| 253 | [Meeting Rooms II](https://leetcode-cn.com/problems/meeting-rooms-ii/) | | | [Java解答](code_java/src/solution/MeetingRoomsII.java) | | | | | +| 254 | [Factor solution.Combinations](https://leetcode-cn.com/problems/factor-combinations/) | | | [Java解答](code_java/src/solution/FactorCombinations.java) | | | | | +| 255 | [Verify Preorder Sequence in Binary Search Tree](https://leetcode-cn.com/problems/verify-preorder-sequence-in-binary-search-tree/) | | | [Java解答](code_java/src/solution/VerifyPreorderSequenceInBinarySearchTree.java) | | | | 很简单,粗心错了 | +| 256 | [Paint House](https://leetcode-cn.com/problems/paint-house/) | | | [Java解答](code_java/src/solution/PaintHouse.java) | | | | | +| 257 | [Binary Tree Paths](https://leetcode-cn.com/problems/binary-tree-paths/) | | | [Java解答](code_java/src/solution/BinaryTreePaths.java) | | | | | +| 259 | [3Sum Smaller](https://leetcode-cn.com/problems/3sum-smaller/) | | | [Java解答](code_java/src/solution/ThreeSumSmaller.java) | | | | 这题虽然简单,但是因为思维定式还是错了几次 | +| 261 | [Graph Valid Tree](https://leetcode-cn.com/problems/graph-valid-tree/) | | | [Java解答](code_java/src/solution/GraphValidTree.java) | | | | 这题多做几遍 | +| 263 | [Ugly Number](https://leetcode-cn.com/problems/ugly-number/) | | | [Java解答](code_java/src/solution/UglyNumber.java) | | | | | +| 264 | [Ugly Number II](https://leetcode-cn.com/problems/ugly-number-ii/) | | | [Java解答](code_java/src/solution/UglyNumberII.java) | | | | | +| 265 | [Paint House II](https://leetcode-cn.com/problems/paint-house-ii) | | | [Java解答](code_java/src/solution/PaintHouseII.java) | | | | | +| 266 | [Palindrome Permutation](https://leetcode-cn.com/problems/palindrome-permutation/) | | | [Java解答](code_java/src/solution/PalindromePermutation.java) | | | | | +| 267 | [Palindrome Permutation II](https://leetcode-cn.com/problems/palindrome-permutation-ii/) | | | [Java解答](code_java/src/solution/PalindromePermutationII.java) | | | | 典型,多看两遍 | +| 268 | [Missing Number](https://leetcode-cn.com/problems/missing-number) | | | [Java解答](code_java/src/solution/MissingNumber.java) | | | | | +| 269 | [Alien Dictionary](https://leetcode-cn.com/problems/alien-dictionary/) | | | [Java解答](code_java/src/solution/AlienDictionary.java) | | | | 这题要多做几遍 | +| 270 | [Closest Binary Search Tree Value](https://leetcode-cn.com/problems/closest-binary-search-tree-value/) | | | [Java解答](code_java/src/solution/ClosestBinarySearchTreeValue.java) | | | | | +| 271 | [Encode and Decode Strings](https://leetcode-cn.com/problems/encode-and-decode-strings/) | | | [Java解答](code_java/src/solution/EncodeAndDecodeStrings.java) | | | | 思路巧妙,多看几遍 | +| 272 | [Closest Binary Search Tree Value II](https://leetcode-cn.com/problems/closest-binary-search-tree-value-ii/) | | | [Java解答](code_java/src/solution/ClosestBinarySearchTreeValueII.java) | | | | 这题非常值得多做几遍,几种写法都试试 | +| 273 | [Integer to English Words](https://leetcode-cn.com/problems/integer-to-english-words/) | | | [Java解答](code_java/src/solution/IntegerToEnglishWords.java) | | | | 多做几遍,做到bug free | +| 274 | [H-Index](https://leetcode-cn.com/problems/h-index/) | | | [Java解答](code_java/src/solution/HIndex.java) | | | | | +| 275 | [H-Index II](https://leetcode-cn.com/problems/h-index-ii/) | | | [Java解答](code_java/src/solution/HIndexII.java) | | | | | +| 277 | [Find the Celebrity](https://leetcode-cn.com/problems/find-the-celebrity/) | | | [Java解答](code_java/src/solution/FindCelebrity.java) | | | | | +| 278 | [First Bad Version](https://leetcode-cn.com/problems/first-bad-version/) | | | [Java解答](code_java/src/solution/FirstBadVersion.java) | | | | | +| 279 | [Perfect Squares](https://leetcode-cn.com/problems/perfect-squares/) | | | [Java解答](code_java/src/solution/PerfectSquares.java) | | | | | +| 280 | [Wiggle Sort](https://leetcode-cn.com/problems/wiggle-sort/) | | | [Java解答](code_java/src/solution/WiggleSort.java) | | | | 思路巧妙,多看两遍 | +| 281 | [Zigzag Iterator](https://leetcode-cn.com/problems/zigzag-iterator/) | | | [Java解答](code_java/src/solution/ZigzagIterator.java) | | | | 多做三遍,考虑扩展到k的情况 | +| 282 | [Expression Add Operators](https://leetcode-cn.com/problems/expression-add-operators/) | | | [Java解答](code_java/src/solution/ExpressionAddOperators.java) | | | | | +| 283 | [Move Zeroes](https://leetcode-cn.com/problems/move-zeroes/) | | | [Java解答](code_java/src/solution/MoveZeroes.java) | | | | | +| 284 | [Peeking Iterator](https://leetcode-cn.com/problems/peeking-iterator/) | | | [Java解答](code_java/src/solution/PeekingIterator.java) | | | | | +| 285 | [Inorder Successor in BST](https://leetcode-cn.com/problems/inorder-successor-in-bst/) | | | [Java解答](code_java/src/solution/InorderSuccessorInBST.java) | | | | 这道题有意思,要多做几遍 | +| 286 | [Walls and Gates](https://leetcode-cn.com/problems/walls-and-gates/) | | | [Java解答](code_java/src/solution/WallsAndGates.java) | | | | 多看两遍 | +| 287 | [Find the Duplicate Number](https://leetcode-cn.com/problems/find-the-duplicate-number/) | | | [Java解答](code_java/src/solution/FindTheDuplicateNumber.java) | | | | | +| 288 | [Unique Word Abbreviation](https://leetcode-cn.com/problems/unique-word-abbreviation/) | | | [Java解答](code_java/src/solution/ValidWordAbbr.java) | | | | 这题不难,多做两遍,题目意思容易理解错 | +| 289 | [Game of Life](https://leetcode-cn.com/problems/game-of-life/) | | | [Java解答](code_java/src/solution/GameOfLife.java) | | | | | +| 293 | [Flip Game](https://leetcode-cn.com/problems/flip-game/) | | | [Java解答](code_java/src/solution/FlipGame.java) | | | | | +| 294 | [Flip Game II](https://leetcode-cn.com/problems/flip-game-ii/) | | | [Java解答](code_java/src/solution/FlipGameII.java) | | | | | +| 295 | [Find Median from Data Stream](https://leetcode-cn.com/problems/find-median-from-data-stream/) | | | [Java解答](code_java/src/solution/FindMedianFromDataStream.java) | | | | | +| 297 | [Serialize and Deserialize Binary Tree](https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/) | | | [Java解答](code_java/src/solution/Codec.java) | | | | 好题目,多做做,递归的非递归的 | +| 298 | [Binary Tree Longest Consecutive Sequence](https://leetcode-cn.com/problems/binary-tree-longest-consecutive-sequence/) | | | [Java解答](code_java/src/solution/BinaryTreeLongestConsecutiveSequence.java) | | | | 多做三遍,尽可能简洁 | +| 299 | [Bulls and Cows](https://leetcode-cn.com/problems/bulls-and-cows/) | | | [Java解答](code_java/src/solution/BullsAndCows.java) | | | | | +| 300 | [Longest Increasing Subsequence](https://leetcode-cn.com/problems/longest-increasing-subsequence/) | | | [Java解答](code_java/src/solution/LongestIncreasingSubsequence.java) | | | | | +| 301 | [Remove Invalid Parentheses](https://leetcode-cn.com/problems/remove-invalid-parentheses/) | | | [Java解答](code_java/src/solution/RemoveInvalidParentheses.java) | | | | 比较难,多做几遍 | +| 302 | [Smallest Rectangle Enclosing Black Pixels](https://leetcode-cn.com/problems/smallest-rectangle-enclosing-black-pixels/) | | | [Java解答](code_java/src/solution/SmallestRectangleEnclosingBlackPixels.java) | | | | | +| 303 | [Range Sum Query - Immutable](https://leetcode-cn.com/problems/range-sum-query-immutable/) | | | [Java解答](code_java/src/solution/NumArray.java) | | | | | +| 304 | [Range Sum Query 2D - Immutable](https://leetcode-cn.com/problems/range-sum-query-2d-immutable/) | | | [Java解答](code_java/src/solution/NumMatrix.java) | | | | | +| 305 | [Number of Islands II](https://leetcode-cn.com/problems/number-of-islands-ii/) | | | [Java解答](code_java/src/solution/NumberOfIslandsII.java) | | | | 这题多做几遍,经典的UF | +| 307 | [Range Sum Query - Mutable](https://leetcode-cn.com/problems/range-sum-query-mutable/) | | | [Java解答](code_java/src/solution/NumArrayII.java) | | | | 和#303, #304, #308定要多做几遍,掌握BIT | +| 308 | [Range Sum Query 2D - Mutable](https://leetcode-cn.com/problems/range-sum-query-2d-mutable/) | | | [Java解答](code_java/src/solution/NumMatrixII.java) | | | | | +| 309 | [Best Time to Buy and Sell Stock with Cooldown](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/) | | | [Java解答](code_java/src/solution/BestTimeBuySellStockWithCoolDown.java) | | | | | +| 310 | [Minimum Height Trees](https://leetcode-cn.com/problems/minimum-height-trees/) | | | [Java解答](code_java/src/solution/MinimumHeightTrees.java) | | | | 这题多做几遍 | +| 311 | [Sparse Matrix Multiplication](https://leetcode-cn.com/problems/sparse-matrix-multiplication/) | | | [Java解答](code_java/src/solution/SparseMatrixMultiplication.java) | | | | | +| 312 | [Burst Balloons](https://leetcode-cn.com/problems/burst-balloons/) | | | [Java解答](code_java/src/solution/BurstBalloons.java) | | | | | +| 313 | [Super Ugly Number](https://leetcode-cn.com/problems/super-ugly-number/) | | | [Java解答](code_java/src/solution/SuperUglyNumber.java) | | | | | +| 314 | [Binary Tree Vertical Order Traversal](https://leetcode-cn.com/problems/binary-tree-vertical-order-traversal/) | | | [Java解答](code_java/src/solution/BinaryTreeVerticalOrderTraversal.java) | | | | | +| 315 | [Count of Smaller Numbers After Self](https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/) | | | [Java解答](code_java/src/solution/CountOfSmallerNumbersAfterSelf.java) | | | | | +| 316 | [Remove Duplicate Letters](https://leetcode-cn.com/problems/remove-duplicate-letters/) | | | [Java解答](code_java/src/solution/RemoveDuplicateLetters.java) | | | | | +| 317 | [Shortest Distance from All Buildings](https://leetcode-cn.com/problems/shortest-distance-from-all-buildings/) | | | [Java解答](code_java/src/solution/ShortestDistanceFromAllBuildings.java) | | | | 典型的bfs,多做两遍 | +| 319 | [Bulb Switcher](https://leetcode-cn.com/problems/bulb-switcher/) | | | [Java解答](code_java/src/solution/BulbSwitcher.java) | | | | | +| 320 | [Generalized Abbreviation](https://leetcode-cn.com/problems/generalized-abbreviation/) | | | [Java解答](code_java/src/solution/GeneralizedAbbreviation.java) | | | | 这题是典型的back tracking,多做几遍 | +| 322 | [Coin Change](https://leetcode-cn.com/problems/coin-change/) | | | [Java解答](code_java/src/solution/CoinChange.java) | | | | | +| 323 | [Number of Connected Components in an Undirected Graph](https://leetcode-cn.com/problems/number-of-connected-components-in-an-undirected-graph/) | | | [Java解答](code_java/src/solution/NumberOfConnectedComponents.java) | | | | 典型的图,多看两遍 | +| 324 | [Wiggle Sort II](https://leetcode-cn.com/problems/wiggle-sort-ii/) | | | [Java解答](code_java/src/solution/WiggleSortII.java) | | | | | +| 325 | [Maximum Size Subarray Sum Equals k](https://leetcode-cn.com/problems/maximum-size-subarray-sum-equals-k/) | | | [Java解答](code_java/src/solution/MaximumSizeSubarraySumEqualsK.java) | | | | 这题思路有意思,多做几遍 | +| 328 | [Odd Even Linked List](https://leetcode-cn.com/problems/odd-even-linked-list/) | | | [Java解答](code_java/src/solution/OddEvenLinkedList.java) | | | | | +| 329 | [Longest Increasing Path in a Matrix](https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/) | | | [Java解答](code_java/src/solution/LongestIncreasingPathInAMatrix.java) | | | | 这题要多做几遍 | +| 332 | [Reconstruct Itinerary](https://leetcode-cn.com/problems/reconstruct-itinerary/) | | | [Java解答](code_java/src/solution/ReconstructItinerary.java) | | | | | +| 333 | [Largest BST Subtree](https://leetcode-cn.com/problems/largest-bst-subtree/) | | | [Java解答](code_java/src/solution/LargestBSTSubtree.java) | | | | 这道题虽然不难,但是折腾了很久,一定要多做 | +| 334 | [Increasing Triplet Subsequence](https://leetcode-cn.com/problems/increasing-triplet-subsequence/) | | | [Java解答](code_java/src/solution/IncreasingTripletSubsequence.java) | | | | | +| 335 | [Self Crossing](https://leetcode-cn.com/problems/self-crossing/) | | | [Java解答](code_java/src/solution/SelfCrossing.java) | | | | | +| 336 | [Palindrome Pairs](https://leetcode-cn.com/problems/palindrome-pairs/) | | | [Java解答](code_java/src/solution/PalindromePairs.java) | | | | | +| 337 | [House Robber III](https://leetcode-cn.com/problems/house-robber-iii/) | | | [Java解答](code_java/src/solution/HouseRobberIII.java) | | | | 建议再做两遍 | +| 339 | [Nested List Weight Sum](https://leetcode-cn.com/problems/nested-list-weight-sum/) | | | [Java解答](code_java/src/solution/NestedListWeightSum.java) | | | | | +| 340 | [Longest Substring with At Most K Distinct Characters](https://leetcode-cn.com/problems/longest-substring-with-at-most-k-distinct-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtMostKDistinctCharacters.java) | | | | 和#159类似 | +| 341 | [Flatten Nested List Iterator](https://leetcode-cn.com/problems/flatten-nested-list-iterator/) | | | [Java解答](code_java/src/solution/src/NestedIterator.java) | | | | 这题有点意思,多做两遍 | +| 344 | [Reverse String](https://leetcode-cn.com/problems/reverse-string/) | | | [Java解答](code_java/src/solution/ReverseString.java) | | | | | +| 345 | [Reverse Vowels of a String](https://leetcode-cn.com/problems/reverse-vowels-of-a-string/) | | | [Java解答](code_java/src/solution/ReverseVowelsOfaString.java) | | | | | +| 346 | [Moving Average from Data Stream](https://leetcode-cn.com/problems/moving-average-from-data-stream/) | | | [Java解答](code_java/src/solution/MovingAverage.java) | | | | | +| 347 | [Top K Frequent Elements](https://leetcode-cn.com/problems/top-k-frequent-elements/) | | | [Java解答](code_java/src/solution/TopKFrequentElements.java) | | | | | +| 349 | [Intersection of Two Arrays](https://leetcode-cn.com/problems/intersection-of-two-arrays/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoArrays.java) | | | | | +| 350 | [Intersection of Two Arrays II](https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/) | | | [Java解答](code_java/src/solution/IntersectionOfTwoArraysII.java) | | | | | +| 351 | [Android Unlock Patterns](https://leetcode-cn.com/problems/android-unlock-patterns/) | | | [Java解答](code_java/src/solution/AndroidUnlockPatterns.java) | | | | 这题多做几遍 | +| 357 | [Count Numbers with Unique Digits](https://leetcode-cn.com/problems/count-numbers-with-unique-digits/) | | | [Java解答](code_java/src/solution/CountNumberWithUniqueDigits.java) | | | | | +| 358 | [Rearrange String k Distance Apart](https://leetcode-cn.com/problems/rearrange-string-k-distance-apart/) | | | [Java解答](code_java/src/solution/RearrangeStringKDistanceApart.java) | | | | | +| 359 | [Logger Rate Limiter](https://leetcode-cn.com/problems/logger-rate-limiter/) | | | [Java解答](code_java/src/solution/LoggerRateLimiter.java) | | | | 这题如果不考虑空间消耗的话其实很简单 | +| 361 | [Bomb Enemy](https://leetcode-cn.com/problems/bomb-enemy/) | | | [Java解答](code_java/src/solution/BombEnemy.java) | | | | 这题多做几遍,开始没思路 | +| 364 | [Nested List Weight Sum II](https://leetcode-cn.com/problems/nested-list-weight-sum-ii/) | | | [Java解答](code_java/src/solution/NestedListWeightSumII.java) | | | | | +| 366 | [Find Leaves of Binary Tree](https://leetcode-cn.com/problems/find-leaves-of-binary-tree/) | | | [Java解答](code_java/src/solution/FindLeavesOfBinaryTree.java) | | | | 这道题刚开始还没思路 | +| 367 | [Valid Perfect Square](https://leetcode-cn.com/problems/valid-perfect-square) | | | [Java解答](code_java/src/solution/ValidPerfectSquare.java) | | | | | +| 369 | [Plus One Linked List](https://leetcode-cn.com/problems/plus-one-linked-list/) | | | [Java解答](code_java/src/solution/PlusOneLinkedList.java) | | | | | +| 370 | [Range Addition](https://leetcode-cn.com/problems/range-addition/) | | | [Java解答](code_java/src/solution/RangeAddition.java) | | | | | +| 373 | [Find K Pairs with Smallest Sums](https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/) | | | [Java解答](code_java/src/solution/FindKPairsWithSmallestSums.java) | | | | | +| 374 | [Guess Number Higher or Lower](https://leetcode-cn.com/problems/guess-number-higher-or-lower/) | | | [Java解答](code_java/src/solution/GuessNumberHigherOrLower.java) | | | | | +| 375 | [Guess Number Higher or Lower II](https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/) | | | [Java解答](code_java/src/solution/GuessNumberHigherOrLowerII.java) | | | | | +| 377 | [Combination Sum IV](https://leetcode-cn.com/problems/combination-sum-iv/) | | | [Java解答](code_java/src/solution/src/combinationSum4.java) | | | | | +| 378 | [Kth Smallest Element in a Sorted Matrix](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/) | | | [Java解答](code_java/src/solution/KthSmallestElementInASortedMatrix.java) | | | | | +| 380 | [Insert Delete GetRandom O(1)](https://leetcode-cn.com/problems/insert-delete-getrandom-o1/) | | | [Java解答](code_java/src/solution/src/RandomizedSet.java) | | | | 这道题很有意思,多做几遍 | +| 381 | [Insert Delete GetRandom O(1) - Duplicates allowed](https://leetcode-cn.com/problems/insert-delete-getrandom-o1-duplicates-allowed/) | | | [Java解答](code_java/src/solution/src/RandomizedCollection.java) | | | | | +| 382 | [Linked List Random Node](https://leetcode-cn.com/problems/linked-list-random-node/) | | | [Java解答](code_java/src/solution/LinkedListRandomNode.java) | | | | | +| 384 | [Shuffle an Array](https://leetcode-cn.com/problems/shuffle-an-array/) | | | [Java解答](code_java/src/solution/ShuffleAnArray.java) | | | | | +| 387 | [First Unique Character in a String](https://leetcode-cn.com/problems/first-unique-character-in-a-string/) | | | [Java解答](code_java/src/solution/FirstUniqueCharacterInAString.java) | | | | | +| 388 | [Longest Absolute File Path](https://leetcode-cn.com/problems/longest-absolute-file-path/) | | | [Java解答](code_java/src/solution/LongestAbsoluteFilePath.java) | | | | 其实不难,乍看没思路,多做几遍 | +| 391 | [Perfect Rectangle](https://leetcode-cn.com/problems/perfect-rectangle/) | | | [Java解答](code_java/src/solution/PerfectRectangle.java) | | | | 这题很trick,多做两遍 | +| 392 | [Is Subsequence](https://leetcode-cn.com/problems/is-subsequence/)| 判断子序列 | esay | [贪心算法/DP算法](code_java/src/solution/IsSubsequence.java) | | | | DP算法:不建议使用,纯粹学习思想 | +| 393 | [UTF-8 Validation](https://leetcode-cn.com/problems/utf-8-validation/) | | | [Java解答](code_java/src/solution/UTFValidation.java) | | | | 错了很多次,多做几遍 | +| 394 | [Decode String](https://leetcode-cn.com/problems/decode-string/) | | | [Java解答](code_java/src/solution/DecodeString.java) | | | | 这题容易错,多做四遍 | +| 395 | [Longest Substring with At Least K Repeating Characters](https://leetcode-cn.com/problems/longest-substring-with-at-least-k-repeating-characters/) | | | [Java解答](code_java/src/solution/LongestSubstringWithAtLeastKRepeatingCharacters.java) | | | | | +| 398 | [Random Pick Index](https://leetcode-cn.com/problems/random-pick-index/) | | | [Java解答](code_java/src/solution/RandomPickIndex.java) | | | | | +| 399 | [Evaluate Division](https://leetcode-cn.com/problems/evaluate-division/) | | | [Java解答](code_java/src/solution/EvaluateDivision.java) | | | | 这题多做几遍 | +| 401 | [Binary Watch](https://leetcode-cn.com/problems/binary-watch/) | | | [Java解答](code_java/src/solution/BinaryWatch.java) | | | | | +| 404 | [Sum of Left Leaves](https://leetcode-cn.com/problems/sum-of-left-leaves/) | | | [Java解答](code_java/src/solution/SumOfLeftLeaves.java) | | | | | +| 406 | [Queue Reconstruction by Height](https://leetcode-cn.com/problems/queue-reconstruction-by-height/) | | | [Java解答](code_java/src/solution/QueueReconstructionByHeight.java) | | | | 这题开始没思路,多做几遍 | +| 407 | [Trapping Rain Water II](https://leetcode-cn.com/problems/trapping-rain-water-ii/) | | | [Java解答](code_java/src/solution/TrappingRainWaterII.java) | | | | | +| 408 | [Valid Word Abbreviation](https://leetcode-cn.com/problems/valid-word-abbreviation/) | | | [Java解答](code_java/src/solution/src/validWordAbbreviation.java) | | | | 多做两遍 | +| 409 | [Longest Palindrome](https://leetcode-cn.com/problems/longest-palindrome/) | | | [Java解答](code_java/src/solution/LongestPalindrome.java) | | | | | +| 410 | [Split Array Largest Sum](https://leetcode-cn.com/problems/split-array-largest-sum) | | | [Java解答](code_java/src/solution/SplitArrayLargestSum.java) | | | | | +| 412 | [Fizz Buzz](https://leetcode-cn.com/problems/fizz-buzz/) | | | [Java解答](code_java/src/solution/FizzBuzz.java) | | | | | +| 413 | [Third Maximum Number](https://leetcode-cn.com/problems/third-maximum-number/) | | | [Java解答](code_java/src/solution/ThirdMaximumNumber.java) | | | | | +| 418 | [Sentence Screen Fitting](https://leetcode-cn.com/problems/sentence-screen-fitting/) | | | [Java解答](code_java/src/solution/SentenceScreenFitting.java) | | | | 这题思路巧妙,多做几遍,常规思路超时 | +| 422 | [Valid Word Square](https://leetcode-cn.com/problems/valid-word-square/) | | | [Java解答](code_java/src/solution/ValidWordSquare.java) | | | | | +| 425 | [Word Squares](https://leetcode-cn.com/problems/word-squares/) | | | [Java解答](code_java/src/solution/src/WordSquare.java) | | | | 这题很典型,多做几遍 | +| 436 | [Find Right Interval](https://leetcode-cn.com/problems/find-right-interval/) | | | [Java解答](code_java/src/solution/FindRightInterval.java) | | | | | +| 437 | [Path Sum III](https://leetcode-cn.com/problems/path-sum-iii/) | | | [Java解答](code_java/src/solution/PathSumIII.java) | | | | 这道题错了很多遍,要重点关注 | +| 438 | [Find All Anagrams in a String](https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/) | | | [Java解答](code_java/src/solution/FindAllAnagramsInString.java) | | | | 这道题非常经典,最优解法需要多做几遍,保证once bug free | +| 442 | [Find All Duplicates in an Array](https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/) | | | [Java解答](code_java/src/solution/FindAllDuplicatesInAnArray.java) | | | | | +| 445 | [Add Two Numbers II](https://leetcode-cn.com/problems/add-two-numbers-ii/discuss/) | | | [Java解答](code_java/src/solution/AddTwoNumbersII.java) | | | | | +| 448 | [Find All Numbers Disappeared in an Array](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array) | | | [Java解答](code_java/src/solution/FindAllNumbersDisappearedInAnArray.java) | | | | | +| 449 | [Serialize and Deserialize BST](https://leetcode-cn.com/problems/serialize-and-deserialize-bst) | | | [Java解答](code_java/src/solution/SerializeAndDeserializeBST.java) | | | | 和#297一样 | +| 450 | [Delete Node in a BST](https://leetcode-cn.com/problems/delete-node-in-a-bst/) | 删除二叉搜索树中的节点 | | [Java解答](code_java/src/solution/DeleteNodeInBST.java) | | | | 这题非常经典,值得多做十遍 | +| 451 | [Sort Characters By Frequency](https://leetcode-cn.com/problems/sort-characters-by-frequency/) | | | [Java解答](code_java/src/solution/SortCharactersByFrequency.java) | | | | | +| 455 | [Assign Cookies](https://leetcode-cn.com/problems/assign-cookies/) | 分发饼干 | esay | [贪心算法](code_java/src/solution/AssignCookies.java) | | | | | | +| 459 | [Repeated Substring Pattern](https://leetcode-cn.com/problems/repeated-substring-pattern/) | | | [Java解答](code_java/src/solution/RepeatedSubstringPattern.java) | | | | | +| 477 | [Total Hamming Distance](https://leetcode-cn.com/problems/total-hamming-distance/) | | | [Java解答](code_java/src/solution/TotalHammingDistance.java) | | | | | +| 480 | [Sliding Window Median](https://leetcode-cn.com/problems/sliding-window-median/) | | | [Java解答](code_java/src/solution/SlidingWindowMedian.java) | | | | | +| 482 | [License Key Formatting](https://leetcode-cn.com/problems/license-key-formatting/) | | | [Java解答](code_java/src/solution/LicenseKeyFormatting.java) | | | | | +| 483 | [Smallest Good Base](https://leetcode-cn.com/problems/smallest-good-base/) | | | [Java解答](code_java/src/solution/SmallestGoodBase.java) | | | | | +| 485 | [Max Consecutive Ones](https://leetcode-cn.com/problems/max-consecutive-ones/) | | | [Java解答](code_java/src/solution/MaxConsecutiveOnes.java) | | | | | +| 487 | [Max Consecutive Ones II](https://leetcode-cn.com/problems/max-consecutive-ones-ii/) | | | [Java解答](code_java/src/solution/MaxConsecutiveOnesII.java) | | | | | +| 501 | [Find Mode in Binary Search Tree](https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/) | | | [Java解答](code_java/src/solution/FindModeInBinarySearchTree.java) | | | | 不难,容易错,多做两次 | +| 508 | [Most Frequent Subtree Sum](https://leetcode-cn.com/problems/most-frequent-subtree-sum/submissions/) | | | [Java解答](code_java/src/solution/MostFrequentSubtreeSum.java) | | | | | +| 513 | [Find Bottom Left Tree Value](https://leetcode-cn.com/problems/find-bottom-left-tree-value/) | | | [Java解答](code_java/src/solution/FindBottomLeftTreeValue.java) | | | | | +| 515 | [Find Largest Value in Each Tree Row](https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/) | | | [Java解答](code_java/src/solution/FindLargestValueInEachTreeRow.java) | | | | | +| 524 | [Longest Word in Dictionary through Deleting](https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/) | | | [Java解答](code_java/src/solution/LongestWordInDictionaryThroughDeleting.java) | | | | | +| 526 | [Beautiful Arrangement](https://leetcode-cn.com/problems/beautiful-arrangement/) | | | [Java解答](code_java/src/solution/BeautifulArrangement.java) | | | | | +| 535 | [Encode and Decode TinyURL](https://leetcode-cn.com/problems/encode-and-decode-tinyurl/) | | | [Java解答](code_java/src/solution/EncodeAndDecodeTinyURL.java) | | | | | +| 538 | [Convert BST to Greater Tree](https://leetcode-cn.com/problems/convert-bst-to-greater-tree/) | | | [Java解答](code_java/src/solution/ConvertBSTToGreaterTree.java) | | | | | +| 541 | [Reverse String II](https://leetcode-cn.com/problems/reverse-string-ii/) | | | [Java解答](code_java/src/solution/ReverseStringII.java) | | | | | +| 543 | [Diameter of Binary Tree](https://leetcode-cn.com/problems/diameter-of-binary-tree/) | | | [Java解答](code_java/src/solution/DiameterOfBinaryTree.java) | | | | 这题易错 | +| 547 | [Friend Circles](https://leetcode-cn.com/problems/friend-circles/) | | | [Java解答](code_java/src/solution/FriendCircles.java) | | | | | +| 557 | [Reverse Words in a String III](https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/) | | | [Java解答](code_java/src/solution/ReverseWordsInAStringIII.java) | | | | | +| 560 | [Subarray Sum Equals K](https://leetcode-cn.com/problems/subarray-sum-equals-k/) | | | [Java解答](code_java/src/solution/SubarraySumEqualsK.java) | | | | | +| 563 | [Binary Tree Tilt](https://leetcode-cn.com/problems/binary-tree-tilt/) | | | [Java解答](code_java/src/solution/BinaryTreeTilt.java) | | | | | +| 564 | [Find the Closest Palindrome](https://leetcode-cn.com/problems/find-the-closest-palindrome/) | | | [Java解答](code_java/src/solution/FindTheClosestPalindrome.java) | | | | 此题暴力法即可 | +| 572 | [Subtree of Another Tree](https://leetcode-cn.com/problems/subtree-of-another-tree/) | | | [Java解答](code_java/src/solution/SubtreeOfAnotherTree.java) | | | | | +| 606 | [Construct String from Binary Tree](https://leetcode-cn.com/problems/construct-string-from-binary-tree/) | | | [Java解答](code_java/src/solution/ConstructStringFromBinaryTree.java) | | | | | +| 617 | [Merge Two Binary Trees](https://leetcode-cn.com/problems/merge-two-binary-trees/) | | | [Java解答](code_java/src/solution/MergeTwoBinaryTrees.java) | | | | 很简单 | +| 621 | [Task Scheduler](https://leetcode-cn.com/problems/task-scheduler/) | | | [Java解答](code_java/src/solution/TaskScheduler.java) | | | | | +| 637 | [Average of Levels in Binary Tree](https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/#/description) | | | [Java解答](code_java/src/solution/AverageOfLevelsInBinaryTree.java) | | | | | +| 652 | [Find Duplicate Subtrees](https://leetcode-cn.com/problems/find-duplicate-subtrees/) | | | [Java解答](code_java/src/solution/FindDuplicateSubtrees.java) | | | | 开始还没思路 | +| 653 | [Two Sum IV - Input is a BST](https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst/) | | | [Java解答](code_java/src/solution/TwoSumIV.java) | | | | | +| 654 | [Maximum Binary Tree](https://leetcode-cn.com/problems/maximum-binary-tree/description/) | | | [Java解答](code_java/src/solution/MaximumBinaryTree.java) | | | | | +| 669 | [Trim a Binary Search Tree](https://leetcode-cn.com/problems/trim-a-binary-search-tree/) | | | [Java解答](code_java/src/solution/TrimABinarySearchTree.java) | | | | | +| 681 | [Next Closest Time](https://leetcode-cn.com/problems/next-closest-time/) | | | [Java解答](code_java/src/solution/NextClosestTime.java) | | | | 这题多做几遍 | +| 683 | [K Empty Slots](https://leetcode-cn.com/problems/k-empty-slots/) | | | [Java解答](code_java/src/solution/KEmptySlots.java) | | | | | +| 684 | [Redundant Connection](https://leetcode-cn.com/problems/redundant-connection/) | | | [Java解答](code_java/src/solution/RedundantConnection.java) | | | | | +| 687 | [Longest Univalue Path](https://leetcode-cn.com/problems/longest-univalue-path/) | | | [Java解答](code_java/src/solution/LongestUnivaluePath.java) | | | | | +| 695 | [Max Area of Island](https://leetcode-cn.com/problems/max-area-of-island/) | | | [Java解答](code_java/src/solution/MaxAreaOfIsland.java) | | | | | +| 703 | [Kth Largest Element in a Stream](https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/) | 数据流中第K大元素 | medium | [优先级队列解法](code_java/src/solution/KthLargestElementInAStream.java) / [小根堆解法](](code_java/src/solution/KthLargestElementInAStream2.java)) | | | | 优先级队列解法/小根堆解法 | +| 771 | [Jewels and Stones](https://leetcode-cn.com/problems/jewels-and-stones/) | | | [Java解答](code_java/src/solution/JewelsAndStones.java) | | | | | +| 814 | [Binary Tree Pruning](https://leetcode-cn.com/problems/binary-tree-pruning/) | | | [Java解答](code_java/src/solution/JewelsAndStones.java) | | | | | +| 819 | [Most Common Word](https://leetcode-cn.com/problems/most-common-word/) | | | [Java解答](code_java/src/solution/MostCommonWord.java) | | | | | +| 843 | [Guess the Word](https://leetcode-cn.com/problems/guess-the-word/) | | | [Java解答](code_java/src/solution/GuessTheWord.java) | | | | | +| 844 | [Backspace String Compare](https://leetcode-cn.com/problems/backspace-string-compare/) | | | [Java解答](code_java/src/solution/BackspaceStringCompare.java) | | | | | +| 849 | [Maximize Distance to Closest Person](https://leetcode-cn.com/problems/maximize-distance-to-closest-person/) | | | [Java解答](code_java/src/solution/MaximizeDistanceToClosestPerson.java) | | | | | +| 857 | [Minimum Cost to Hire K Workers](https://leetcode-cn.com/problems/minimum-cost-to-hire-k-workers/) | | | [Java解答](code_java/src/solution/MinimumCostToHireKWorkers.java) | | | | | +| 872 | [Leaf-Similar Trees](https://leetcode-cn.com/problems/leaf-similar-trees/) | | | [Java解答](code_java/src/solution/LeafSimilarTrees.java) | | | | | +| 889 | [Construct Binary Tree from Preorder and Postorder Traversal](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/) | | | [Java解答](code_java/src/solution/ConstructBinaryTreeFromPreorderAndPostorderTraversal.java) | | | | | +| 904 | [Fruit Into Baskets](https://leetcode-cn.com/problems/fruit-into-baskets/) | | | [Java解答](code_java/src/solution/FruitIntoBaskets.java) | | | | | +| 929 | [Unique Email Addresses](https://leetcode-cn.com/problems/unique-email-addresses/) | | | [Java解答](code_java/src/solution/UniqueEmailAddresses.java) | | | | | + -- Gitee