From de2e3f6fb01909866293e0d972159b190745ec42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B7=A6=E7=A8=8B=E4=BA=91?= Date: Wed, 30 Dec 2020 15:21:42 +0800 Subject: [PATCH] modify code structure --- .../Code01_SelectionSort.java | 2 +- .../Code02_BubbleSort.java | 2 +- .../Code03_InsertionSort.java | 2 +- .../Code04_BSExist.java | 2 +- .../Code05_BSNearLeft.java | 2 +- .../Code05_BSNearRight.java | 2 +- .../Code06_BSAwesome.java | 2 +- src/{class01_02 => class02}/Code01_Swap.java | 2 +- .../Code02_EvenTimesOddTimes.java | 2 +- src/{class01_02 => class02}/Code03_KM.java | 2 +- .../Code01_ReverseList.java | 2 +- .../Code02_DeleteGivenValue.java | 2 +- ...Code03_DoubleEndsQueueToStackAndQueue.java | 2 +- .../Code04_RingArray.java | 2 +- .../Code05_GetMinStack.java | 2 +- .../Code06_TwoStacksImplementQueue.java | 2 +- .../Code07_TwoQueueImplementStack.java | 2 +- .../Code08_GetMax.java | 2 +- .../HashMapAndSortedMap.java | 2 +- .../Code01_MergeSort.java | 2 +- .../Code02_SmallSum.java | 2 +- .../Code03_ReversePair.java | 2 +- .../Code04_BiggerThanRightTwice.java | 2 +- .../Code01_CountOfRangeSum.java | 2 +- .../Code02_PartitionAndQuickSort.java | 2 +- ...de03_QuickSortRecursiveAndUnrecursive.java | 2 +- .../Code01_Comparator.java | 2 +- src/{class04_06 => class06}/Code02_Heap.java | 2 +- .../Code03_HeapSort.java | 2 +- .../Code04_SortArrayDistanceLessK.java | 2 +- .../Code01_CoverMax.java | 2 +- .../Code02_EveryStepShowBoss.java | 2 +- src/{class04_07 => class07}/HeapGreater.java | 2 +- src/{class04_07 => class07}/Inner.java | 2 +- .../Code01_TrieTree.java | 2 +- .../Code02_TrieTree.java | 2 +- .../Code03_CountSort.java | 2 +- .../Code04_RadixSort.java | 2 +- .../Code01_LinkedListMid.java | 2 +- .../Code02_IsPalindromeList.java | 2 +- .../Code03_SmallerEqualBigger.java | 2 +- .../Code04_CopyListWithRandom.java | 2 +- .../Code01_FindFirstIntersectNode.java | 2 +- .../Code02_RecursiveTraversalBT.java} | 4 +- .../Code03_UnRecursiveTraversalBT.java} | 4 +- .../Code01_LevelTraversalBT.java | 2 +- .../Code02_SerializeAndReconstructTree.java | 2 +- .../Code03_EncodeNaryTreeToBinaryTree.java | 2 +- .../Code04_PrintBinaryTree.java | 2 +- .../Code05_TreeMaxWidth.java | 2 +- .../Code06_SuccessorNode.java | 2 +- .../Code07_PaperFolding.java | 2 +- .../Code03_PrintAllPermutations.java | 88 -------------- src/class11_17/Code07_Knapsack.java | 79 ------------- src/class11_17/Code08_CardsInLine.java | 82 ------------- src/{class08_12 => class12}/Code01_IsCBT.java | 2 +- src/{class08_12 => class12}/Code02_IsBST.java | 2 +- .../Code03_IsBalanced.java | 2 +- .../Code04_IsFull.java | 2 +- .../Code05_MaxSubBSTSize.java | 2 +- .../Code06_MaxDistance.java | 2 +- src/{class08_13 => class13}/Code01_IsCBT.java | 2 +- .../Code02_MaxSubBSTHead.java | 2 +- .../Code03_lowestAncestor.java | 2 +- .../Code04_MaxHappy.java | 2 +- .../Code05_LowestLexicography.java} | 4 +- src/{class09_14 => class14}/Code01_Light.java | 2 +- .../Code02_LessMoneySplitGold.java | 2 +- .../Code03_BestArrange.java | 2 +- src/{class09_14 => class14}/Code04_IPO.java | 2 +- .../Code05_UnionFind.java | 2 +- .../Code01_FriendCircles.java | 2 +- .../Code02_NumberOfIslands.java | 2 +- .../Code03_NumberOfIslandsII.java | 2 +- src/{class10_16 => class16}/Code01_BFS.java | 2 +- src/{class10_16 => class16}/Code02_DFS.java | 2 +- .../Code03_TopologicalOrderBFS.java | 2 +- .../Code03_TopologicalOrderDFS1.java | 2 +- .../Code03_TopologicalOrderDFS2.java | 2 +- .../Code03_TopologySort.java | 2 +- .../Code04_Kruskal.java | 2 +- src/{class10_16 => class16}/Code05_Prim.java | 2 +- .../Code06_Dijkstra.java | 2 +- src/{class10_16 => class16}/Edge.java | 2 +- src/{class10_16 => class16}/Graph.java | 2 +- .../GraphGenerator.java | 2 +- src/{class10_17 => class16}/Node.java | 2 +- .../Code01_Dijkstra.java | 22 ++-- .../Code02_Hanoi.java} | 11 +- .../Code03_PrintAllSubsquences.java} | 29 ++--- src/class17/Code04_PrintAllPermutations.java | 110 ++++++++++++++++++ .../Code05_ReverseStackUsingRecursive.java} | 7 +- src/{class10_17 => class17}/Edge.java | 2 +- src/{class10_17 => class17}/Graph.java | 2 +- src/{class10_16 => class17}/Node.java | 2 +- .../Code01_RobotWalk.java | 2 +- .../Code02_StickersToSpellWord.java | 2 +- src/{class12 => class18}/Code03_Knapsack.java | 2 +- .../Code04_CardsInLine.java | 2 +- .../Code05_ConvertToLetterString.java} | 10 +- .../Code01_LongestCommonSubsequence.java} | 4 +- .../Code02_PalindromeSubsequence.java} | 4 +- .../Code03_HorseJump.java} | 4 +- .../Code04_Coffee.java} | 4 +- .../Code05_MinPathSum.java} | 4 +- .../Code01_CoinsWay.java} | 4 +- .../Code02_SplitSumClosed.java} | 4 +- .../Code03_SplitSumClosedSizeHalf.java} | 4 +- .../Code04_NQueens.java} | 4 +- 109 files changed, 264 insertions(+), 398 deletions(-) rename src/{class01_01 => class01}/Code01_SelectionSort.java (99%) rename src/{class01_01 => class01}/Code02_BubbleSort.java (99%) rename src/{class01_01 => class01}/Code03_InsertionSort.java (99%) rename src/{class01_01 => class01}/Code04_BSExist.java (98%) rename src/{class01_01 => class01}/Code05_BSNearLeft.java (98%) rename src/{class01_01 => class01}/Code05_BSNearRight.java (98%) rename src/{class01_01 => class01}/Code06_BSAwesome.java (96%) rename src/{class01_02 => class02}/Code01_Swap.java (97%) rename src/{class01_02 => class02}/Code02_EvenTimesOddTimes.java (98%) rename src/{class01_02 => class02}/Code03_KM.java (99%) rename src/{class02_03 => class03}/Code01_ReverseList.java (99%) rename src/{class02_03 => class03}/Code02_DeleteGivenValue.java (96%) rename src/{class02_03 => class03}/Code03_DoubleEndsQueueToStackAndQueue.java (99%) rename src/{class02_03 => class03}/Code04_RingArray.java (97%) rename src/{class02_03 => class03}/Code05_GetMinStack.java (99%) rename src/{class02_03 => class03}/Code06_TwoStacksImplementQueue.java (98%) rename src/{class02_03 => class03}/Code07_TwoQueueImplementStack.java (98%) rename src/{class02_03 => class03}/Code08_GetMax.java (96%) rename src/{class02_03 => class03}/HashMapAndSortedMap.java (95%) rename src/{class03_04 => class04}/Code01_MergeSort.java (99%) rename src/{class03_04 => class04}/Code02_SmallSum.java (99%) rename src/{class03_04 => class04}/Code03_ReversePair.java (99%) rename src/{class03_04 => class04}/Code04_BiggerThanRightTwice.java (99%) rename src/{class03_05 => class05}/Code01_CountOfRangeSum.java (98%) rename src/{class03_05 => class05}/Code02_PartitionAndQuickSort.java (99%) rename src/{class03_05 => class05}/Code03_QuickSortRecursiveAndUnrecursive.java (99%) rename src/{class04_06 => class06}/Code01_Comparator.java (99%) rename src/{class04_06 => class06}/Code02_Heap.java (99%) rename src/{class04_06 => class06}/Code03_HeapSort.java (99%) rename src/{class04_06 => class06}/Code04_SortArrayDistanceLessK.java (99%) rename src/{class04_07 => class07}/Code01_CoverMax.java (99%) rename src/{class04_07 => class07}/Code02_EveryStepShowBoss.java (99%) rename src/{class04_07 => class07}/HeapGreater.java (99%) rename src/{class04_07 => class07}/Inner.java (80%) rename src/{class05_08 => class08}/Code01_TrieTree.java (99%) rename src/{class05_08 => class08}/Code02_TrieTree.java (99%) rename src/{class05_08 => class08}/Code03_CountSort.java (99%) rename src/{class05_08 => class08}/Code04_RadixSort.java (99%) rename src/{class06_09 => class09}/Code01_LinkedListMid.java (99%) rename src/{class06_09 => class09}/Code02_IsPalindromeList.java (99%) rename src/{class06_09 => class09}/Code03_SmallerEqualBigger.java (99%) rename src/{class06_09 => class09}/Code04_CopyListWithRandom.java (99%) rename src/{class06_10 => class10}/Code01_FindFirstIntersectNode.java (99%) rename src/{class07_10/Code01_RecursiveTraversalBT.java => class10/Code02_RecursiveTraversalBT.java} (94%) rename src/{class07_10/Code02_UnRecursiveTraversalBT.java => class10/Code03_UnRecursiveTraversalBT.java} (97%) rename src/{class07_11 => class11}/Code01_LevelTraversalBT.java (97%) rename src/{class07_11 => class11}/Code02_SerializeAndReconstructTree.java (99%) rename src/{class07_11 => class11}/Code03_EncodeNaryTreeToBinaryTree.java (98%) rename src/{class07_11 => class11}/Code04_PrintBinaryTree.java (98%) rename src/{class07_11 => class11}/Code05_TreeMaxWidth.java (99%) rename src/{class07_11 => class11}/Code06_SuccessorNode.java (99%) rename src/{class07_11 => class11}/Code07_PaperFolding.java (97%) delete mode 100644 src/class11_17/Code03_PrintAllPermutations.java delete mode 100644 src/class11_17/Code07_Knapsack.java delete mode 100644 src/class11_17/Code08_CardsInLine.java rename src/{class08_12 => class12}/Code01_IsCBT.java (99%) rename src/{class08_12 => class12}/Code02_IsBST.java (99%) rename src/{class08_12 => class12}/Code03_IsBalanced.java (99%) rename src/{class08_12 => class12}/Code04_IsFull.java (99%) rename src/{class08_12 => class12}/Code05_MaxSubBSTSize.java (99%) rename src/{class08_12 => class12}/Code06_MaxDistance.java (99%) rename src/{class08_13 => class13}/Code01_IsCBT.java (99%) rename src/{class08_13 => class13}/Code02_MaxSubBSTHead.java (99%) rename src/{class08_13 => class13}/Code03_lowestAncestor.java (99%) rename src/{class08_13 => class13}/Code04_MaxHappy.java (99%) rename src/{class09_13/Code01_LowestLexicography.java => class13/Code05_LowestLexicography.java} (97%) rename src/{class09_14 => class14}/Code01_Light.java (95%) rename src/{class09_14 => class14}/Code02_LessMoneySplitGold.java (98%) rename src/{class09_14 => class14}/Code03_BestArrange.java (99%) rename src/{class09_14 => class14}/Code04_IPO.java (98%) rename src/{class09_14 => class14}/Code05_UnionFind.java (94%) rename src/{class09_15 => class15}/Code01_FriendCircles.java (98%) rename src/{class09_15 => class15}/Code02_NumberOfIslands.java (99%) rename src/{class09_15 => class15}/Code03_NumberOfIslandsII.java (99%) rename src/{class10_16 => class16}/Code01_BFS.java (96%) rename src/{class10_16 => class16}/Code02_DFS.java (96%) rename src/{class10_16 => class16}/Code03_TopologicalOrderBFS.java (98%) rename src/{class10_16 => class16}/Code03_TopologicalOrderDFS1.java (98%) rename src/{class10_16 => class16}/Code03_TopologicalOrderDFS2.java (98%) rename src/{class10_16 => class16}/Code03_TopologySort.java (97%) rename src/{class10_16 => class16}/Code04_Kruskal.java (99%) rename src/{class10_16 => class16}/Code05_Prim.java (99%) rename src/{class10_16 => class16}/Code06_Dijkstra.java (99%) rename src/{class10_16 => class16}/Edge.java (90%) rename src/{class10_16 => class16}/Graph.java (91%) rename src/{class10_16 => class16}/GraphGenerator.java (97%) rename src/{class10_17 => class16}/Node.java (94%) rename src/{class10_17 => class17}/Code01_Dijkstra.java (91%) rename src/{class11_17/Code01_Hanoi.java => class17/Code02_Hanoi.java} (94%) rename src/{class11_17/Code02_PrintAllSubsquences.java => class17/Code03_PrintAllSubsquences.java} (64%) create mode 100644 src/class17/Code04_PrintAllPermutations.java rename src/{class11_17/Code04_ReverseStackUsingRecursive.java => class17/Code05_ReverseStackUsingRecursive.java} (80%) rename src/{class10_17 => class17}/Edge.java (90%) rename src/{class10_17 => class17}/Graph.java (91%) rename src/{class10_16 => class17}/Node.java (94%) rename src/{class12 => class18}/Code01_RobotWalk.java (99%) rename src/{class12 => class18}/Code02_StickersToSpellWord.java (99%) rename src/{class12 => class18}/Code03_Knapsack.java (99%) rename src/{class12 => class18}/Code04_CardsInLine.java (98%) rename src/{class11_17/Code06_ConvertToLetterString.java => class18/Code05_ConvertToLetterString.java} (88%) rename src/{class12/Code05_LongestCommonSubsequence.java => class19/Code01_LongestCommonSubsequence.java} (96%) rename src/{class12/Code05_PalindromeSubsequence.java => class19/Code02_PalindromeSubsequence.java} (92%) rename src/{class12/Code07_HorseJump.java => class19/Code03_HorseJump.java} (97%) rename src/{class12/Code06_Coffee.java => class19/Code04_Coffee.java} (99%) rename src/{class12/Code08_MinPathSum.java => class19/Code05_MinPathSum.java} (97%) rename src/{class12/Code09_CoinsWay.java => class20/Code01_CoinsWay.java} (98%) rename src/{class12/Code10_SplitSumClosed.java => class20/Code02_SplitSumClosed.java} (97%) rename src/{class12/Code11_SplitSumClosedSizeHalf.java => class20/Code03_SplitSumClosedSizeHalf.java} (98%) rename src/{class11_17/Code09_NQueens.java => class20/Code04_NQueens.java} (98%) diff --git a/src/class01_01/Code01_SelectionSort.java b/src/class01/Code01_SelectionSort.java similarity index 99% rename from src/class01_01/Code01_SelectionSort.java rename to src/class01/Code01_SelectionSort.java index a5e4393..c9b5738 100644 --- a/src/class01_01/Code01_SelectionSort.java +++ b/src/class01/Code01_SelectionSort.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code02_BubbleSort.java b/src/class01/Code02_BubbleSort.java similarity index 99% rename from src/class01_01/Code02_BubbleSort.java rename to src/class01/Code02_BubbleSort.java index 73fa617..14b6e47 100644 --- a/src/class01_01/Code02_BubbleSort.java +++ b/src/class01/Code02_BubbleSort.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code03_InsertionSort.java b/src/class01/Code03_InsertionSort.java similarity index 99% rename from src/class01_01/Code03_InsertionSort.java rename to src/class01/Code03_InsertionSort.java index 5e121b9..7283369 100644 --- a/src/class01_01/Code03_InsertionSort.java +++ b/src/class01/Code03_InsertionSort.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code04_BSExist.java b/src/class01/Code04_BSExist.java similarity index 98% rename from src/class01_01/Code04_BSExist.java rename to src/class01/Code04_BSExist.java index 0ea49cd..d89be00 100644 --- a/src/class01_01/Code04_BSExist.java +++ b/src/class01/Code04_BSExist.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code05_BSNearLeft.java b/src/class01/Code05_BSNearLeft.java similarity index 98% rename from src/class01_01/Code05_BSNearLeft.java rename to src/class01/Code05_BSNearLeft.java index a0ef0f0..eaf5804 100644 --- a/src/class01_01/Code05_BSNearLeft.java +++ b/src/class01/Code05_BSNearLeft.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code05_BSNearRight.java b/src/class01/Code05_BSNearRight.java similarity index 98% rename from src/class01_01/Code05_BSNearRight.java rename to src/class01/Code05_BSNearRight.java index 499eaac..f3b6f25 100644 --- a/src/class01_01/Code05_BSNearRight.java +++ b/src/class01/Code05_BSNearRight.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; import java.util.Arrays; diff --git a/src/class01_01/Code06_BSAwesome.java b/src/class01/Code06_BSAwesome.java similarity index 96% rename from src/class01_01/Code06_BSAwesome.java rename to src/class01/Code06_BSAwesome.java index e3d1d73..bdca00d 100644 --- a/src/class01_01/Code06_BSAwesome.java +++ b/src/class01/Code06_BSAwesome.java @@ -1,4 +1,4 @@ -package class01_01; +package class01; public class Code06_BSAwesome { diff --git a/src/class01_02/Code01_Swap.java b/src/class02/Code01_Swap.java similarity index 97% rename from src/class01_02/Code01_Swap.java rename to src/class02/Code01_Swap.java index aa86cf1..c625614 100644 --- a/src/class01_02/Code01_Swap.java +++ b/src/class02/Code01_Swap.java @@ -1,4 +1,4 @@ -package class01_02; +package class02; public class Code01_Swap { diff --git a/src/class01_02/Code02_EvenTimesOddTimes.java b/src/class02/Code02_EvenTimesOddTimes.java similarity index 98% rename from src/class01_02/Code02_EvenTimesOddTimes.java rename to src/class02/Code02_EvenTimesOddTimes.java index ad40cc0..13ac877 100644 --- a/src/class01_02/Code02_EvenTimesOddTimes.java +++ b/src/class02/Code02_EvenTimesOddTimes.java @@ -1,4 +1,4 @@ -package class01_02; +package class02; public class Code02_EvenTimesOddTimes { diff --git a/src/class01_02/Code03_KM.java b/src/class02/Code03_KM.java similarity index 99% rename from src/class01_02/Code03_KM.java rename to src/class02/Code03_KM.java index 69d70c5..abd03b4 100644 --- a/src/class01_02/Code03_KM.java +++ b/src/class02/Code03_KM.java @@ -1,4 +1,4 @@ -package class01_02; +package class02; import java.util.HashMap; import java.util.HashSet; diff --git a/src/class02_03/Code01_ReverseList.java b/src/class03/Code01_ReverseList.java similarity index 99% rename from src/class02_03/Code01_ReverseList.java rename to src/class03/Code01_ReverseList.java index e055459..4b0318a 100644 --- a/src/class02_03/Code01_ReverseList.java +++ b/src/class03/Code01_ReverseList.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.ArrayList; import java.util.List; diff --git a/src/class02_03/Code02_DeleteGivenValue.java b/src/class03/Code02_DeleteGivenValue.java similarity index 96% rename from src/class02_03/Code02_DeleteGivenValue.java rename to src/class03/Code02_DeleteGivenValue.java index 921cc3a..647047a 100644 --- a/src/class02_03/Code02_DeleteGivenValue.java +++ b/src/class03/Code02_DeleteGivenValue.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; public class Code02_DeleteGivenValue { diff --git a/src/class02_03/Code03_DoubleEndsQueueToStackAndQueue.java b/src/class03/Code03_DoubleEndsQueueToStackAndQueue.java similarity index 99% rename from src/class02_03/Code03_DoubleEndsQueueToStackAndQueue.java rename to src/class03/Code03_DoubleEndsQueueToStackAndQueue.java index 3ac6763..c533b47 100644 --- a/src/class02_03/Code03_DoubleEndsQueueToStackAndQueue.java +++ b/src/class03/Code03_DoubleEndsQueueToStackAndQueue.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.LinkedList; import java.util.Queue; diff --git a/src/class02_03/Code04_RingArray.java b/src/class03/Code04_RingArray.java similarity index 97% rename from src/class02_03/Code04_RingArray.java rename to src/class03/Code04_RingArray.java index a0716ef..cad73b4 100644 --- a/src/class02_03/Code04_RingArray.java +++ b/src/class03/Code04_RingArray.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; public class Code04_RingArray { diff --git a/src/class02_03/Code05_GetMinStack.java b/src/class03/Code05_GetMinStack.java similarity index 99% rename from src/class02_03/Code05_GetMinStack.java rename to src/class03/Code05_GetMinStack.java index 26371f0..91b20ae 100644 --- a/src/class02_03/Code05_GetMinStack.java +++ b/src/class03/Code05_GetMinStack.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.Stack; diff --git a/src/class02_03/Code06_TwoStacksImplementQueue.java b/src/class03/Code06_TwoStacksImplementQueue.java similarity index 98% rename from src/class02_03/Code06_TwoStacksImplementQueue.java rename to src/class03/Code06_TwoStacksImplementQueue.java index 1a9dcd0..483d7a7 100644 --- a/src/class02_03/Code06_TwoStacksImplementQueue.java +++ b/src/class03/Code06_TwoStacksImplementQueue.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.Stack; diff --git a/src/class02_03/Code07_TwoQueueImplementStack.java b/src/class03/Code07_TwoQueueImplementStack.java similarity index 98% rename from src/class02_03/Code07_TwoQueueImplementStack.java rename to src/class03/Code07_TwoQueueImplementStack.java index 89bc5cb..a2a3c54 100644 --- a/src/class02_03/Code07_TwoQueueImplementStack.java +++ b/src/class03/Code07_TwoQueueImplementStack.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.LinkedList; import java.util.Queue; diff --git a/src/class02_03/Code08_GetMax.java b/src/class03/Code08_GetMax.java similarity index 96% rename from src/class02_03/Code08_GetMax.java rename to src/class03/Code08_GetMax.java index 6ccb006..81661d8 100644 --- a/src/class02_03/Code08_GetMax.java +++ b/src/class03/Code08_GetMax.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; public class Code08_GetMax { diff --git a/src/class02_03/HashMapAndSortedMap.java b/src/class03/HashMapAndSortedMap.java similarity index 95% rename from src/class02_03/HashMapAndSortedMap.java rename to src/class03/HashMapAndSortedMap.java index 440e278..bd54a06 100644 --- a/src/class02_03/HashMapAndSortedMap.java +++ b/src/class03/HashMapAndSortedMap.java @@ -1,4 +1,4 @@ -package class02_03; +package class03; import java.util.HashMap; import java.util.HashSet; diff --git a/src/class03_04/Code01_MergeSort.java b/src/class04/Code01_MergeSort.java similarity index 99% rename from src/class03_04/Code01_MergeSort.java rename to src/class04/Code01_MergeSort.java index a9d0448..c0ddb6b 100644 --- a/src/class03_04/Code01_MergeSort.java +++ b/src/class04/Code01_MergeSort.java @@ -1,4 +1,4 @@ -package class03_04; +package class04; public class Code01_MergeSort { diff --git a/src/class03_04/Code02_SmallSum.java b/src/class04/Code02_SmallSum.java similarity index 99% rename from src/class03_04/Code02_SmallSum.java rename to src/class04/Code02_SmallSum.java index 0211b51..1167a64 100644 --- a/src/class03_04/Code02_SmallSum.java +++ b/src/class04/Code02_SmallSum.java @@ -1,4 +1,4 @@ -package class03_04; +package class04; public class Code02_SmallSum { diff --git a/src/class03_04/Code03_ReversePair.java b/src/class04/Code03_ReversePair.java similarity index 99% rename from src/class03_04/Code03_ReversePair.java rename to src/class04/Code03_ReversePair.java index 524b769..0e6e531 100644 --- a/src/class03_04/Code03_ReversePair.java +++ b/src/class04/Code03_ReversePair.java @@ -1,4 +1,4 @@ -package class03_04; +package class04; public class Code03_ReversePair { diff --git a/src/class03_04/Code04_BiggerThanRightTwice.java b/src/class04/Code04_BiggerThanRightTwice.java similarity index 99% rename from src/class03_04/Code04_BiggerThanRightTwice.java rename to src/class04/Code04_BiggerThanRightTwice.java index 6b04d66..61a6a26 100644 --- a/src/class03_04/Code04_BiggerThanRightTwice.java +++ b/src/class04/Code04_BiggerThanRightTwice.java @@ -1,4 +1,4 @@ -package class03_04; +package class04; public class Code04_BiggerThanRightTwice { diff --git a/src/class03_05/Code01_CountOfRangeSum.java b/src/class05/Code01_CountOfRangeSum.java similarity index 98% rename from src/class03_05/Code01_CountOfRangeSum.java rename to src/class05/Code01_CountOfRangeSum.java index 5e703bd..559a7d8 100644 --- a/src/class03_05/Code01_CountOfRangeSum.java +++ b/src/class05/Code01_CountOfRangeSum.java @@ -1,4 +1,4 @@ -package class03_05; +package class05; // 这道题直接在leetcode测评: // https://leetcode.com/problems/count-of-range-sum/ diff --git a/src/class03_05/Code02_PartitionAndQuickSort.java b/src/class05/Code02_PartitionAndQuickSort.java similarity index 99% rename from src/class03_05/Code02_PartitionAndQuickSort.java rename to src/class05/Code02_PartitionAndQuickSort.java index 2e5a1d0..e8a9d7a 100644 --- a/src/class03_05/Code02_PartitionAndQuickSort.java +++ b/src/class05/Code02_PartitionAndQuickSort.java @@ -1,4 +1,4 @@ -package class03_05; +package class05; public class Code02_PartitionAndQuickSort { diff --git a/src/class03_05/Code03_QuickSortRecursiveAndUnrecursive.java b/src/class05/Code03_QuickSortRecursiveAndUnrecursive.java similarity index 99% rename from src/class03_05/Code03_QuickSortRecursiveAndUnrecursive.java rename to src/class05/Code03_QuickSortRecursiveAndUnrecursive.java index da05cf5..41609aa 100644 --- a/src/class03_05/Code03_QuickSortRecursiveAndUnrecursive.java +++ b/src/class05/Code03_QuickSortRecursiveAndUnrecursive.java @@ -1,4 +1,4 @@ -package class03_05; +package class05; import java.util.Stack; diff --git a/src/class04_06/Code01_Comparator.java b/src/class06/Code01_Comparator.java similarity index 99% rename from src/class04_06/Code01_Comparator.java rename to src/class06/Code01_Comparator.java index e1539ef..af23b64 100644 --- a/src/class04_06/Code01_Comparator.java +++ b/src/class06/Code01_Comparator.java @@ -1,4 +1,4 @@ -package class04_06; +package class06; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/class04_06/Code02_Heap.java b/src/class06/Code02_Heap.java similarity index 99% rename from src/class04_06/Code02_Heap.java rename to src/class06/Code02_Heap.java index 270c5b6..e5dd85c 100644 --- a/src/class04_06/Code02_Heap.java +++ b/src/class06/Code02_Heap.java @@ -1,4 +1,4 @@ -package class04_06; +package class06; import java.util.Comparator; import java.util.PriorityQueue; diff --git a/src/class04_06/Code03_HeapSort.java b/src/class06/Code03_HeapSort.java similarity index 99% rename from src/class04_06/Code03_HeapSort.java rename to src/class06/Code03_HeapSort.java index 7a255bd..49e743a 100644 --- a/src/class04_06/Code03_HeapSort.java +++ b/src/class06/Code03_HeapSort.java @@ -1,4 +1,4 @@ -package class04_06; +package class06; import java.util.Arrays; import java.util.PriorityQueue; diff --git a/src/class04_06/Code04_SortArrayDistanceLessK.java b/src/class06/Code04_SortArrayDistanceLessK.java similarity index 99% rename from src/class04_06/Code04_SortArrayDistanceLessK.java rename to src/class06/Code04_SortArrayDistanceLessK.java index bf552f5..0d1b1ea 100644 --- a/src/class04_06/Code04_SortArrayDistanceLessK.java +++ b/src/class06/Code04_SortArrayDistanceLessK.java @@ -1,4 +1,4 @@ -package class04_06; +package class06; import java.util.Arrays; import java.util.PriorityQueue; diff --git a/src/class04_07/Code01_CoverMax.java b/src/class07/Code01_CoverMax.java similarity index 99% rename from src/class04_07/Code01_CoverMax.java rename to src/class07/Code01_CoverMax.java index ed264fb..51cfd03 100644 --- a/src/class04_07/Code01_CoverMax.java +++ b/src/class07/Code01_CoverMax.java @@ -1,4 +1,4 @@ -package class04_07; +package class07; import java.util.Arrays; import java.util.Comparator; diff --git a/src/class04_07/Code02_EveryStepShowBoss.java b/src/class07/Code02_EveryStepShowBoss.java similarity index 99% rename from src/class04_07/Code02_EveryStepShowBoss.java rename to src/class07/Code02_EveryStepShowBoss.java index 9ee460b..a4c123b 100644 --- a/src/class04_07/Code02_EveryStepShowBoss.java +++ b/src/class07/Code02_EveryStepShowBoss.java @@ -1,4 +1,4 @@ -package class04_07; +package class07; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/class04_07/HeapGreater.java b/src/class07/HeapGreater.java similarity index 99% rename from src/class04_07/HeapGreater.java rename to src/class07/HeapGreater.java index 85032d7..eab68a4 100644 --- a/src/class04_07/HeapGreater.java +++ b/src/class07/HeapGreater.java @@ -1,4 +1,4 @@ -package class04_07; +package class07; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/class04_07/Inner.java b/src/class07/Inner.java similarity index 80% rename from src/class04_07/Inner.java rename to src/class07/Inner.java index 595b69d..d3d5326 100644 --- a/src/class04_07/Inner.java +++ b/src/class07/Inner.java @@ -1,4 +1,4 @@ -package class04_07; +package class07; public class Inner { public T value; diff --git a/src/class05_08/Code01_TrieTree.java b/src/class08/Code01_TrieTree.java similarity index 99% rename from src/class05_08/Code01_TrieTree.java rename to src/class08/Code01_TrieTree.java index b65b641..f7f9cf1 100644 --- a/src/class05_08/Code01_TrieTree.java +++ b/src/class08/Code01_TrieTree.java @@ -1,4 +1,4 @@ -package class05_08; +package class08; import java.util.HashMap; diff --git a/src/class05_08/Code02_TrieTree.java b/src/class08/Code02_TrieTree.java similarity index 99% rename from src/class05_08/Code02_TrieTree.java rename to src/class08/Code02_TrieTree.java index 3de857c..44d35cf 100644 --- a/src/class05_08/Code02_TrieTree.java +++ b/src/class08/Code02_TrieTree.java @@ -1,4 +1,4 @@ -package class05_08; +package class08; import java.util.HashMap; diff --git a/src/class05_08/Code03_CountSort.java b/src/class08/Code03_CountSort.java similarity index 99% rename from src/class05_08/Code03_CountSort.java rename to src/class08/Code03_CountSort.java index 2a7efb9..d7864ec 100644 --- a/src/class05_08/Code03_CountSort.java +++ b/src/class08/Code03_CountSort.java @@ -1,4 +1,4 @@ -package class05_08; +package class08; import java.util.Arrays; diff --git a/src/class05_08/Code04_RadixSort.java b/src/class08/Code04_RadixSort.java similarity index 99% rename from src/class05_08/Code04_RadixSort.java rename to src/class08/Code04_RadixSort.java index 7a131ad..af35db3 100644 --- a/src/class05_08/Code04_RadixSort.java +++ b/src/class08/Code04_RadixSort.java @@ -1,4 +1,4 @@ -package class05_08; +package class08; import java.util.Arrays; diff --git a/src/class06_09/Code01_LinkedListMid.java b/src/class09/Code01_LinkedListMid.java similarity index 99% rename from src/class06_09/Code01_LinkedListMid.java rename to src/class09/Code01_LinkedListMid.java index c406ae5..3283443 100644 --- a/src/class06_09/Code01_LinkedListMid.java +++ b/src/class09/Code01_LinkedListMid.java @@ -1,4 +1,4 @@ -package class06_09; +package class09; import java.util.ArrayList; diff --git a/src/class06_09/Code02_IsPalindromeList.java b/src/class09/Code02_IsPalindromeList.java similarity index 99% rename from src/class06_09/Code02_IsPalindromeList.java rename to src/class09/Code02_IsPalindromeList.java index 75353bd..63d6eed 100644 --- a/src/class06_09/Code02_IsPalindromeList.java +++ b/src/class09/Code02_IsPalindromeList.java @@ -1,4 +1,4 @@ -package class06_09; +package class09; import java.util.Stack; diff --git a/src/class06_09/Code03_SmallerEqualBigger.java b/src/class09/Code03_SmallerEqualBigger.java similarity index 99% rename from src/class06_09/Code03_SmallerEqualBigger.java rename to src/class09/Code03_SmallerEqualBigger.java index 6ec2d96..33203e4 100644 --- a/src/class06_09/Code03_SmallerEqualBigger.java +++ b/src/class09/Code03_SmallerEqualBigger.java @@ -1,4 +1,4 @@ -package class06_09; +package class09; public class Code03_SmallerEqualBigger { diff --git a/src/class06_09/Code04_CopyListWithRandom.java b/src/class09/Code04_CopyListWithRandom.java similarity index 99% rename from src/class06_09/Code04_CopyListWithRandom.java rename to src/class09/Code04_CopyListWithRandom.java index 7ae03d7..27ec73b 100644 --- a/src/class06_09/Code04_CopyListWithRandom.java +++ b/src/class09/Code04_CopyListWithRandom.java @@ -1,4 +1,4 @@ -package class06_09; +package class09; import java.util.HashMap; diff --git a/src/class06_10/Code01_FindFirstIntersectNode.java b/src/class10/Code01_FindFirstIntersectNode.java similarity index 99% rename from src/class06_10/Code01_FindFirstIntersectNode.java rename to src/class10/Code01_FindFirstIntersectNode.java index 473b4f8..8cec65d 100644 --- a/src/class06_10/Code01_FindFirstIntersectNode.java +++ b/src/class10/Code01_FindFirstIntersectNode.java @@ -1,4 +1,4 @@ -package class06_10; +package class10; public class Code01_FindFirstIntersectNode { diff --git a/src/class07_10/Code01_RecursiveTraversalBT.java b/src/class10/Code02_RecursiveTraversalBT.java similarity index 94% rename from src/class07_10/Code01_RecursiveTraversalBT.java rename to src/class10/Code02_RecursiveTraversalBT.java index 5027b7f..c7f2b2c 100644 --- a/src/class07_10/Code01_RecursiveTraversalBT.java +++ b/src/class10/Code02_RecursiveTraversalBT.java @@ -1,6 +1,6 @@ -package class07_10; +package class10; -public class Code01_RecursiveTraversalBT { +public class Code02_RecursiveTraversalBT { public static class Node { public int value; diff --git a/src/class07_10/Code02_UnRecursiveTraversalBT.java b/src/class10/Code03_UnRecursiveTraversalBT.java similarity index 97% rename from src/class07_10/Code02_UnRecursiveTraversalBT.java rename to src/class10/Code03_UnRecursiveTraversalBT.java index 4b4e857..96ef25e 100644 --- a/src/class07_10/Code02_UnRecursiveTraversalBT.java +++ b/src/class10/Code03_UnRecursiveTraversalBT.java @@ -1,8 +1,8 @@ -package class07_10; +package class10; import java.util.Stack; -public class Code02_UnRecursiveTraversalBT { +public class Code03_UnRecursiveTraversalBT { public static class Node { public int value; diff --git a/src/class07_11/Code01_LevelTraversalBT.java b/src/class11/Code01_LevelTraversalBT.java similarity index 97% rename from src/class07_11/Code01_LevelTraversalBT.java rename to src/class11/Code01_LevelTraversalBT.java index 2a377c3..12e8ef0 100644 --- a/src/class07_11/Code01_LevelTraversalBT.java +++ b/src/class11/Code01_LevelTraversalBT.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; import java.util.LinkedList; import java.util.Queue; diff --git a/src/class07_11/Code02_SerializeAndReconstructTree.java b/src/class11/Code02_SerializeAndReconstructTree.java similarity index 99% rename from src/class07_11/Code02_SerializeAndReconstructTree.java rename to src/class11/Code02_SerializeAndReconstructTree.java index af5e5de..6e6da7e 100644 --- a/src/class07_11/Code02_SerializeAndReconstructTree.java +++ b/src/class11/Code02_SerializeAndReconstructTree.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; import java.util.LinkedList; import java.util.Queue; diff --git a/src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java b/src/class11/Code03_EncodeNaryTreeToBinaryTree.java similarity index 98% rename from src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java rename to src/class11/Code03_EncodeNaryTreeToBinaryTree.java index 67aa777..aa9f2ab 100644 --- a/src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java +++ b/src/class11/Code03_EncodeNaryTreeToBinaryTree.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; import java.util.ArrayList; import java.util.List; diff --git a/src/class07_11/Code04_PrintBinaryTree.java b/src/class11/Code04_PrintBinaryTree.java similarity index 98% rename from src/class07_11/Code04_PrintBinaryTree.java rename to src/class11/Code04_PrintBinaryTree.java index 64aeb7e..75125f7 100644 --- a/src/class07_11/Code04_PrintBinaryTree.java +++ b/src/class11/Code04_PrintBinaryTree.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; public class Code04_PrintBinaryTree { diff --git a/src/class07_11/Code05_TreeMaxWidth.java b/src/class11/Code05_TreeMaxWidth.java similarity index 99% rename from src/class07_11/Code05_TreeMaxWidth.java rename to src/class11/Code05_TreeMaxWidth.java index 0c6d613..787bd01 100644 --- a/src/class07_11/Code05_TreeMaxWidth.java +++ b/src/class11/Code05_TreeMaxWidth.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; import java.util.HashMap; import java.util.LinkedList; diff --git a/src/class07_11/Code06_SuccessorNode.java b/src/class11/Code06_SuccessorNode.java similarity index 99% rename from src/class07_11/Code06_SuccessorNode.java rename to src/class11/Code06_SuccessorNode.java index 5133db6..b33d4b5 100644 --- a/src/class07_11/Code06_SuccessorNode.java +++ b/src/class11/Code06_SuccessorNode.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; public class Code06_SuccessorNode { diff --git a/src/class07_11/Code07_PaperFolding.java b/src/class11/Code07_PaperFolding.java similarity index 97% rename from src/class07_11/Code07_PaperFolding.java rename to src/class11/Code07_PaperFolding.java index 0a2b72f..3f3b0db 100644 --- a/src/class07_11/Code07_PaperFolding.java +++ b/src/class11/Code07_PaperFolding.java @@ -1,4 +1,4 @@ -package class07_11; +package class11; public class Code07_PaperFolding { diff --git a/src/class11_17/Code03_PrintAllPermutations.java b/src/class11_17/Code03_PrintAllPermutations.java deleted file mode 100644 index 332acf4..0000000 --- a/src/class11_17/Code03_PrintAllPermutations.java +++ /dev/null @@ -1,88 +0,0 @@ -package class11_17; - -import java.util.ArrayList; -import java.util.List; - -public class Code03_PrintAllPermutations { - - public static ArrayList permutation(String str) { - ArrayList res = new ArrayList<>(); - if (str == null || str.length() == 0) { - return res; - } - char[] chs = str.toCharArray(); - process(chs, 0, res); - return res; - } - - // str[0..i-1]已经做好决定的 - // str[i...]都有机会来到i位置 - // i终止位置,str当前的样子,就是一种结果 -> ans - public static void process(char[] str, int i, ArrayList ans) { - if (i == str.length) { - ans.add(String.valueOf(str)); - } - // 如果i没有终止,i... 都可以来到i位置 - for (int j = i; j < str.length; j++) { // j i后面所有的字符都有机会 - swap(str, i, j); - process(str, i + 1, ans); - swap(str, i, j); - } - } - - - public static ArrayList permutationNoRepeat(String str) { - ArrayList res = new ArrayList<>(); - if (str == null || str.length() == 0) { - return res; - } - char[] chs = str.toCharArray(); - process2(chs, 0, res); - return res; - } - - // str[0..i-1]已经做好决定的 - // str[i...]都有机会来到i位置 - // i终止位置,str当前的样子,就是一种结果 -> ans - public static void process2(char[] str, int i, ArrayList res) { - if (i == str.length) { - res.add(String.valueOf(str)); - return; - } - boolean[] visit = new boolean[26]; // visit[0 1 .. 25] - for (int j = i; j < str.length; j++) { - // str[j] = 'a' -> 0 visit[0] -> 'a' - - // str[j] = 'z' -> 25 visit[25] -> 'z' - if (!visit[str[j] - 'a']) { - - visit[str[j] - 'a'] = true; - swap(str, i, j); - process2(str, i + 1, res); - swap(str, i, j); - - } - } - } - - public static void swap(char[] chs, int i, int j) { - char tmp = chs[i]; - chs[i] = chs[j]; - chs[j] = tmp; - } - - public static void main(String[] args) { - String s = "aac"; - List ans1 = permutation(s); - for (String str : ans1) { - System.out.println(str); - } - System.out.println("======="); - List ans2 = permutationNoRepeat(s); - for (String str : ans2) { - System.out.println(str); - } - - } - -} diff --git a/src/class11_17/Code07_Knapsack.java b/src/class11_17/Code07_Knapsack.java deleted file mode 100644 index fcfa7c7..0000000 --- a/src/class11_17/Code07_Knapsack.java +++ /dev/null @@ -1,79 +0,0 @@ -package class11_17; - -public class Code07_Knapsack { - - public static int getMaxValue(int[] w, int[] v, int bag) { - return process(w, v, 0, 0, bag); - } - - // 不变 : w[] v[] bag - // index... 最大价值 - // 0..index-1上做了货物的选择,使得你已经达到的重量是多少alreadyW - // 如果返回-1,认为没有方案 - // 如果不返回-1,认为返回的值是真实价值 - public static int process(int[] w, int[] v, int index, int alreadyW, int bag) { - if (alreadyW > bag) { - return -1; - } - // 重量没超 - if (index == w.length) { - return 0; - } - int p1 = process(w, v, index + 1, alreadyW, bag); - int p2next = process(w, v, index + 1, alreadyW + w[index], bag); - int p2 = -1; - if (p2next != -1) { - p2 = v[index] + p2next; - } - return Math.max(p1, p2); - - } - - public static int maxValue(int[] w, int[] v, int bag) { - return process(w, v, 0, bag); - } - - // 只剩下rest的空间了, - // index...货物自由选择,但是剩余空间不要小于0 - // 返回 index...货物能够获得的最大价值 - public static int process(int[] w, int[] v, int index, int rest) { - if (rest < 0) { // base case 1 - return -1; - } - // rest >=0 - if (index == w.length) { // base case 2 - return 0; - } - // 有货也有空间 - int p1 = process(w, v, index + 1, rest); - int p2 = -1; - int p2Next = process(w, v, index + 1, rest - w[index]); - if(p2Next!=-1) { - p2 = v[index] + p2Next; - } - return Math.max(p1, p2); - } - - public static int dpWay(int[] w, int[] v, int bag) { - int N = w.length; - int[][] dp = new int[N + 1][bag + 1]; - for (int index = N - 1; index >= 0; index--) { - for (int rest = 1; rest <= bag; rest++) { - dp[index][rest] = dp[index + 1][rest]; - if (rest >= w[index]) { - dp[index][rest] = Math.max(dp[index][rest], v[index] + dp[index + 1][rest - w[index]]); - } - } - } - return dp[0][bag]; - } - - public static void main(String[] args) { - int[] weights = { 3, 2, 4, 7 }; - int[] values = { 5, 6, 3, 19 }; - int bag = 11; - System.out.println(maxValue(weights, values, bag)); - System.out.println(dpWay(weights, values, bag)); - } - -} diff --git a/src/class11_17/Code08_CardsInLine.java b/src/class11_17/Code08_CardsInLine.java deleted file mode 100644 index ddcb9da..0000000 --- a/src/class11_17/Code08_CardsInLine.java +++ /dev/null @@ -1,82 +0,0 @@ -package class11_17; - -public class Code08_CardsInLine { - - public static int win1(int[] arr) { - if (arr == null || arr.length == 0) { - return 0; - } - return Math.max( - f(arr, 0, arr.length - 1), - s(arr, 0, arr.length - 1) - ); - } - - // L....R - // F S L+1..R - // L..R-1 - public static int f(int[] arr, int L, int R) { - if (L == R) { - return arr[L]; - } - - return Math.max( - arr[L] + s(arr, L + 1, R), - arr[R] + s(arr, L, R - 1) - ); - } - - // arr[L..R] - public static int s(int[] arr, int L, int R) { - if (L == R) { - return 0; - } - return Math.min( - f(arr, L + 1, R), // arr[i] - f(arr, L, R - 1) // arr[j] - ); - } - - public static int win2(int[] arr) { - if (arr == null || arr.length == 0) { - return 0; - } - int N = arr.length; - int[][] f = new int[N][N]; - int[][] s = new int[N][N]; - for(int i = 0; i < N;i++) { - f[i][i] = arr[i]; - } - // s[i][i] = 0; - for(int i = 1; i < N;i++) { - int L =0; - int R =i; - while(L < N && R < N) { - - f[L][R] = Math.max( - arr[L] + s[L + 1][ R], - arr[R] + s[L][R - 1] - ); - s[L][R] = Math.min( - f[L + 1][R], // arr[i] - f[L][R - 1] // arr[j] - ); - - L++; - R++; - - } - } - return Math.max(f[0][N-1], s[0][N-1]); - } - - public static void main(String[] args) { - int[] arr = { 4,7,9,5,19,29,80,4 }; - // A 4 9 - // B 7 5 - System.out.println(win1(arr)); - System.out.println(win2(arr)); - - } - -} diff --git a/src/class08_12/Code01_IsCBT.java b/src/class12/Code01_IsCBT.java similarity index 99% rename from src/class08_12/Code01_IsCBT.java rename to src/class12/Code01_IsCBT.java index 812b33d..e0b9cab 100644 --- a/src/class08_12/Code01_IsCBT.java +++ b/src/class12/Code01_IsCBT.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; import java.util.LinkedList; diff --git a/src/class08_12/Code02_IsBST.java b/src/class12/Code02_IsBST.java similarity index 99% rename from src/class08_12/Code02_IsBST.java rename to src/class12/Code02_IsBST.java index 6ff2f10..30d99dc 100644 --- a/src/class08_12/Code02_IsBST.java +++ b/src/class12/Code02_IsBST.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; import java.util.ArrayList; diff --git a/src/class08_12/Code03_IsBalanced.java b/src/class12/Code03_IsBalanced.java similarity index 99% rename from src/class08_12/Code03_IsBalanced.java rename to src/class12/Code03_IsBalanced.java index df44cee..e8a6c0f 100644 --- a/src/class08_12/Code03_IsBalanced.java +++ b/src/class12/Code03_IsBalanced.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; public class Code03_IsBalanced { diff --git a/src/class08_12/Code04_IsFull.java b/src/class12/Code04_IsFull.java similarity index 99% rename from src/class08_12/Code04_IsFull.java rename to src/class12/Code04_IsFull.java index ef04e12..0366ff8 100644 --- a/src/class08_12/Code04_IsFull.java +++ b/src/class12/Code04_IsFull.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; public class Code04_IsFull { diff --git a/src/class08_12/Code05_MaxSubBSTSize.java b/src/class12/Code05_MaxSubBSTSize.java similarity index 99% rename from src/class08_12/Code05_MaxSubBSTSize.java rename to src/class12/Code05_MaxSubBSTSize.java index db29d17..bd17329 100644 --- a/src/class08_12/Code05_MaxSubBSTSize.java +++ b/src/class12/Code05_MaxSubBSTSize.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; import java.util.ArrayList; diff --git a/src/class08_12/Code06_MaxDistance.java b/src/class12/Code06_MaxDistance.java similarity index 99% rename from src/class08_12/Code06_MaxDistance.java rename to src/class12/Code06_MaxDistance.java index f624e05..8c82c0e 100644 --- a/src/class08_12/Code06_MaxDistance.java +++ b/src/class12/Code06_MaxDistance.java @@ -1,4 +1,4 @@ -package class08_12; +package class12; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class08_13/Code01_IsCBT.java b/src/class13/Code01_IsCBT.java similarity index 99% rename from src/class08_13/Code01_IsCBT.java rename to src/class13/Code01_IsCBT.java index 63924d7..da365d1 100644 --- a/src/class08_13/Code01_IsCBT.java +++ b/src/class13/Code01_IsCBT.java @@ -1,4 +1,4 @@ -package class08_13; +package class13; import java.util.LinkedList; diff --git a/src/class08_13/Code02_MaxSubBSTHead.java b/src/class13/Code02_MaxSubBSTHead.java similarity index 99% rename from src/class08_13/Code02_MaxSubBSTHead.java rename to src/class13/Code02_MaxSubBSTHead.java index b3f5c2b..e64c37a 100644 --- a/src/class08_13/Code02_MaxSubBSTHead.java +++ b/src/class13/Code02_MaxSubBSTHead.java @@ -1,4 +1,4 @@ -package class08_13; +package class13; import java.util.ArrayList; diff --git a/src/class08_13/Code03_lowestAncestor.java b/src/class13/Code03_lowestAncestor.java similarity index 99% rename from src/class08_13/Code03_lowestAncestor.java rename to src/class13/Code03_lowestAncestor.java index 48eb66c..e2a9d5f 100644 --- a/src/class08_13/Code03_lowestAncestor.java +++ b/src/class13/Code03_lowestAncestor.java @@ -1,4 +1,4 @@ -package class08_13; +package class13; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class08_13/Code04_MaxHappy.java b/src/class13/Code04_MaxHappy.java similarity index 99% rename from src/class08_13/Code04_MaxHappy.java rename to src/class13/Code04_MaxHappy.java index 4cc0b57..3cb21e7 100644 --- a/src/class08_13/Code04_MaxHappy.java +++ b/src/class13/Code04_MaxHappy.java @@ -1,4 +1,4 @@ -package class08_13; +package class13; import java.util.ArrayList; import java.util.List; diff --git a/src/class09_13/Code01_LowestLexicography.java b/src/class13/Code05_LowestLexicography.java similarity index 97% rename from src/class09_13/Code01_LowestLexicography.java rename to src/class13/Code05_LowestLexicography.java index 08dbd52..13ceedd 100644 --- a/src/class09_13/Code01_LowestLexicography.java +++ b/src/class13/Code05_LowestLexicography.java @@ -1,10 +1,10 @@ -package class09_13; +package class13; import java.util.Arrays; import java.util.Comparator; import java.util.TreeSet; -public class Code01_LowestLexicography { +public class Code05_LowestLexicography { public static String lowestString1(String[] strs) { if (strs == null || strs.length == 0) { diff --git a/src/class09_14/Code01_Light.java b/src/class14/Code01_Light.java similarity index 95% rename from src/class09_14/Code01_Light.java rename to src/class14/Code01_Light.java index 0dba03a..05a987f 100644 --- a/src/class09_14/Code01_Light.java +++ b/src/class14/Code01_Light.java @@ -1,4 +1,4 @@ -package class09_14; +package class14; import java.util.HashSet; diff --git a/src/class09_14/Code02_LessMoneySplitGold.java b/src/class14/Code02_LessMoneySplitGold.java similarity index 98% rename from src/class09_14/Code02_LessMoneySplitGold.java rename to src/class14/Code02_LessMoneySplitGold.java index 8f50521..682fa12 100644 --- a/src/class09_14/Code02_LessMoneySplitGold.java +++ b/src/class14/Code02_LessMoneySplitGold.java @@ -1,4 +1,4 @@ -package class09_14; +package class14; import java.util.PriorityQueue; diff --git a/src/class09_14/Code03_BestArrange.java b/src/class14/Code03_BestArrange.java similarity index 99% rename from src/class09_14/Code03_BestArrange.java rename to src/class14/Code03_BestArrange.java index 3d4fe4b..c8a79ff 100644 --- a/src/class09_14/Code03_BestArrange.java +++ b/src/class14/Code03_BestArrange.java @@ -1,4 +1,4 @@ -package class09_14; +package class14; import java.util.Arrays; import java.util.Comparator; diff --git a/src/class09_14/Code04_IPO.java b/src/class14/Code04_IPO.java similarity index 98% rename from src/class09_14/Code04_IPO.java rename to src/class14/Code04_IPO.java index eec4c97..0ac3b85 100644 --- a/src/class09_14/Code04_IPO.java +++ b/src/class14/Code04_IPO.java @@ -1,4 +1,4 @@ -package class09_14; +package class14; import java.util.Comparator; import java.util.PriorityQueue; diff --git a/src/class09_14/Code05_UnionFind.java b/src/class14/Code05_UnionFind.java similarity index 94% rename from src/class09_14/Code05_UnionFind.java rename to src/class14/Code05_UnionFind.java index 7774e54..0d9e246 100644 --- a/src/class09_14/Code05_UnionFind.java +++ b/src/class14/Code05_UnionFind.java @@ -1,4 +1,4 @@ -package class09_14; +package class14; import java.util.HashMap; import java.util.List; diff --git a/src/class09_15/Code01_FriendCircles.java b/src/class15/Code01_FriendCircles.java similarity index 98% rename from src/class09_15/Code01_FriendCircles.java rename to src/class15/Code01_FriendCircles.java index 5f2ad67..dd4253d 100644 --- a/src/class09_15/Code01_FriendCircles.java +++ b/src/class15/Code01_FriendCircles.java @@ -1,4 +1,4 @@ -package class09_15; +package class15; // 本题为leetcode原题 // 测试链接:https://leetcode.com/problems/friend-circles/ diff --git a/src/class09_15/Code02_NumberOfIslands.java b/src/class15/Code02_NumberOfIslands.java similarity index 99% rename from src/class09_15/Code02_NumberOfIslands.java rename to src/class15/Code02_NumberOfIslands.java index e27a9ea..6065d42 100644 --- a/src/class09_15/Code02_NumberOfIslands.java +++ b/src/class15/Code02_NumberOfIslands.java @@ -1,4 +1,4 @@ -package class09_15; +package class15; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class09_15/Code03_NumberOfIslandsII.java b/src/class15/Code03_NumberOfIslandsII.java similarity index 99% rename from src/class09_15/Code03_NumberOfIslandsII.java rename to src/class15/Code03_NumberOfIslandsII.java index 409fa3a..d109276 100644 --- a/src/class09_15/Code03_NumberOfIslandsII.java +++ b/src/class15/Code03_NumberOfIslandsII.java @@ -1,4 +1,4 @@ -package class09_15; +package class15; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class10_16/Code01_BFS.java b/src/class16/Code01_BFS.java similarity index 96% rename from src/class10_16/Code01_BFS.java rename to src/class16/Code01_BFS.java index 3a6ac94..c2d4d9f 100644 --- a/src/class10_16/Code01_BFS.java +++ b/src/class16/Code01_BFS.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.HashSet; import java.util.LinkedList; diff --git a/src/class10_16/Code02_DFS.java b/src/class16/Code02_DFS.java similarity index 96% rename from src/class10_16/Code02_DFS.java rename to src/class16/Code02_DFS.java index 4e29e8f..fa85ca4 100644 --- a/src/class10_16/Code02_DFS.java +++ b/src/class16/Code02_DFS.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.HashSet; import java.util.Stack; diff --git a/src/class10_16/Code03_TopologicalOrderBFS.java b/src/class16/Code03_TopologicalOrderBFS.java similarity index 98% rename from src/class10_16/Code03_TopologicalOrderBFS.java rename to src/class16/Code03_TopologicalOrderBFS.java index f672e78..5e54581 100644 --- a/src/class10_16/Code03_TopologicalOrderBFS.java +++ b/src/class16/Code03_TopologicalOrderBFS.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class10_16/Code03_TopologicalOrderDFS1.java b/src/class16/Code03_TopologicalOrderDFS1.java similarity index 98% rename from src/class10_16/Code03_TopologicalOrderDFS1.java rename to src/class16/Code03_TopologicalOrderDFS1.java index 35c74f0..57f1bb7 100644 --- a/src/class10_16/Code03_TopologicalOrderDFS1.java +++ b/src/class16/Code03_TopologicalOrderDFS1.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/class10_16/Code03_TopologicalOrderDFS2.java b/src/class16/Code03_TopologicalOrderDFS2.java similarity index 98% rename from src/class10_16/Code03_TopologicalOrderDFS2.java rename to src/class16/Code03_TopologicalOrderDFS2.java index bbecfa5..4c90d1d 100644 --- a/src/class10_16/Code03_TopologicalOrderDFS2.java +++ b/src/class16/Code03_TopologicalOrderDFS2.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/class10_16/Code03_TopologySort.java b/src/class16/Code03_TopologySort.java similarity index 97% rename from src/class10_16/Code03_TopologySort.java rename to src/class16/Code03_TopologySort.java index aa25007..735dca0 100644 --- a/src/class10_16/Code03_TopologySort.java +++ b/src/class16/Code03_TopologySort.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class10_16/Code04_Kruskal.java b/src/class16/Code04_Kruskal.java similarity index 99% rename from src/class10_16/Code04_Kruskal.java rename to src/class16/Code04_Kruskal.java index 03ef6c4..cb0ea62 100644 --- a/src/class10_16/Code04_Kruskal.java +++ b/src/class16/Code04_Kruskal.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.Collection; import java.util.Comparator; diff --git a/src/class10_16/Code05_Prim.java b/src/class16/Code05_Prim.java similarity index 99% rename from src/class10_16/Code05_Prim.java rename to src/class16/Code05_Prim.java index c8ace77..d00dc75 100644 --- a/src/class10_16/Code05_Prim.java +++ b/src/class16/Code05_Prim.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.Comparator; import java.util.HashSet; diff --git a/src/class10_16/Code06_Dijkstra.java b/src/class16/Code06_Dijkstra.java similarity index 99% rename from src/class10_16/Code06_Dijkstra.java rename to src/class16/Code06_Dijkstra.java index a50528a..9cb6258 100644 --- a/src/class10_16/Code06_Dijkstra.java +++ b/src/class16/Code06_Dijkstra.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.HashMap; import java.util.HashSet; diff --git a/src/class10_16/Edge.java b/src/class16/Edge.java similarity index 90% rename from src/class10_16/Edge.java rename to src/class16/Edge.java index 3b8e939..7c56891 100644 --- a/src/class10_16/Edge.java +++ b/src/class16/Edge.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; public class Edge { public int weight; diff --git a/src/class10_16/Graph.java b/src/class16/Graph.java similarity index 91% rename from src/class10_16/Graph.java rename to src/class16/Graph.java index d7556e8..933e43b 100644 --- a/src/class10_16/Graph.java +++ b/src/class16/Graph.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; import java.util.HashMap; import java.util.HashSet; diff --git a/src/class10_16/GraphGenerator.java b/src/class16/GraphGenerator.java similarity index 97% rename from src/class10_16/GraphGenerator.java rename to src/class16/GraphGenerator.java index 4c07bc5..fe3387d 100644 --- a/src/class10_16/GraphGenerator.java +++ b/src/class16/GraphGenerator.java @@ -1,4 +1,4 @@ -package class10_16; +package class16; public class GraphGenerator { diff --git a/src/class10_17/Node.java b/src/class16/Node.java similarity index 94% rename from src/class10_17/Node.java rename to src/class16/Node.java index 79a92d3..a468aaf 100644 --- a/src/class10_17/Node.java +++ b/src/class16/Node.java @@ -1,4 +1,4 @@ -package class10_17; +package class16; import java.util.ArrayList; diff --git a/src/class10_17/Code01_Dijkstra.java b/src/class17/Code01_Dijkstra.java similarity index 91% rename from src/class10_17/Code01_Dijkstra.java rename to src/class17/Code01_Dijkstra.java index 8e38bb4..0b39615 100644 --- a/src/class10_17/Code01_Dijkstra.java +++ b/src/class17/Code01_Dijkstra.java @@ -1,4 +1,4 @@ -package class10_17; +package class17; import java.util.HashMap; import java.util.HashSet; @@ -14,13 +14,13 @@ public class Code01_Dijkstra { HashSet selectedNodes = new HashSet<>(); Node minNode = getMinDistanceAndUnselectedNode(distanceMap, selectedNodes); while (minNode != null) { - // 原始点 -> minNode(跳转点) 最小距离distance + // 原始点 -> minNode(跳转点) 最小距离distance int distance = distanceMap.get(minNode); for (Edge edge : minNode.edges) { Node toNode = edge.to; if (!distanceMap.containsKey(toNode)) { distanceMap.put(toNode, distance + edge.weight); - } else { // toNode + } else { // toNode distanceMap.put(edge.to, Math.min(distanceMap.get(toNode), distance + edge.weight)); } } @@ -55,12 +55,13 @@ public class Code01_Dijkstra { } public static class NodeHeap { - private Node[] nodes; // 实际的堆结构 - // key 某一个node, value 上面堆中的位置 + // 堆! + private Node[] nodes; + // node -> 堆上的什么位置? + private HashMap heapIndexMap; - // key 某一个节点, value 从源节点出发到该节点的目前最小距离 private HashMap distanceMap; - private int size; // 堆上有多少个点 + private int size; public NodeHeap(int size) { nodes = new Node[size]; @@ -76,21 +77,22 @@ public class Code01_Dijkstra { // 有一个点叫node,现在发现了一个从源节点出发到达node的距离为distance // 判断要不要更新,如果需要的话,就更新 public void addOrUpdateOrIgnore(Node node, int distance) { - if (inHeap(node)) { + if (inHeap(node)) { // update distanceMap.put(node, Math.min(distanceMap.get(node), distance)); insertHeapify(node, heapIndexMap.get(node)); } - if (!isEntered(node)) { + if (!isEntered(node)) { // add nodes[size] = node; heapIndexMap.put(node, size); distanceMap.put(node, distance); insertHeapify(node, size++); } + // ignore } public NodeRecord pop() { NodeRecord nodeRecord = new NodeRecord(nodes[0], distanceMap.get(nodes[0])); - swap(0, size - 1); + swap(0, size - 1); // 0 > size - 1 size - 1 > 0 heapIndexMap.put(nodes[size - 1], -1); distanceMap.remove(nodes[size - 1]); // free C++同学还要把原本堆顶节点析构,对java同学不必 diff --git a/src/class11_17/Code01_Hanoi.java b/src/class17/Code02_Hanoi.java similarity index 94% rename from src/class11_17/Code01_Hanoi.java rename to src/class17/Code02_Hanoi.java index 4b3966c..3d9ba6e 100644 --- a/src/class11_17/Code01_Hanoi.java +++ b/src/class17/Code02_Hanoi.java @@ -1,8 +1,8 @@ -package class11_17; +package class17; import java.util.Stack; -public class Code01_Hanoi { +public class Code02_Hanoi { public static void hanoi1(int n) { leftToRight(n); @@ -10,7 +10,7 @@ public class Code01_Hanoi { // 请把1~N层圆盘 从左 -> 右 public static void leftToRight(int n) { - if (n == 1) { + if (n == 1) { // base case System.out.println("Move 1 from left to right"); return; } @@ -76,7 +76,6 @@ public class Code01_Hanoi { } } - // 1~i 圆盘 目标是from -> to, other是另外一个 public static void func(int N, String from, String to, String other) { if (N == 1) { // base System.out.println("Move 1 from " + from + " to " + to); @@ -133,8 +132,8 @@ public class Code01_Hanoi { hanoi1(n); System.out.println("============"); hanoi2(n); - System.out.println("============"); - hanoi3(n); +// System.out.println("============"); +// hanoi3(n); } } diff --git a/src/class11_17/Code02_PrintAllSubsquences.java b/src/class17/Code03_PrintAllSubsquences.java similarity index 64% rename from src/class11_17/Code02_PrintAllSubsquences.java rename to src/class17/Code03_PrintAllSubsquences.java index 505e878..05b6a03 100644 --- a/src/class11_17/Code02_PrintAllSubsquences.java +++ b/src/class17/Code03_PrintAllSubsquences.java @@ -1,11 +1,12 @@ -package class11_17; +package class17; import java.util.ArrayList; import java.util.HashSet; import java.util.List; -public class Code02_PrintAllSubsquences { +public class Code03_PrintAllSubsquences { + // s -> "abc" -> public static List subs(String s) { char[] str = s.toCharArray(); String path = ""; @@ -14,19 +15,21 @@ public class Code02_PrintAllSubsquences { return ans; } - // str固定,不变 - // index此时来到的位置, 要 or 不要 - // 如果index来到了str中的终止位置,把沿途路径所形成的答案,放入ans中 - // 之前做出的选择,就是path + // str 固定参数 + // 来到了str[index]字符,index是位置 + // str[0..index-1]已经走过了!之前的决定,都在path上 + // 之前的决定已经不能改变了,就是path + // str[index....]还能决定,之前已经确定,而后面还能自由选择的话, + // 把所有生成的子序列,放入到ans里去 public static void process1(char[] str, int index, List ans, String path) { if (index == str.length) { ans.add(path); return; } - String no = path; - process1(str, index + 1, ans, no); - String yes = path + String.valueOf(str[index]); - process1(str, index + 1, ans, yes); + // 没有要index位置的字符 + process1(str, index + 1, ans, path); + // 要了index位置的字符 + process1(str, index + 1, ans, path + String.valueOf(str[index])); } public static List subsNoRepeat(String s) { @@ -41,9 +44,7 @@ public class Code02_PrintAllSubsquences { return ans; } - // str index set - public static void process2(char[] str, int index, - HashSet set, String path) { + public static void process2(char[] str, int index, HashSet set, String path) { if (index == str.length) { set.add(path); return; @@ -55,7 +56,7 @@ public class Code02_PrintAllSubsquences { } public static void main(String[] args) { - String test = "aacc"; + String test = "acccc"; List ans1 = subs(test); List ans2 = subsNoRepeat(test); diff --git a/src/class17/Code04_PrintAllPermutations.java b/src/class17/Code04_PrintAllPermutations.java new file mode 100644 index 0000000..0337a95 --- /dev/null +++ b/src/class17/Code04_PrintAllPermutations.java @@ -0,0 +1,110 @@ +package class17; + +import java.util.ArrayList; +import java.util.List; + +public class Code04_PrintAllPermutations { + + public static List permutation1(String s) { + List ans = new ArrayList<>(); + if (s == null || s.length() == 0) { + return ans; + } + char[] str = s.toCharArray(); + ArrayList rest = new ArrayList(); + for (char cha : str) { + rest.add(cha); + } + String path = ""; + f(rest, path, ans); + return ans; + } + + public static void f(ArrayList rest, String path, List ans) { + if (rest.isEmpty()) { + ans.add(path); + } else { + int N = rest.size(); + for (int i = 0; i < N; i++) { + char cur = rest.get(i); + rest.remove(i); + f(rest, path + cur, ans); + rest.add(i, cur); + } + } + } + + public static List permutation2(String s) { + List ans = new ArrayList<>(); + if (s == null || s.length() == 0) { + return ans; + } + char[] str = s.toCharArray(); + g1(str, 0, ans); + return ans; + } + + public static void g1(char[] str, int index, List ans) { + if (index == str.length) { + ans.add(String.valueOf(str)); + } else { + for (int i = index; i < str.length; i++) { + swap(str, index, i); + g1(str, index + 1, ans); + swap(str, index, i); + } + } + } + + public static List permutation3(String s) { + List ans = new ArrayList<>(); + if (s == null || s.length() == 0) { + return ans; + } + char[] str = s.toCharArray(); + g2(str, 0, ans); + return ans; + } + + public static void g2(char[] str, int index, List ans) { + if (index == str.length) { + ans.add(String.valueOf(str)); + } else { + boolean[] visited = new boolean[256]; + for (int i = index; i < str.length; i++) { + if (!visited[str[i]]) { + visited[str[i]] = true; + swap(str, index, i); + g2(str, index + 1, ans); + swap(str, index, i); + } + } + } + } + + public static void swap(char[] chs, int i, int j) { + char tmp = chs[i]; + chs[i] = chs[j]; + chs[j] = tmp; + } + + public static void main(String[] args) { + String s = "acc"; + List ans1 = permutation1(s); + for (String str : ans1) { + System.out.println(str); + } + System.out.println("======="); + List ans2 = permutation2(s); + for (String str : ans2) { + System.out.println(str); + } + System.out.println("======="); + List ans3 = permutation3(s); + for (String str : ans3) { + System.out.println(str); + } + + } + +} diff --git a/src/class11_17/Code04_ReverseStackUsingRecursive.java b/src/class17/Code05_ReverseStackUsingRecursive.java similarity index 80% rename from src/class11_17/Code04_ReverseStackUsingRecursive.java rename to src/class17/Code05_ReverseStackUsingRecursive.java index 4653b9b..731056a 100644 --- a/src/class11_17/Code04_ReverseStackUsingRecursive.java +++ b/src/class17/Code05_ReverseStackUsingRecursive.java @@ -1,8 +1,8 @@ -package class11_17; +package class17; import java.util.Stack; -public class Code04_ReverseStackUsingRecursive { +public class Code05_ReverseStackUsingRecursive { public static void reverse(Stack stack) { if (stack.isEmpty()) { @@ -13,6 +13,9 @@ public class Code04_ReverseStackUsingRecursive { stack.push(i); } + // 栈底元素移除掉 + // 上面的元素盖下来 + // 返回移除掉的栈底元素 public static int f(Stack stack) { int result = stack.pop(); if (stack.isEmpty()) { diff --git a/src/class10_17/Edge.java b/src/class17/Edge.java similarity index 90% rename from src/class10_17/Edge.java rename to src/class17/Edge.java index b4389ea..eacd58b 100644 --- a/src/class10_17/Edge.java +++ b/src/class17/Edge.java @@ -1,4 +1,4 @@ -package class10_17; +package class17; public class Edge { public int weight; diff --git a/src/class10_17/Graph.java b/src/class17/Graph.java similarity index 91% rename from src/class10_17/Graph.java rename to src/class17/Graph.java index 3901b78..f9314a2 100644 --- a/src/class10_17/Graph.java +++ b/src/class17/Graph.java @@ -1,4 +1,4 @@ -package class10_17; +package class17; import java.util.HashMap; import java.util.HashSet; diff --git a/src/class10_16/Node.java b/src/class17/Node.java similarity index 94% rename from src/class10_16/Node.java rename to src/class17/Node.java index 1a57f35..1056ead 100644 --- a/src/class10_16/Node.java +++ b/src/class17/Node.java @@ -1,4 +1,4 @@ -package class10_16; +package class17; import java.util.ArrayList; diff --git a/src/class12/Code01_RobotWalk.java b/src/class18/Code01_RobotWalk.java similarity index 99% rename from src/class12/Code01_RobotWalk.java rename to src/class18/Code01_RobotWalk.java index 2a9ff14..db85fee 100644 --- a/src/class12/Code01_RobotWalk.java +++ b/src/class18/Code01_RobotWalk.java @@ -1,4 +1,4 @@ -package class12; +package class18; public class Code01_RobotWalk { diff --git a/src/class12/Code02_StickersToSpellWord.java b/src/class18/Code02_StickersToSpellWord.java similarity index 99% rename from src/class12/Code02_StickersToSpellWord.java rename to src/class18/Code02_StickersToSpellWord.java index 808cc1e..cc6ca43 100644 --- a/src/class12/Code02_StickersToSpellWord.java +++ b/src/class18/Code02_StickersToSpellWord.java @@ -1,4 +1,4 @@ -package class12; +package class18; import java.util.Arrays; import java.util.HashMap; diff --git a/src/class12/Code03_Knapsack.java b/src/class18/Code03_Knapsack.java similarity index 99% rename from src/class12/Code03_Knapsack.java rename to src/class18/Code03_Knapsack.java index 36b388f..c31945c 100644 --- a/src/class12/Code03_Knapsack.java +++ b/src/class18/Code03_Knapsack.java @@ -1,4 +1,4 @@ -package class12; +package class18; public class Code03_Knapsack { diff --git a/src/class12/Code04_CardsInLine.java b/src/class18/Code04_CardsInLine.java similarity index 98% rename from src/class12/Code04_CardsInLine.java rename to src/class18/Code04_CardsInLine.java index 37ad9e4..40fb2ce 100644 --- a/src/class12/Code04_CardsInLine.java +++ b/src/class18/Code04_CardsInLine.java @@ -1,4 +1,4 @@ -package class12; +package class18; public class Code04_CardsInLine { diff --git a/src/class11_17/Code06_ConvertToLetterString.java b/src/class18/Code05_ConvertToLetterString.java similarity index 88% rename from src/class11_17/Code06_ConvertToLetterString.java rename to src/class18/Code05_ConvertToLetterString.java index 0b66871..608143a 100644 --- a/src/class11_17/Code06_ConvertToLetterString.java +++ b/src/class18/Code05_ConvertToLetterString.java @@ -1,6 +1,6 @@ -package class11_17; +package class18; -public class Code06_ConvertToLetterString { +public class Code05_ConvertToLetterString { public static int number(String str) { if (str == null || str.length() == 0) { @@ -13,7 +13,7 @@ public class Code06_ConvertToLetterString { // i之前的位置,如何转化已经做过决定了, 不用再关心 // i... 有多少种转化的结果 public static int process(char[] str, int i) { - if (i == str.length) { // base case + if (i == str.length) { return 1; } if (str[i] == '0') { @@ -34,7 +34,7 @@ public class Code06_ConvertToLetterString { return res; } return process(str, i + 1); - } + } public static int dp(String s) { if (s == null || s.length() == 0) { @@ -53,7 +53,7 @@ public class Code06_ConvertToLetterString { dp[i] += dp[i + 2]; } } else if (str[i] == '2') { - dp[i] = dp[i + 1]; + dp[i] = dp[i + 1]; if (i + 1 < str.length && (str[i + 1] >= '0' && str[i + 1] <= '6')) { dp[i] += dp[i + 2]; } diff --git a/src/class12/Code05_LongestCommonSubsequence.java b/src/class19/Code01_LongestCommonSubsequence.java similarity index 96% rename from src/class12/Code05_LongestCommonSubsequence.java rename to src/class19/Code01_LongestCommonSubsequence.java index e3360ee..36e94e4 100644 --- a/src/class12/Code05_LongestCommonSubsequence.java +++ b/src/class19/Code01_LongestCommonSubsequence.java @@ -1,8 +1,8 @@ -package class12; +package class19; // 这个问题leetcode上可以直接测 // 链接:https://leetcode.com/problems/longest-common-subsequence/ -public class Code05_LongestCommonSubsequence { +public class Code01_LongestCommonSubsequence { public static int longestCommonSubsequence1(String text1, String text2) { if (text1 == null || text2 == null || text1.length() == 0 || text2.length() == 0) { diff --git a/src/class12/Code05_PalindromeSubsequence.java b/src/class19/Code02_PalindromeSubsequence.java similarity index 92% rename from src/class12/Code05_PalindromeSubsequence.java rename to src/class19/Code02_PalindromeSubsequence.java index 9b4faf0..90d93ed 100644 --- a/src/class12/Code05_PalindromeSubsequence.java +++ b/src/class19/Code02_PalindromeSubsequence.java @@ -1,6 +1,6 @@ -package class12; +package class19; -public class Code05_PalindromeSubsequence { +public class Code02_PalindromeSubsequence { public static int lcse(char[] str1, char[] str2) { diff --git a/src/class12/Code07_HorseJump.java b/src/class19/Code03_HorseJump.java similarity index 97% rename from src/class12/Code07_HorseJump.java rename to src/class19/Code03_HorseJump.java index 2d2ab17..f48df78 100644 --- a/src/class12/Code07_HorseJump.java +++ b/src/class19/Code03_HorseJump.java @@ -1,6 +1,6 @@ -package class12; +package class19; -public class Code07_HorseJump { +public class Code03_HorseJump { // 10*9 // 0~9 y diff --git a/src/class12/Code06_Coffee.java b/src/class19/Code04_Coffee.java similarity index 99% rename from src/class12/Code06_Coffee.java rename to src/class19/Code04_Coffee.java index d5d0613..fec9a7b 100644 --- a/src/class12/Code06_Coffee.java +++ b/src/class19/Code04_Coffee.java @@ -1,4 +1,4 @@ -package class12; +package class19; import java.util.Arrays; import java.util.Comparator; @@ -12,7 +12,7 @@ import java.util.PriorityQueue; // 洗杯子的机器洗完一个杯子时间为a,任何一个杯子自然挥发干净的时间为b。 // 四个参数:arr, n, a, b // 假设时间点从0开始,返回所有人喝完咖啡并洗完咖啡杯的全部过程结束后,至少来到什么时间点。 -public class Code06_Coffee { +public class Code04_Coffee { // 方法一:暴力尝试方法 public static int minTime1(int[] arr, int n, int a, int b) { diff --git a/src/class12/Code08_MinPathSum.java b/src/class19/Code05_MinPathSum.java similarity index 97% rename from src/class12/Code08_MinPathSum.java rename to src/class19/Code05_MinPathSum.java index 9aae0a3..bc8efeb 100644 --- a/src/class12/Code08_MinPathSum.java +++ b/src/class19/Code05_MinPathSum.java @@ -1,6 +1,6 @@ -package class12; +package class19; -public class Code08_MinPathSum { +public class Code05_MinPathSum { public static int minPathSum1(int[][] m) { if (m == null || m.length == 0 || m[0] == null || m[0].length == 0) { diff --git a/src/class12/Code09_CoinsWay.java b/src/class20/Code01_CoinsWay.java similarity index 98% rename from src/class12/Code09_CoinsWay.java rename to src/class20/Code01_CoinsWay.java index 068c160..7d5c711 100644 --- a/src/class12/Code09_CoinsWay.java +++ b/src/class20/Code01_CoinsWay.java @@ -1,6 +1,6 @@ -package class12; +package class20; -public class Code09_CoinsWay { +public class Code01_CoinsWay { // arr中都是正数且无重复值,返回组成aim的方法数 public static int ways1(int[] arr, int aim) { diff --git a/src/class12/Code10_SplitSumClosed.java b/src/class20/Code02_SplitSumClosed.java similarity index 97% rename from src/class12/Code10_SplitSumClosed.java rename to src/class20/Code02_SplitSumClosed.java index d12b567..b2322c6 100644 --- a/src/class12/Code10_SplitSumClosed.java +++ b/src/class20/Code02_SplitSumClosed.java @@ -1,4 +1,4 @@ -package class12; +package class20; import java.util.TreeSet; @@ -8,7 +8,7 @@ import java.util.TreeSet; * 为了方便起见,假设arr中没有负数,其实也可以有 * 但是处理起来会比较麻烦,而且有没有负数都不影响算法流程的理解 * */ -public class Code10_SplitSumClosed { +public class Code02_SplitSumClosed { public static int right(int[] arr) { if (arr == null || arr.length < 2) { diff --git a/src/class12/Code11_SplitSumClosedSizeHalf.java b/src/class20/Code03_SplitSumClosedSizeHalf.java similarity index 98% rename from src/class12/Code11_SplitSumClosedSizeHalf.java rename to src/class20/Code03_SplitSumClosedSizeHalf.java index bf2c28b..9bd86c7 100644 --- a/src/class12/Code11_SplitSumClosedSizeHalf.java +++ b/src/class20/Code03_SplitSumClosedSizeHalf.java @@ -1,4 +1,4 @@ -package class12; +package class20; import java.util.TreeSet; @@ -11,7 +11,7 @@ import java.util.TreeSet; * 为了方便起见,假设arr中没有负数,其实也可以有 * 但是处理起来会比较麻烦,而且有没有负数都不影响算法流程的理解 * */ -public class Code11_SplitSumClosedSizeHalf { +public class Code03_SplitSumClosedSizeHalf { public static int right(int[] arr) { if (arr == null || arr.length < 2) { diff --git a/src/class11_17/Code09_NQueens.java b/src/class20/Code04_NQueens.java similarity index 98% rename from src/class11_17/Code09_NQueens.java rename to src/class20/Code04_NQueens.java index 05da2b6..739196a 100644 --- a/src/class11_17/Code09_NQueens.java +++ b/src/class20/Code04_NQueens.java @@ -1,6 +1,6 @@ -package class11_17; +package class20; -public class Code09_NQueens { +public class Code04_NQueens { public static int num1(int n) { if (n < 1) {