├── .idea
├── misc.xml
├── modules.xml
├── uiDesigner.xml
├── vcs.xml
└── workspace.xml
├── LeetCode.iml
├── README.md
├── images
├── _011_Container_With_Most_Water.jpg
├── _042_Trapping_Rain_Water.png
├── _043_Multiply_Strings.jpg
├── _309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown.png
└── _714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee.png
├── out
└── production
│ └── LeetCode
│ └── algorithm
│ ├── _001_Two_Sum
│ └── Solution.class
│ ├── _002_Add_Two_Numbers
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _003_Longest_Substring_Without_Repeating_Characters
│ └── Solution.class
│ ├── _004_Median_of_Two_Sorted_Arrays
│ └── Solution.class
│ ├── _005_Longest_Palindromic_Substring
│ └── Solution.class
│ ├── _007_Reverse_Integer
│ └── Solution.class
│ ├── _008_String_to_Integer
│ └── Solution.class
│ ├── _009_Palindrome_Number
│ └── Solution.class
│ ├── _011_Container_With_Most_Water
│ └── Solution.class
│ ├── _012_Integer_to_Roman
│ └── Solution.class
│ ├── _013_Roman_to_Integer
│ └── Solution.class
│ ├── _014_Longest_Common_Prefix
│ └── Solution.class
│ ├── _015_3Sum
│ └── Solution.class
│ ├── _016_3Sum_Closest
│ └── Solution.class
│ ├── _017_Letter_Combinations_of_a_Phone_Number
│ └── Solution.class
│ ├── _019_Remove_Nth_Node_From_End_of_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _020_Valid_Parentheses
│ └── Solution.class
│ ├── _021_Merge_Two_Sorted_Lists
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _022_Generate_Parentheses
│ └── Solution.class
│ ├── _023_Merge_k_Sorted_Lists
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _024_Swap_Nodes_in_Pairs
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _025_Reverse_Nodes_in_k_Group
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _027_Remove_Element
│ └── Solution.class
│ ├── _028_Implement_strStr
│ └── Solution.class
│ ├── _031_Next_Permutation
│ └── Solution.class
│ ├── _032_Longest_Valid_Parentheses
│ └── Solution.class
│ ├── _033_Search_in_Rotated_Sorted_Array
│ └── Solution.class
│ ├── _034_Find_First_and_Last_Position_of_Element_in_Sorted_Array
│ └── Solution.class
│ ├── _035_Search_Insert_Position
│ └── Solution.class
│ ├── _038_Count_and_Say
│ └── Solution.class
│ ├── _039_Combination_Sum
│ └── Solution.class
│ ├── _040_Combination_Sum_ll
│ └── Solution.class
│ ├── _041_First_Missing_Positive
│ └── Solution.class
│ ├── _042_Trapping_Rain_Water
│ └── Solution.class
│ ├── _043_Multiply_Strings
│ └── Solution.class
│ ├── _045_Jump_Game_II
│ └── Solution.class
│ ├── _046_Permutations
│ ├── Solution.class
│ └── Solution2.class
│ ├── _047_Permutations_II
│ └── Solution.class
│ ├── _048_Rotate_Image
│ └── Solution.class
│ ├── _049_Group_Anagrams
│ └── Solution.class
│ ├── _050_Pow
│ └── Solution.class
│ ├── _053_Maximum_Subarray
│ └── Solution.class
│ ├── _054_Spiral_Matrix
│ └── Solution.class
│ ├── _055_Jump_Game
│ └── Solution.class
│ ├── _056_Merge_Intervals
│ └── Solution.class
│ ├── _059_Spiral_Matrix_II
│ └── Solution.class
│ ├── _062_Unique_Paths
│ └── Solution.class
│ ├── _064_Minimum_Path_Sum
│ └── Solution.class
│ ├── _067_Add_Binary
│ └── Solution.class
│ ├── _069_Sqrt_x
│ └── Solution.class
│ ├── _070_Climbing_Stairs
│ └── Solution.class
│ ├── _072_Edit_Distance
│ └── Solution.class
│ ├── _075_Sort_Colors
│ └── Solution.class
│ ├── _076_Minimum_Window_Substring
│ └── Solution.class
│ ├── _077_Combinations
│ └── Solution.class
│ ├── _078_Subsets
│ └── Solution.class
│ ├── _079_Word_Search
│ └── Solution.class
│ ├── _083_Remove_Duplicates_from_Sorted_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _084_Largest_Rectangle_in_Histogram
│ └── Solution.class
│ ├── _091_Decode_Ways
│ └── Solution.class
│ ├── _093_Restore_IP_Addresses
│ └── Solution.class
│ ├── _094_Binary_Tree_Inorder_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _095_Unique_Binary_Search_Trees_II
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _096_Unique_Binary_Search_Trees
│ └── Solution.class
│ ├── _098_Validate_Binary_Search_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _101_Symmetric_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _102_Binary_Tree_Level_Order_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _103_Binary_Tree_Zigzag_Level_Order_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _104_Maximum_Depth_of_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _108_Convert_Sorted_Array_to_Binary_Search_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _109_Convert_Sorted_List_to_Binary_Search_Tree
│ ├── Solution$ListNode.class
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _110_Balanced_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _111_Minimum_Depth_of_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _112_Path_Sum
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _113_Path_Sum_II
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _114_Flatten_Binary_Tree_to_Linked_List
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _116_Populating_Next_Right_Pointers_in_Each_Node
│ ├── Solution$Node.class
│ └── Solution.class
│ ├── _121_Best_Time_to_Buy_and_Sell_Stock
│ └── Solution.class
│ ├── _122_Best_Time_to_Buy_and_Sell_Stock_II
│ └── Solution.class
│ ├── _123_Best_Time_to_Buy_and_Sell_Stock_III
│ └── Solution.class
│ ├── _124_Binary_Tree_Maximum_Path_Sum
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _125_Valid_Palindrome
│ └── Solution.class
│ ├── _127_Word_Ladder
│ └── Solution.class
│ ├── _128_Longest_Consecutive_Sequence
│ └── Solution.class
│ ├── _130_Surrounded_Regions
│ └── Solution.class
│ ├── _131_Palindrome_Partitioning
│ └── Solution.class
│ ├── _134_Gas_Station
│ └── Solution.class
│ ├── _135_Candy
│ └── Solution.class
│ ├── _136_Single_Number
│ └── Solution.class
│ ├── _138_Copy_List_with_Random_Pointer
│ ├── Solution$Node.class
│ └── Solution.class
│ ├── _139_Word_Break
│ └── Solution.class
│ ├── _140_Word_Break_II
│ └── Solution.class
│ ├── _141_Linked_List_Cycle
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _142_Linked_List_Cycle_II
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _143_Reorder_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _144_Binary_Tree_Preorder_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _145_Binary_Tree_Postorder_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _148_Sort_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _152_Maximum_Product_Subarray
│ └── Solution.class
│ ├── _153_Find_Minimum_in_Rotated_Sorted_Array
│ └── Solution.class
│ ├── _154_Find_Minimum_in_Rotated_Sorted_Array_II
│ └── Solution.class
│ ├── _155_Min_Stack
│ └── MinStack.class
│ ├── _160_Intersection_of_Two_Linked_Lists
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _169_Majority_Element
│ └── Solution.class
│ ├── _179_Largest_Number
│ ├── Solution$1.class
│ └── Solution.class
│ ├── _190_Reverse_Bits
│ └── Solution.class
│ ├── _198_House_Robber
│ └── Solution.class
│ ├── _199_Binary_Tree_Right_Side_View
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _200_Number_of_Islands
│ ├── Solution.class
│ ├── Solution2.class
│ └── UnionFind.class
│ ├── _202_Happy_Number
│ └── Solution.class
│ ├── _205_Isomorphic_Strings
│ └── Solution.class
│ ├── _206_Reverse_Linked_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _207_Course_Schedule
│ └── Solution.class
│ ├── _208_Implement_Trie_Prefix_Tree
│ ├── Solution$Trie.class
│ ├── Solution$TrieNode.class
│ └── Solution.class
│ ├── _213_House_Robber2
│ └── Solution.class
│ ├── _215_Kth_Largest_Element_in_an_Array
│ └── Solution.class
│ ├── _216_Combination_Sum_III
│ └── Solution.class
│ ├── _221_Maximal_Square
│ └── Solution.class
│ ├── _222_Count_Complete_Tree_Nodes
│ └── Solution.class
│ ├── _225_Implement_Stack_using_Queues
│ └── MyStack.class
│ ├── _226_Invert_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _230_Kth_Smallest_Element_in_a_BST
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _232_Implement_Queue_using_Stacks
│ └── MyQueue.class
│ ├── _234_Palindrome_Linked_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _236_Lowest_Common_Ancestor_of_a_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _238_Product_of_Array_Except_Self
│ └── Solution.class
│ ├── _239_Sliding_Window_Maximum
│ └── Solution.class
│ ├── _240_Search_a_2D_Matrix_II
│ └── Solution.class
│ ├── _242_Valid_Anagram
│ └── Solution.class
│ ├── _257_Binary_Tree_Paths
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _260_Single_Number_III
│ └── Solution.class
│ ├── _263_Ugly_Number
│ └── Solution.class
│ ├── _264_Ugly_Number_II
│ └── Solution.class
│ ├── _268_Missing_Number
│ └── Solution.class
│ ├── _279_Perfect_Squares
│ └── Solution.class
│ ├── _283_Move_Zeroes
│ └── Solution.class
│ ├── _287_Find_the_Duplicate_Number
│ └── Solution.class
│ ├── _295_Find_Median_from_Data_Stream
│ └── MedianFinder.class
│ ├── _297_Serialize_and_Deserialize_Binary_Tree
│ ├── Codec$TreeNode.class
│ └── Codec.class
│ ├── _300_Longest_Increasing_Subsequence
│ └── Solution.class
│ ├── _301_Remove_Invalid_Parentheses
│ └── Solution.class
│ ├── _303_Range_Sum_Query_Immutable
│ └── NumArray.class
│ ├── _309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown
│ └── Solution.class
│ ├── _312_Burst_Balloons
│ └── Solution.class
│ ├── _322_Coin_Change
│ └── Solution.class
│ ├── _328_Odd_Even_Linked_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _329_Longest_Increasing_Path_in_a_Matrix
│ └── Solution.class
│ ├── _334_Increasing_Triplet_Subsequence
│ └── Solution.class
│ ├── _337_House_Robber_III
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _338_Counting_Bits
│ └── Solution.class
│ ├── _343_Integer_Break
│ └── Solution.class
│ ├── _344_Reverse_String
│ └── Solution.class
│ ├── _347_Top_K_Frequent_Elements
│ └── Solution.class
│ ├── _350_Intersection_of_Two_Arrays_II
│ └── Solution.class
│ ├── _376_Wiggle_Subsequence
│ └── Solution.class
│ ├── _377_Combination_Sum_IV
│ └── Solution.class
│ ├── _378_Kth_Smallest_Element_in_a_Sorted_Matrix
│ └── Solution.class
│ ├── _387_First_Unique_Character_in_a_String
│ └── Solution.class
│ ├── _392_Is_Subsequence
│ └── Solution.class
│ ├── _394_Decode_String
│ └── Solution.class
│ ├── _395_Longest_Substring_with_At_Least_K_Repeating_Characters
│ └── Solution.class
│ ├── _404_Sum_of_Left_Leaves
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _405_Convert_a_Number_to_Hexadecimal
│ └── Solution.class
│ ├── _406_Queue_Reconstruction_by_Height
│ ├── Solution$1.class
│ └── Solution.class
│ ├── _409_Longest_Palindrome
│ └── Solution.class
│ ├── _413_Arithmetic_Slices
│ └── Solution.class
│ ├── _416_Partition_Equal_Subset_Sum
│ └── Solution.class
│ ├── _435_Non_overlapping_Intervals
│ ├── Solution$1.class
│ ├── Solution$Interval.class
│ └── Solution.class
│ ├── _437_Path_Sum_III
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _438_Find_All_Anagrams_in_a_String
│ └── Solution.class
│ ├── _445_Add_Two_Numbers_II
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _448_Find_All_Numbers_Disappeared_in_an_Array
│ └── Solution.class
│ ├── _452_Minimum_Number_of_Arrows_to_Burst_Balloons
│ ├── Solution$1.class
│ └── Solution.class
│ ├── _455_Assign_Cookies
│ └── Solution.class
│ ├── _460_LFU_Cache
│ └── LFUCache.class
│ ├── _461_Hamming_Distance
│ └── Solution.class
│ ├── _462_Minimum_Moves_to_Equal_Array_Elements_II
│ └── Solution.class
│ ├── _474_Ones_and_Zeroes
│ └── Solution.class
│ ├── _485_Max_Consecutive_Ones
│ └── Solution.class
│ ├── _494_Target_Sum
│ └── Solution.class
│ ├── _496_Next_Greater_Element_I
│ └── Solution.class
│ ├── _501_Find_Mode_in_Binary_Search_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _503_Next_Greater_Element_II
│ └── Solution.class
│ ├── _504_Base_7
│ └── Solution.class
│ ├── _513_Find_Bottom_Left_Tree_Value
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _518_Coin_Change_2
│ └── Solution.class
│ ├── _524_Longest_Word_in_Dictionary_through_Deleting
│ └── Solution.class
│ ├── _530_Minimum_Absolute_Difference_in_BST
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _538_Convert_BST_to_Greater_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _540_Single_Element_in_a_Sorted_Array
│ └── Solution.class
│ ├── _543_Diameter_of_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _547_Friend_Circles
│ └── Solution.class
│ ├── _557_Reverse_Words_in_a_String_III
│ └── Solution.class
│ ├── _560_Subarray_Sum_Equals_K
│ └── Solution.class
│ ├── _565_Array_Nesting
│ └── Solution.class
│ ├── _566_Reshape_the_Matrix
│ └── Solution.class
│ ├── _572_Subtree_of_Another_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _581_Shortest_Unsorted_Continuous_Subarray
│ └── Solution.class
│ ├── _583_Delete_Operation_for_Two_Strings
│ └── Solution.class
│ ├── _605_Can_Place_Flowers
│ └── Solution.class
│ ├── _617_Merge_Two_Binary_Trees
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _621_Task_Scheduler
│ └── Solution.class
│ ├── _637_Average_of_Levels_in_Binary_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _645_Set_Mismatch
│ └── Solution.class
│ ├── _646_Maximum_Length_of_Pair_Chain
│ └── Solution.class
│ ├── _647_Palindromic_Substrings
│ └── Solution.class
│ ├── _650_2_Keys_Keyboard
│ └── Solution.class
│ ├── _653_Two_Sum_IV_Input_is_a_BST
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _665_Non_decreasing_Array
│ └── Solution.class
│ ├── _669_Trim_a_Binary_Search_Tree
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _680_Valid_Palindrome_II
│ └── Solution.class
│ ├── _687_Longest_Univalue_Path
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _695_Max_Area_of_Island
│ └── Solution.class
│ ├── _697_Degree_of_an_Array
│ └── Solution.class
│ ├── _714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee
│ └── Solution.class
│ ├── _725_Split_Linked_List_in_Parts
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _739_Daily_Temperatures
│ └── Solution.class
│ ├── _746_Min_Cost_Climbing_Stairs
│ └── Solution.class
│ ├── _763_Partition_Labels
│ └── Solution.class
│ ├── _769_Max_Chunks_To_Make_Sorted
│ └── Solution.class
│ ├── _771_Jewels_and_Stones
│ └── Solution.class
│ ├── _876_Middle_of_the_Linked_List
│ ├── Solution$ListNode.class
│ └── Solution.class
│ ├── _889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal
│ ├── Solution$TreeNode.class
│ └── Solution.class
│ ├── _90_Subsets_II
│ └── Solution.class
│ └── _946_Validate_Stack_Sequences
│ └── Solution.class
└── src
└── algorithm
├── _001_Two_Sum
└── Solution.java
├── _002_Add_Two_Numbers
└── Solution.java
├── _003_Longest_Substring_Without_Repeating_Characters
└── Solution.java
├── _004_Median_of_Two_Sorted_Arrays
└── Solution.java
├── _005_Longest_Palindromic_Substring
└── Solution.java
├── _007_Reverse_Integer
└── Solution.java
├── _008_String_to_Integer
└── Solution.java
├── _009_Palindrome_Number
└── Solution.java
├── _011_Container_With_Most_Water
└── Solution.java
├── _012_Integer_to_Roman
└── Solution.java
├── _013_Roman_to_Integer
└── Solution.java
├── _014_Longest_Common_Prefix
└── Solution.java
├── _015_3Sum
└── Solution.java
├── _016_3Sum_Closest
└── Solution.java
├── _017_Letter_Combinations_of_a_Phone_Number
└── Solution.java
├── _019_Remove_Nth_Node_From_End_of_List
└── Solution.java
├── _020_Valid_Parentheses
└── Solution.java
├── _021_Merge_Two_Sorted_Lists
└── Solution.java
├── _022_Generate_Parentheses
└── Solution.java
├── _023_Merge_k_Sorted_Lists
└── Solution.java
├── _024_Swap_Nodes_in_Pairs
└── Solution.java
├── _025_Reverse_Nodes_in_k_Group
└── Solution.java
├── _026_Remove_Duplicates_from_Sorted_Array
└── Solution.java
├── _027_Remove_Element
└── Solution.java
├── _028_Implement_strStr
└── Solution.java
├── _031_Next_Permutation
└── Solution.java
├── _032_Longest_Valid_Parentheses
└── Solution.java
├── _033_Search_in_Rotated_Sorted_Array
└── Solution.java
├── _034_Find_First_and_Last_Position_of_Element_in_Sorted_Array
└── Solution.java
├── _035_Search_Insert_Position
└── Solution.java
├── _038_Count_and_Say
└── Solution.java
├── _039_Combination_Sum
└── Solution.java
├── _040_Combination_Sum_ll
└── Solution.java
├── _041_First_Missing_Positive
└── Solution.java
├── _042_Trapping_Rain_Water
└── Solution.java
├── _043_Multiply_Strings
└── Solution.java
├── _045_Jump_Game_II
└── Solution.java
├── _046_Permutations
├── Solution.java
└── Solution2.java
├── _047_Permutations_II
├── Solution.java
└── Solution2.java
├── _048_Rotate_Image
└── Solution.java
├── _049_Group_Anagrams
└── Solution.java
├── _050_Pow
└── Solution.java
├── _053_Maximum_Subarray
└── Solution.java
├── _054_Spiral_Matrix
└── Solution.java
├── _055_Jump_Game
└── Solution.java
├── _056_Merge_Intervals
└── Solution.java
├── _059_Spiral_Matrix_II
└── Solution.java
├── _062_Unique_Paths
└── Solution.java
├── _064_Minimum_Path_Sum
└── Solution.java
├── _067_Add_Binary
└── Solution.java
├── _069_Sqrt_x
└── Solution.java
├── _070_Climbing_Stairs
└── Solution.java
├── _072_Edit_Distance
└── Solution.java
├── _075_Sort_Colors
└── Solution.java
├── _076_Minimum_Window_Substring
└── Solution.java
├── _077_Combinations
└── Solution.java
├── _078_Subsets
└── Solution.java
├── _079_Word_Search
└── Solution.java
├── _083_Remove_Duplicates_from_Sorted_List
└── Solution.java
├── _084_Largest_Rectangle_in_Histogram
└── Solution.java
├── _088_Merge_Sorted_Array
└── Solution.java
├── _090_Subsets_II
└── Solution.java
├── _091_Decode_Ways
└── Solution.java
├── _093_Restore_IP_Addresses
└── Solution.java
├── _094_Binary_Tree_Inorder_Traversal
└── Solution.java
├── _095_Unique_Binary_Search_Trees_II
└── Solution.java
├── _096_Unique_Binary_Search_Trees
└── Solution.java
├── _098_Validate_Binary_Search_Tree
└── Solution.java
├── _101_Symmetric_Tree
└── Solution.java
├── _102_Binary_Tree_Level_Order_Traversal
└── Solution.java
├── _103_Binary_Tree_Zigzag_Level_Order_Traversal
└── Solution.java
├── _104_Maximum_Depth_of_Binary_Tree
└── Solution.java
├── _105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal
└── Solution.java
├── _108_Convert_Sorted_Array_to_Binary_Search_Tree
└── Solution.java
├── _109_Convert_Sorted_List_to_Binary_Search_Tree
└── Solution.java
├── _110_Balanced_Binary_Tree
└── Solution.java
├── _111_Minimum_Depth_of_Binary_Tree
└── Solution.java
├── _112_Path_Sum
└── Solution.java
├── _113_Path_Sum_II
└── Solution.java
├── _114_Flatten_Binary_Tree_to_Linked_List
└── Solution.java
├── _116_Populating_Next_Right_Pointers_in_Each_Node
└── Solution.java
├── _121_Best_Time_to_Buy_and_Sell_Stock
└── Solution.java
├── _122_Best_Time_to_Buy_and_Sell_Stock_II
└── Solution.java
├── _123_Best_Time_to_Buy_and_Sell_Stock_III
└── Solution.java
├── _124_Binary_Tree_Maximum_Path_Sum
└── Solution.java
├── _125_Valid_Palindrome
└── Solution.java
├── _127_Word_Ladder
└── Solution.java
├── _128_Longest_Consecutive_Sequence
└── Solution.java
├── _130_Surrounded_Regions
└── Solution.java
├── _131_Palindrome_Partitioning
└── Solution.java
├── _134_Gas_Station
└── Solution.java
├── _135_Candy
└── Solution.java
├── _136_Single_Number
└── Solution.java
├── _138_Copy_List_with_Random_Pointer
└── Solution.java
├── _139_Word_Break
└── Solution.java
├── _140_Word_Break_II
└── Solution.java
├── _141_Linked_List_Cycle
└── Solution.java
├── _142_Linked_List_Cycle_II
└── Solution.java
├── _143_Reorder_List
└── Solution.java
├── _144_Binary_Tree_Preorder_Traversal
└── Solution.java
├── _145_Binary_Tree_Postorder_Traversal
└── Solution.java
├── _148_Sort_List
└── Solution.java
├── _152_Maximum_Product_Subarray
└── Solution.java
├── _153_Find_Minimum_in_Rotated_Sorted_Array
└── Solution.java
├── _154_Find_Minimum_in_Rotated_Sorted_Array_II
└── Solution.java
├── _155_Min_Stack
└── MinStack.java
├── _160_Intersection_of_Two_Linked_Lists
└── Solution.java
├── _169_Majority_Element
└── Solution.java
├── _179_Largest_Number
└── Solution.java
├── _190_Reverse_Bits
└── Solution.java
├── _198_House_Robber
└── Solution.java
├── _199_Binary_Tree_Right_Side_View
└── Solution.java
├── _200_Number_of_Islands
├── Solution.java
└── Solution2.java
├── _202_Happy_Number
└── Solution.java
├── _205_Isomorphic_Strings
└── Solution.java
├── _206_Reverse_Linked_List
└── Solution.java
├── _207_Course_Schedule
└── Solution.java
├── _208_Implement_Trie_Prefix_Tree
└── Solution.java
├── _213_House_Robber2
└── Solution.java
├── _215_Kth_Largest_Element_in_an_Array
└── Solution.java
├── _216_Combination_Sum_III
└── Solution.java
├── _221_Maximal_Square
└── Solution.java
├── _222_Count_Complete_Tree_Nodes
└── Solution.java
├── _225_Implement_Stack_using_Queues
└── MyStack.java
├── _226_Invert_Binary_Tree
└── Solution.java
├── _230_Kth_Smallest_Element_in_a_BST
└── Solution.java
├── _232_Implement_Queue_using_Stacks
└── MyQueue.java
├── _234_Palindrome_Linked_List
└── Solution.java
├── _235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree
└── Solution.java
├── _236_Lowest_Common_Ancestor_of_a_Binary_Tree
└── Solution.java
├── _238_Product_of_Array_Except_Self
└── Solution.java
├── _239_Sliding_Window_Maximum
└── Solution.java
├── _240_Search_a_2D_Matrix_II
└── Solution.java
├── _242_Valid_Anagram
└── Solution.java
├── _257_Binary_Tree_Paths
└── Solution.java
├── _260_Single_Number_III
└── Solution.java
├── _263_Ugly_Number
└── Solution.java
├── _264_Ugly_Number_II
└── Solution.java
├── _268_Missing_Number
└── Solution.java
├── _279_Perfect_Squares
└── Solution.java
├── _283_Move_Zeroes
└── Solution.java
├── _287_Find_the_Duplicate_Number
└── Solution.java
├── _295_Find_Median_from_Data_Stream
└── MedianFinder.java
├── _297_Serialize_and_Deserialize_Binary_Tree
└── Codec.java
├── _300_Longest_Increasing_Subsequence
└── Solution.java
├── _301_Remove_Invalid_Parentheses
└── Solution.java
├── _303_Range_Sum_Query_Immutable
└── NumArray.java
├── _309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown
└── Solution.java
├── _312_Burst_Balloons
└── Solution.java
├── _322_Coin_Change
└── Solution.java
├── _328_Odd_Even_Linked_List
└── Solution.java
├── _329_Longest_Increasing_Path_in_a_Matrix
└── Solution.java
├── _334_Increasing_Triplet_Subsequence
└── Solution.java
├── _337_House_Robber_III
└── Solution.java
├── _338_Counting_Bits
└── Solution.java
├── _343_Integer_Break
└── Solution.java
├── _344_Reverse_String
└── Solution.java
├── _347_Top_K_Frequent_Elements
└── Solution.java
├── _350_Intersection_of_Two_Arrays_II
└── Solution.java
├── _376_Wiggle_Subsequence
└── Solution.java
├── _377_Combination_Sum_IV
└── Solution.java
├── _378_Kth_Smallest_Element_in_a_Sorted_Matrix
└── Solution.java
├── _387_First_Unique_Character_in_a_String
└── Solution.java
├── _392_Is_Subsequence
└── Solution.java
├── _394_Decode_String
└── Solution.java
├── _395_Longest_Substring_with_At_Least_K_Repeating_Characters
└── Solution.java
├── _404_Sum_of_Left_Leaves
└── Solution.java
├── _405_Convert_a_Number_to_Hexadecimal
└── Solution.java
├── _406_Queue_Reconstruction_by_Height
└── Solution.java
├── _409_Longest_Palindrome
└── Solution.java
├── _413_Arithmetic_Slices
└── Solution.java
├── _416_Partition_Equal_Subset_Sum
└── Solution.java
├── _435_Non_overlapping_Intervals
└── Solution.java
├── _437_Path_Sum_III
└── Solution.java
├── _438_Find_All_Anagrams_in_a_String
└── Solution.java
├── _445_Add_Two_Numbers_II
└── Solution.java
├── _448_Find_All_Numbers_Disappeared_in_an_Array
└── Solution.java
├── _452_Minimum_Number_of_Arrows_to_Burst_Balloons
└── Solution.java
├── _455_Assign_Cookies
└── Solution.java
├── _460_LFU_Cache
└── LFUCache.java
├── _461_Hamming_Distance
└── Solution.java
├── _462_Minimum_Moves_to_Equal_Array_Elements_II
└── Solution.java
├── _474_Ones_and_Zeroes
└── Solution.java
├── _485_Max_Consecutive_Ones
└── Solution.java
├── _494_Target_Sum
└── Solution.java
├── _496_Next_Greater_Element_I
└── Solution.java
├── _501_Find_Mode_in_Binary_Search_Tree
└── Solution.java
├── _503_Next_Greater_Element_II
└── Solution.java
├── _504_Base_7
└── Solution.java
├── _513_Find_Bottom_Left_Tree_Value
└── Solution.java
├── _518_Coin_Change_2
└── Solution.java
├── _524_Longest_Word_in_Dictionary_through_Deleting
└── Solution.java
├── _530_Minimum_Absolute_Difference_in_BST
└── Solution.java
├── _538_Convert_BST_to_Greater_Tree
└── Solution.java
├── _540_Single_Element_in_a_Sorted_Array
└── Solution.java
├── _543_Diameter_of_Binary_Tree
└── Solution.java
├── _547_Friend_Circles
└── Solution.java
├── _557_Reverse_Words_in_a_String_III
└── Solution.java
├── _560_Subarray_Sum_Equals_K
└── Solution.java
├── _565_Array_Nesting
└── Solution.java
├── _566_Reshape_the_Matrix
└── Solution.java
├── _572_Subtree_of_Another_Tree
└── Solution.java
├── _581_Shortest_Unsorted_Continuous_Subarray
└── Solution.java
├── _583_Delete_Operation_for_Two_Strings
└── Solution.java
├── _605_Can_Place_Flowers
└── Solution.java
├── _617_Merge_Two_Binary_Trees
└── Solution.java
├── _621_Task_Scheduler
└── Solution.java
├── _637_Average_of_Levels_in_Binary_Tree
└── Solution.java
├── _645_Set_Mismatch
└── Solution.java
├── _646_Maximum_Length_of_Pair_Chain
└── Solution.java
├── _647_Palindromic_Substrings
└── Solution.java
├── _650_2_Keys_Keyboard
└── Solution.java
├── _653_Two_Sum_IV_Input_is_a_BST
└── Solution.java
├── _665_Non_decreasing_Array
└── Solution.java
├── _669_Trim_a_Binary_Search_Tree
└── Solution.java
├── _680_Valid_Palindrome_II
└── Solution.java
├── _687_Longest_Univalue_Path
└── Solution.java
├── _695_Max_Area_of_Island
└── Solution.java
├── _697_Degree_of_an_Array
└── Solution.java
├── _714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee
└── Solution.java
├── _725_Split_Linked_List_in_Parts
└── Solution.java
├── _739_Daily_Temperatures
└── Solution.java
├── _746_Min_Cost_Climbing_Stairs
└── Solution.java
├── _763_Partition_Labels
└── Solution.java
├── _769_Max_Chunks_To_Make_Sorted
└── Solution.java
├── _771_Jewels_and_Stones
└── Solution.java
├── _876_Middle_of_the_Linked_List
└── Solution.java
├── _889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal
└── Solution.java
└── _946_Validate_Stack_Sequences
└── Solution.java
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LeetCode.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/images/_011_Container_With_Most_Water.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/images/_011_Container_With_Most_Water.jpg
--------------------------------------------------------------------------------
/images/_042_Trapping_Rain_Water.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/images/_042_Trapping_Rain_Water.png
--------------------------------------------------------------------------------
/images/_043_Multiply_Strings.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/images/_043_Multiply_Strings.jpg
--------------------------------------------------------------------------------
/images/_309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/images/_309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown.png
--------------------------------------------------------------------------------
/images/_714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/images/_714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee.png
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_001_Two_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_001_Two_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_002_Add_Two_Numbers/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_002_Add_Two_Numbers/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_002_Add_Two_Numbers/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_002_Add_Two_Numbers/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_003_Longest_Substring_Without_Repeating_Characters/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_003_Longest_Substring_Without_Repeating_Characters/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_004_Median_of_Two_Sorted_Arrays/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_004_Median_of_Two_Sorted_Arrays/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_005_Longest_Palindromic_Substring/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_005_Longest_Palindromic_Substring/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_007_Reverse_Integer/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_007_Reverse_Integer/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_008_String_to_Integer/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_008_String_to_Integer/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_009_Palindrome_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_009_Palindrome_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_011_Container_With_Most_Water/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_011_Container_With_Most_Water/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_012_Integer_to_Roman/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_012_Integer_to_Roman/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_013_Roman_to_Integer/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_013_Roman_to_Integer/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_014_Longest_Common_Prefix/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_014_Longest_Common_Prefix/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_015_3Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_015_3Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_016_3Sum_Closest/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_016_3Sum_Closest/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_017_Letter_Combinations_of_a_Phone_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_017_Letter_Combinations_of_a_Phone_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_019_Remove_Nth_Node_From_End_of_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_019_Remove_Nth_Node_From_End_of_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_019_Remove_Nth_Node_From_End_of_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_019_Remove_Nth_Node_From_End_of_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_020_Valid_Parentheses/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_020_Valid_Parentheses/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_021_Merge_Two_Sorted_Lists/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_021_Merge_Two_Sorted_Lists/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_021_Merge_Two_Sorted_Lists/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_021_Merge_Two_Sorted_Lists/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_022_Generate_Parentheses/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_022_Generate_Parentheses/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_023_Merge_k_Sorted_Lists/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_023_Merge_k_Sorted_Lists/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_023_Merge_k_Sorted_Lists/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_023_Merge_k_Sorted_Lists/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_024_Swap_Nodes_in_Pairs/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_024_Swap_Nodes_in_Pairs/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_024_Swap_Nodes_in_Pairs/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_024_Swap_Nodes_in_Pairs/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_025_Reverse_Nodes_in_k_Group/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_025_Reverse_Nodes_in_k_Group/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_025_Reverse_Nodes_in_k_Group/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_025_Reverse_Nodes_in_k_Group/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_027_Remove_Element/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_027_Remove_Element/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_028_Implement_strStr/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_028_Implement_strStr/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_031_Next_Permutation/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_031_Next_Permutation/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_032_Longest_Valid_Parentheses/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_032_Longest_Valid_Parentheses/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_033_Search_in_Rotated_Sorted_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_033_Search_in_Rotated_Sorted_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_034_Find_First_and_Last_Position_of_Element_in_Sorted_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_034_Find_First_and_Last_Position_of_Element_in_Sorted_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_035_Search_Insert_Position/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_035_Search_Insert_Position/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_038_Count_and_Say/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_038_Count_and_Say/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_039_Combination_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_039_Combination_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_040_Combination_Sum_ll/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_040_Combination_Sum_ll/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_041_First_Missing_Positive/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_041_First_Missing_Positive/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_042_Trapping_Rain_Water/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_042_Trapping_Rain_Water/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_043_Multiply_Strings/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_043_Multiply_Strings/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_045_Jump_Game_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_045_Jump_Game_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_046_Permutations/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_046_Permutations/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_046_Permutations/Solution2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_046_Permutations/Solution2.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_047_Permutations_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_047_Permutations_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_048_Rotate_Image/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_048_Rotate_Image/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_049_Group_Anagrams/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_049_Group_Anagrams/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_050_Pow/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_050_Pow/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_053_Maximum_Subarray/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_053_Maximum_Subarray/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_054_Spiral_Matrix/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_054_Spiral_Matrix/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_055_Jump_Game/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_055_Jump_Game/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_056_Merge_Intervals/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_056_Merge_Intervals/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_059_Spiral_Matrix_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_059_Spiral_Matrix_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_062_Unique_Paths/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_062_Unique_Paths/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_064_Minimum_Path_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_064_Minimum_Path_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_067_Add_Binary/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_067_Add_Binary/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_069_Sqrt_x/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_069_Sqrt_x/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_070_Climbing_Stairs/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_070_Climbing_Stairs/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_072_Edit_Distance/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_072_Edit_Distance/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_075_Sort_Colors/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_075_Sort_Colors/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_076_Minimum_Window_Substring/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_076_Minimum_Window_Substring/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_077_Combinations/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_077_Combinations/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_078_Subsets/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_078_Subsets/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_079_Word_Search/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_079_Word_Search/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_083_Remove_Duplicates_from_Sorted_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_083_Remove_Duplicates_from_Sorted_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_083_Remove_Duplicates_from_Sorted_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_083_Remove_Duplicates_from_Sorted_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_084_Largest_Rectangle_in_Histogram/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_084_Largest_Rectangle_in_Histogram/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_091_Decode_Ways/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_091_Decode_Ways/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_093_Restore_IP_Addresses/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_093_Restore_IP_Addresses/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_094_Binary_Tree_Inorder_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_094_Binary_Tree_Inorder_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_094_Binary_Tree_Inorder_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_094_Binary_Tree_Inorder_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_095_Unique_Binary_Search_Trees_II/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_095_Unique_Binary_Search_Trees_II/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_095_Unique_Binary_Search_Trees_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_095_Unique_Binary_Search_Trees_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_096_Unique_Binary_Search_Trees/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_096_Unique_Binary_Search_Trees/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_098_Validate_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_098_Validate_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_098_Validate_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_098_Validate_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_101_Symmetric_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_101_Symmetric_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_101_Symmetric_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_101_Symmetric_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_102_Binary_Tree_Level_Order_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_102_Binary_Tree_Level_Order_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_102_Binary_Tree_Level_Order_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_102_Binary_Tree_Level_Order_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_103_Binary_Tree_Zigzag_Level_Order_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_103_Binary_Tree_Zigzag_Level_Order_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_103_Binary_Tree_Zigzag_Level_Order_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_103_Binary_Tree_Zigzag_Level_Order_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_104_Maximum_Depth_of_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_104_Maximum_Depth_of_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_104_Maximum_Depth_of_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_104_Maximum_Depth_of_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_108_Convert_Sorted_Array_to_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_108_Convert_Sorted_Array_to_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_108_Convert_Sorted_Array_to_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_108_Convert_Sorted_Array_to_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_109_Convert_Sorted_List_to_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_110_Balanced_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_110_Balanced_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_110_Balanced_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_110_Balanced_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_111_Minimum_Depth_of_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_111_Minimum_Depth_of_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_111_Minimum_Depth_of_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_111_Minimum_Depth_of_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_112_Path_Sum/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_112_Path_Sum/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_112_Path_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_112_Path_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_113_Path_Sum_II/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_113_Path_Sum_II/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_113_Path_Sum_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_113_Path_Sum_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_114_Flatten_Binary_Tree_to_Linked_List/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_114_Flatten_Binary_Tree_to_Linked_List/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_114_Flatten_Binary_Tree_to_Linked_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_114_Flatten_Binary_Tree_to_Linked_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_116_Populating_Next_Right_Pointers_in_Each_Node/Solution$Node.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_116_Populating_Next_Right_Pointers_in_Each_Node/Solution$Node.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_116_Populating_Next_Right_Pointers_in_Each_Node/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_116_Populating_Next_Right_Pointers_in_Each_Node/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_121_Best_Time_to_Buy_and_Sell_Stock/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_121_Best_Time_to_Buy_and_Sell_Stock/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_122_Best_Time_to_Buy_and_Sell_Stock_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_122_Best_Time_to_Buy_and_Sell_Stock_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_123_Best_Time_to_Buy_and_Sell_Stock_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_123_Best_Time_to_Buy_and_Sell_Stock_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_124_Binary_Tree_Maximum_Path_Sum/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_124_Binary_Tree_Maximum_Path_Sum/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_124_Binary_Tree_Maximum_Path_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_124_Binary_Tree_Maximum_Path_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_125_Valid_Palindrome/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_125_Valid_Palindrome/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_127_Word_Ladder/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_127_Word_Ladder/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_128_Longest_Consecutive_Sequence/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_128_Longest_Consecutive_Sequence/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_130_Surrounded_Regions/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_130_Surrounded_Regions/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_131_Palindrome_Partitioning/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_131_Palindrome_Partitioning/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_134_Gas_Station/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_134_Gas_Station/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_135_Candy/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_135_Candy/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_136_Single_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_136_Single_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_138_Copy_List_with_Random_Pointer/Solution$Node.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_138_Copy_List_with_Random_Pointer/Solution$Node.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_138_Copy_List_with_Random_Pointer/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_138_Copy_List_with_Random_Pointer/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_139_Word_Break/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_139_Word_Break/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_140_Word_Break_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_140_Word_Break_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_141_Linked_List_Cycle/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_141_Linked_List_Cycle/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_141_Linked_List_Cycle/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_141_Linked_List_Cycle/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_142_Linked_List_Cycle_II/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_142_Linked_List_Cycle_II/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_142_Linked_List_Cycle_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_142_Linked_List_Cycle_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_143_Reorder_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_143_Reorder_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_143_Reorder_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_143_Reorder_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_144_Binary_Tree_Preorder_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_144_Binary_Tree_Preorder_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_144_Binary_Tree_Preorder_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_144_Binary_Tree_Preorder_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_145_Binary_Tree_Postorder_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_145_Binary_Tree_Postorder_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_145_Binary_Tree_Postorder_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_145_Binary_Tree_Postorder_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_148_Sort_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_148_Sort_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_148_Sort_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_148_Sort_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_152_Maximum_Product_Subarray/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_152_Maximum_Product_Subarray/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_153_Find_Minimum_in_Rotated_Sorted_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_153_Find_Minimum_in_Rotated_Sorted_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_154_Find_Minimum_in_Rotated_Sorted_Array_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_154_Find_Minimum_in_Rotated_Sorted_Array_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_155_Min_Stack/MinStack.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_155_Min_Stack/MinStack.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_160_Intersection_of_Two_Linked_Lists/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_160_Intersection_of_Two_Linked_Lists/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_160_Intersection_of_Two_Linked_Lists/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_160_Intersection_of_Two_Linked_Lists/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_169_Majority_Element/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_169_Majority_Element/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_179_Largest_Number/Solution$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_179_Largest_Number/Solution$1.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_179_Largest_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_179_Largest_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_190_Reverse_Bits/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_190_Reverse_Bits/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_198_House_Robber/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_198_House_Robber/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_199_Binary_Tree_Right_Side_View/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_199_Binary_Tree_Right_Side_View/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_199_Binary_Tree_Right_Side_View/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_199_Binary_Tree_Right_Side_View/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_200_Number_of_Islands/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_200_Number_of_Islands/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_200_Number_of_Islands/Solution2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_200_Number_of_Islands/Solution2.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_200_Number_of_Islands/UnionFind.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_200_Number_of_Islands/UnionFind.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_202_Happy_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_202_Happy_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_205_Isomorphic_Strings/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_205_Isomorphic_Strings/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_206_Reverse_Linked_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_206_Reverse_Linked_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_206_Reverse_Linked_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_206_Reverse_Linked_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_207_Course_Schedule/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_207_Course_Schedule/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution$Trie.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution$Trie.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution$TrieNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution$TrieNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_208_Implement_Trie_Prefix_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_213_House_Robber2/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_213_House_Robber2/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_215_Kth_Largest_Element_in_an_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_215_Kth_Largest_Element_in_an_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_216_Combination_Sum_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_216_Combination_Sum_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_221_Maximal_Square/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_221_Maximal_Square/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_222_Count_Complete_Tree_Nodes/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_222_Count_Complete_Tree_Nodes/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_225_Implement_Stack_using_Queues/MyStack.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_225_Implement_Stack_using_Queues/MyStack.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_226_Invert_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_226_Invert_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_226_Invert_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_226_Invert_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_230_Kth_Smallest_Element_in_a_BST/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_230_Kth_Smallest_Element_in_a_BST/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_230_Kth_Smallest_Element_in_a_BST/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_230_Kth_Smallest_Element_in_a_BST/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_232_Implement_Queue_using_Stacks/MyQueue.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_232_Implement_Queue_using_Stacks/MyQueue.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_234_Palindrome_Linked_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_234_Palindrome_Linked_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_234_Palindrome_Linked_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_234_Palindrome_Linked_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_236_Lowest_Common_Ancestor_of_a_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_236_Lowest_Common_Ancestor_of_a_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_236_Lowest_Common_Ancestor_of_a_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_236_Lowest_Common_Ancestor_of_a_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_238_Product_of_Array_Except_Self/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_238_Product_of_Array_Except_Self/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_239_Sliding_Window_Maximum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_239_Sliding_Window_Maximum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_240_Search_a_2D_Matrix_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_240_Search_a_2D_Matrix_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_242_Valid_Anagram/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_242_Valid_Anagram/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_257_Binary_Tree_Paths/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_257_Binary_Tree_Paths/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_257_Binary_Tree_Paths/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_257_Binary_Tree_Paths/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_260_Single_Number_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_260_Single_Number_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_263_Ugly_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_263_Ugly_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_264_Ugly_Number_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_264_Ugly_Number_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_268_Missing_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_268_Missing_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_279_Perfect_Squares/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_279_Perfect_Squares/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_283_Move_Zeroes/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_283_Move_Zeroes/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_287_Find_the_Duplicate_Number/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_287_Find_the_Duplicate_Number/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_295_Find_Median_from_Data_Stream/MedianFinder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_295_Find_Median_from_Data_Stream/MedianFinder.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_297_Serialize_and_Deserialize_Binary_Tree/Codec$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_297_Serialize_and_Deserialize_Binary_Tree/Codec$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_297_Serialize_and_Deserialize_Binary_Tree/Codec.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_297_Serialize_and_Deserialize_Binary_Tree/Codec.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_300_Longest_Increasing_Subsequence/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_300_Longest_Increasing_Subsequence/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_301_Remove_Invalid_Parentheses/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_301_Remove_Invalid_Parentheses/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_303_Range_Sum_Query_Immutable/NumArray.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_303_Range_Sum_Query_Immutable/NumArray.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_312_Burst_Balloons/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_312_Burst_Balloons/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_322_Coin_Change/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_322_Coin_Change/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_328_Odd_Even_Linked_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_328_Odd_Even_Linked_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_328_Odd_Even_Linked_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_328_Odd_Even_Linked_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_329_Longest_Increasing_Path_in_a_Matrix/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_329_Longest_Increasing_Path_in_a_Matrix/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_334_Increasing_Triplet_Subsequence/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_334_Increasing_Triplet_Subsequence/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_337_House_Robber_III/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_337_House_Robber_III/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_337_House_Robber_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_337_House_Robber_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_338_Counting_Bits/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_338_Counting_Bits/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_343_Integer_Break/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_343_Integer_Break/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_344_Reverse_String/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_344_Reverse_String/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_347_Top_K_Frequent_Elements/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_347_Top_K_Frequent_Elements/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_350_Intersection_of_Two_Arrays_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_350_Intersection_of_Two_Arrays_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_376_Wiggle_Subsequence/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_376_Wiggle_Subsequence/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_377_Combination_Sum_IV/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_377_Combination_Sum_IV/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_378_Kth_Smallest_Element_in_a_Sorted_Matrix/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_378_Kth_Smallest_Element_in_a_Sorted_Matrix/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_387_First_Unique_Character_in_a_String/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_387_First_Unique_Character_in_a_String/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_392_Is_Subsequence/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_392_Is_Subsequence/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_394_Decode_String/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_394_Decode_String/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_395_Longest_Substring_with_At_Least_K_Repeating_Characters/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_395_Longest_Substring_with_At_Least_K_Repeating_Characters/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_404_Sum_of_Left_Leaves/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_404_Sum_of_Left_Leaves/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_404_Sum_of_Left_Leaves/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_404_Sum_of_Left_Leaves/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_405_Convert_a_Number_to_Hexadecimal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_405_Convert_a_Number_to_Hexadecimal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_406_Queue_Reconstruction_by_Height/Solution$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_406_Queue_Reconstruction_by_Height/Solution$1.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_406_Queue_Reconstruction_by_Height/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_406_Queue_Reconstruction_by_Height/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_409_Longest_Palindrome/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_409_Longest_Palindrome/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_413_Arithmetic_Slices/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_413_Arithmetic_Slices/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_416_Partition_Equal_Subset_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_416_Partition_Equal_Subset_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution$1.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution$Interval.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution$Interval.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_435_Non_overlapping_Intervals/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_437_Path_Sum_III/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_437_Path_Sum_III/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_437_Path_Sum_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_437_Path_Sum_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_438_Find_All_Anagrams_in_a_String/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_438_Find_All_Anagrams_in_a_String/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_445_Add_Two_Numbers_II/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_445_Add_Two_Numbers_II/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_445_Add_Two_Numbers_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_445_Add_Two_Numbers_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_448_Find_All_Numbers_Disappeared_in_an_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_448_Find_All_Numbers_Disappeared_in_an_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_452_Minimum_Number_of_Arrows_to_Burst_Balloons/Solution$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_452_Minimum_Number_of_Arrows_to_Burst_Balloons/Solution$1.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_452_Minimum_Number_of_Arrows_to_Burst_Balloons/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_452_Minimum_Number_of_Arrows_to_Burst_Balloons/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_455_Assign_Cookies/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_455_Assign_Cookies/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_460_LFU_Cache/LFUCache.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_460_LFU_Cache/LFUCache.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_461_Hamming_Distance/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_461_Hamming_Distance/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_462_Minimum_Moves_to_Equal_Array_Elements_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_462_Minimum_Moves_to_Equal_Array_Elements_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_474_Ones_and_Zeroes/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_474_Ones_and_Zeroes/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_485_Max_Consecutive_Ones/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_485_Max_Consecutive_Ones/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_494_Target_Sum/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_494_Target_Sum/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_496_Next_Greater_Element_I/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_496_Next_Greater_Element_I/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_501_Find_Mode_in_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_501_Find_Mode_in_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_501_Find_Mode_in_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_501_Find_Mode_in_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_503_Next_Greater_Element_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_503_Next_Greater_Element_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_504_Base_7/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_504_Base_7/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_513_Find_Bottom_Left_Tree_Value/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_513_Find_Bottom_Left_Tree_Value/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_513_Find_Bottom_Left_Tree_Value/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_513_Find_Bottom_Left_Tree_Value/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_518_Coin_Change_2/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_518_Coin_Change_2/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_524_Longest_Word_in_Dictionary_through_Deleting/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_524_Longest_Word_in_Dictionary_through_Deleting/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_530_Minimum_Absolute_Difference_in_BST/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_530_Minimum_Absolute_Difference_in_BST/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_530_Minimum_Absolute_Difference_in_BST/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_530_Minimum_Absolute_Difference_in_BST/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_538_Convert_BST_to_Greater_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_538_Convert_BST_to_Greater_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_538_Convert_BST_to_Greater_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_538_Convert_BST_to_Greater_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_540_Single_Element_in_a_Sorted_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_540_Single_Element_in_a_Sorted_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_543_Diameter_of_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_543_Diameter_of_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_543_Diameter_of_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_543_Diameter_of_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_547_Friend_Circles/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_547_Friend_Circles/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_557_Reverse_Words_in_a_String_III/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_557_Reverse_Words_in_a_String_III/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_560_Subarray_Sum_Equals_K/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_560_Subarray_Sum_Equals_K/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_565_Array_Nesting/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_565_Array_Nesting/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_566_Reshape_the_Matrix/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_566_Reshape_the_Matrix/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_572_Subtree_of_Another_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_572_Subtree_of_Another_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_572_Subtree_of_Another_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_572_Subtree_of_Another_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_581_Shortest_Unsorted_Continuous_Subarray/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_581_Shortest_Unsorted_Continuous_Subarray/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_583_Delete_Operation_for_Two_Strings/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_583_Delete_Operation_for_Two_Strings/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_605_Can_Place_Flowers/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_605_Can_Place_Flowers/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_617_Merge_Two_Binary_Trees/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_617_Merge_Two_Binary_Trees/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_617_Merge_Two_Binary_Trees/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_617_Merge_Two_Binary_Trees/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_621_Task_Scheduler/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_621_Task_Scheduler/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_637_Average_of_Levels_in_Binary_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_637_Average_of_Levels_in_Binary_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_637_Average_of_Levels_in_Binary_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_637_Average_of_Levels_in_Binary_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_645_Set_Mismatch/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_645_Set_Mismatch/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_646_Maximum_Length_of_Pair_Chain/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_646_Maximum_Length_of_Pair_Chain/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_647_Palindromic_Substrings/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_647_Palindromic_Substrings/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_650_2_Keys_Keyboard/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_650_2_Keys_Keyboard/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_653_Two_Sum_IV_Input_is_a_BST/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_653_Two_Sum_IV_Input_is_a_BST/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_653_Two_Sum_IV_Input_is_a_BST/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_653_Two_Sum_IV_Input_is_a_BST/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_665_Non_decreasing_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_665_Non_decreasing_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_669_Trim_a_Binary_Search_Tree/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_669_Trim_a_Binary_Search_Tree/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_669_Trim_a_Binary_Search_Tree/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_669_Trim_a_Binary_Search_Tree/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_680_Valid_Palindrome_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_680_Valid_Palindrome_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_687_Longest_Univalue_Path/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_687_Longest_Univalue_Path/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_687_Longest_Univalue_Path/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_687_Longest_Univalue_Path/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_695_Max_Area_of_Island/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_695_Max_Area_of_Island/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_697_Degree_of_an_Array/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_697_Degree_of_an_Array/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_725_Split_Linked_List_in_Parts/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_725_Split_Linked_List_in_Parts/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_725_Split_Linked_List_in_Parts/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_725_Split_Linked_List_in_Parts/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_739_Daily_Temperatures/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_739_Daily_Temperatures/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_746_Min_Cost_Climbing_Stairs/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_746_Min_Cost_Climbing_Stairs/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_763_Partition_Labels/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_763_Partition_Labels/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_769_Max_Chunks_To_Make_Sorted/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_769_Max_Chunks_To_Make_Sorted/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_771_Jewels_and_Stones/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_771_Jewels_and_Stones/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_876_Middle_of_the_Linked_List/Solution$ListNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_876_Middle_of_the_Linked_List/Solution$ListNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_876_Middle_of_the_Linked_List/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_876_Middle_of_the_Linked_List/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal/Solution$TreeNode.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal/Solution$TreeNode.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_90_Subsets_II/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_90_Subsets_II/Solution.class
--------------------------------------------------------------------------------
/out/production/LeetCode/algorithm/_946_Validate_Stack_Sequences/Solution.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/professorxin/LeetCode/a409c4a0bbe4ff9cf4e03dcaba6adc246f7b73e6/out/production/LeetCode/algorithm/_946_Validate_Stack_Sequences/Solution.class
--------------------------------------------------------------------------------
/src/algorithm/_001_Two_Sum/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._001_Two_Sum;
2 |
3 |
4 | import java.util.HashMap;
5 | import java.util.Map;
6 |
7 | public class Solution {
8 |
9 | /*给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,
10 | 并返回他们的数组下标。*/
11 |
12 |
13 |
14 | /*用一个hashmap来存储数值和对应的下标*/
15 | public int[] twoSum1(int[] nums, int target) {
16 | int[] result = new int[2];
17 | //数值和数值对应下标
18 | Map map = new HashMap();
19 | for (int i = 0; i < nums.length; i++) {
20 | if (map.containsKey(target - nums[i])) {
21 | result[1] = i;
22 | result[0] = map.get(target - nums[i]);
23 | return result;
24 | }
25 | map.put(nums[i], i);
26 | }
27 | return result;
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_007_Reverse_Integer/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._007_Reverse_Integer;
2 |
3 | public class Solution {
4 |
5 | /*反转整数*/
6 |
7 |
8 | public int reverse(int x) {
9 | int result = 0;
10 | while (x != 0) {
11 | int tail = x % 10;
12 | int newResult = result * 10 + tail;
13 | //判断是否溢出
14 | if ((newResult - tail) / 10 != result) {
15 | return 0;
16 | }
17 | result = newResult;
18 | x /= 10;
19 | }
20 | return result;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/algorithm/_009_Palindrome_Number/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._009_Palindrome_Number;
2 |
3 | public class Solution {
4 | /*判断是否是回文数*/
5 | public boolean isPalindromeOther(int x) {
6 | if (x < 0 || x % 10 == 0 && x != 0) {
7 | return false;
8 | }
9 | int reverse = 0;
10 | while (x > reverse) {
11 | reverse = reverse * 10 + x % 10;
12 | x = x / 10;
13 | }
14 | return x == reverse || x == reverse / 10;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/algorithm/_011_Container_With_Most_Water/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._011_Container_With_Most_Water;
2 |
3 | public class Solution {
4 |
5 | /*给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,
6 | 垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。*/
7 | //示例图片在images文件夹
8 |
9 | //定义双指针
10 | public int maxArea(int[] height) {
11 | int left = 0;
12 | int right = height.length - 1;
13 | int max = 0;
14 | while (left < right) {
15 | //求最大面积
16 | max = Math.max(max, Math.min(height[left], height[right]) * (right - left));
17 | //如果右边大,移动左指针。如果左边大,移动右指针
18 | if (height[left] < height[right]) {
19 | left++;
20 | } else {
21 | right--;
22 | }
23 | }
24 | return max;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_019_Remove_Nth_Node_From_End_of_List/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._019_Remove_Nth_Node_From_End_of_List;
2 |
3 | public class Solution {
4 |
5 | public class ListNode {
6 | int val;
7 | ListNode next;
8 | ListNode(int x) { val = x; }
9 | }
10 |
11 |
12 | /*删除链表倒数第n个节点*/
13 |
14 | public ListNode removeNthFromEnd(ListNode head, int n) {
15 | //构造一个节点,并让它连接首节点,很关键
16 | ListNode start = new ListNode(0);
17 | start.next = head;
18 | ListNode fast = start,slow = start;
19 | //快指针先走n+1步
20 | for(int i = 0;i <= n;i++){
21 | fast = fast.next;
22 | }
23 | //快慢指针一起走
24 | while(fast != null){
25 | fast = fast.next;
26 | slow = slow.next;
27 | }
28 | //移除倒数第n个节点
29 | slow.next = slow.next.next;
30 | return start.next;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/algorithm/_021_Merge_Two_Sorted_Lists/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._021_Merge_Two_Sorted_Lists;
2 |
3 | public class Solution {
4 |
5 | //链表结点
6 | public class ListNode {
7 | int val;
8 | ListNode next;
9 |
10 | ListNode(int x) {
11 | val = x;
12 | }
13 | }
14 |
15 | //合并两个已排序的链接列表并将其作为新列表返回,新列表应该通过拼接前两个列表的节点来完成。
16 | public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
17 | //递归的结束条件
18 | if (l1 == null) return l2;
19 | if (l2 == null) return l1;
20 | if (l1.val < l2.val) {
21 | l1.next = mergeTwoLists(l1.next, l2);
22 | return l1;
23 | } else {
24 | l2.next = mergeTwoLists(l1, l2.next);
25 | return l2;
26 | }
27 | }
28 | }
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/algorithm/_024_Swap_Nodes_in_Pairs/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._024_Swap_Nodes_in_Pairs;
2 |
3 | public class Solution {
4 |
5 | /*给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
6 | 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。*/
7 |
8 | public class ListNode {
9 | int val;
10 | ListNode next;
11 |
12 | ListNode(int x) {
13 | val = x;
14 | }
15 | }
16 |
17 |
18 | public ListNode swapPairs(ListNode head) {
19 | if (head == null || head.next == null) {
20 | return head;
21 | }
22 | ListNode second = head.next;
23 | ListNode third = second.next;
24 | //改变结点的指向
25 | second.next = head;
26 | head.next = swapPairs(third);
27 | return second;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_026_Remove_Duplicates_from_Sorted_Array/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._026_Remove_Duplicates_from_Sorted_Array;
2 |
3 | public class Solution {
4 |
5 | /*给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
6 | 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。*/
7 |
8 | public int removeDuplicates(int[] nums) {
9 | int count = 0;
10 | for (int i = 1; i < nums.length; i++) {
11 | //出现重复的数字,count次数加1
12 | if (nums[i] == nums[i - 1]) {
13 | count++;
14 | } else {
15 | nums[i - count] = nums[i];
16 | }
17 | }
18 | //总次数减去出现重复的次数
19 | return nums.length - count;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/algorithm/_028_Implement_strStr/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._028_Implement_strStr;
2 |
3 | public class Solution {
4 |
5 | //判断字符串s是否包含了字符串t
6 | public int strStrOther(String s, String t) {
7 | if (t.isEmpty()) return 0;
8 | for (int i = 0; i <= s.length() - t.length(); i++) {
9 | //两个字符串开始相等的部分
10 | for (int j = 0; j < t.length() && s.charAt(i + j) == t.charAt(j); j++)
11 | //如果j到了字符串的最后一位,就可以说明包含了
12 | if (j == t.length() - 1) return i;
13 | }
14 | return -1;
15 | }
16 |
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/algorithm/_032_Longest_Valid_Parentheses/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._032_Longest_Valid_Parentheses;
2 |
3 | import java.util.Stack;
4 |
5 | public class Solution {
6 |
7 | /*给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。*/
8 |
9 | //借助栈保存s中字符为‘(’的位置
10 | public int longestValidParentheses(String s) {
11 | Stack stack = new Stack<>();
12 | int result = 0;
13 | //-1用于后续计算长度
14 | stack.push(-1);
15 | for (int i = 0; i < s.length(); i++) {
16 | //如果当前字符为)且栈顶数字表示的字符为(.要限制栈的大小大于1,不然一开始插入的-1会导致s.charAt()报错
17 | if (s.charAt(i) == ')' && stack.size() > 1 && s.charAt(stack.peek()) == '(') {
18 | //将(出栈
19 | stack.pop();
20 | //更新有效括号子串的最长长度
21 | result = Math.max(result, i - stack.peek());
22 | } else {
23 | stack.push(i);
24 | }
25 | }
26 | return result;
27 | }
28 |
29 | //todo 动态规划
30 | }
31 |
--------------------------------------------------------------------------------
/src/algorithm/_035_Search_Insert_Position/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._035_Search_Insert_Position;
2 |
3 | public class Solution {
4 |
5 | /*给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。
6 | 如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
7 | 你可以假设数组中无重复元素。*/
8 |
9 |
10 | //二分查找
11 | public int searchInsert(int[] nums, int target) {
12 | int start = 0, end = nums.length - 1;
13 | while (start <= end) {
14 | int mid = start + (end - start) / 2;
15 | if (nums[mid] == target) {
16 | return mid;
17 | } else if (nums[mid] > target) {
18 | end = mid - 1;
19 | } else {
20 | start = mid + 1;
21 | }
22 | }
23 | return start;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_041_First_Missing_Positive/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._041_First_Missing_Positive;
2 |
3 | public class Solution {
4 |
5 | /*给定一个未排序的整数数组,找出其中没有出现的最小的正整数。*/
6 |
7 | //时间复杂度要求o(n)
8 | //算法的思想就是让数组里面存放着1-n的正数,第0个位置放1,第1个位置放2,以此类推
9 | // 最后遍历数组如果没有存放匹配的正数,返回最小正数的值为该位置+1
10 | public int firstMissingPositive(int[] nums) {
11 | for (int i = 0; i < nums.length; i++) {
12 | //如果满足下述匹配规则,就一直交换
13 | while (nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] != nums[i]) {
14 | swap(nums, i, nums[i] - 1);
15 | }
16 |
17 | }
18 | //遍历数组找出不匹配的
19 | for (int i = 0; i < nums.length; i++) {
20 | if (nums[i] != i + 1) {
21 | return i + 1;
22 | }
23 | }
24 | //表示数组完全匹配规则,最小正数为数组长度+1
25 | return nums.length + 1;
26 | }
27 |
28 | private void swap(int[] nums, int i, int j) {
29 | int temp = nums[i];
30 | nums[i] = nums[j];
31 | nums[j] = temp;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/algorithm/_045_Jump_Game_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._045_Jump_Game_II;
2 |
3 | public class Solution {
4 |
5 | /*给定一个非负整数数组,你最初位于数组的第一个位置。
6 | 数组中的每个元素代表你在该位置可以跳跃的最大长度。
7 | 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
8 | */
9 |
10 | public int jump(int[] nums) {
11 | int jump = 0, curEnd = 0, curFarthest = 0;
12 | for (int i = 0; i < nums.length - 1; i++) {
13 | //每次更新跳到最远的位置
14 | curFarthest = Math.max(curFarthest, nums[i] + i);
15 | //如果等于当前结束值,步数增加1,并且更新当前结束值等于过程中更新的最远的位置
16 | if (i == curEnd) {
17 | jump++;
18 | curEnd = Math.max(curFarthest, curEnd);
19 | }
20 | }
21 | return jump;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/algorithm/_048_Rotate_Image/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._048_Rotate_Image;
2 |
3 | public class Solution {
4 |
5 | //将图像顺时针旋转90度
6 |
7 |
8 | //图形变化如下
9 | // 1 2 3 1 4 7 7 4 1
10 | // 4 5 6 2 5 8 8 5 2
11 | // 7 8 9 3 6 9 9 6 3
12 |
13 | public void rotate(int[][] matrix) {
14 | for (int i = 0; i < matrix.length; i++) {
15 | for (int j = i + 1; j < matrix.length; j++) {
16 | int temp = matrix[j][i];
17 | matrix[j][i] = matrix[i][j];
18 | matrix[i][j] = temp;
19 | }
20 | }
21 | for (int i = 0; i < matrix.length; i++) {
22 | for (int j = 0; j < matrix.length / 2; j++) {
23 | int temp = matrix[i][j];
24 | matrix[i][j] = matrix[i][matrix.length - 1 - j];
25 | matrix[i][matrix.length - 1 - j] = temp;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_050_Pow/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._050_Pow;
2 |
3 | public class Solution {
4 | //我一开始用for循环,time limit,可能计算量太大,而且方法太暴力。
5 | //使用递归才是正确做法,
6 | public double myPow(double x, int n) {
7 | if (n == 0)
8 | return 1;
9 | if (n < 0) {
10 | //如果n是最小值的话就要把它变大,不然加负号会溢出
11 | if (n == Integer.MIN_VALUE) {
12 | n /= 2;
13 | x *= x;
14 | }
15 | n = -n;
16 | x = 1 / x;
17 | }
18 | //递归调用,底数平方,指数减半
19 | return (n % 2 == 0) ? myPow(x * x, n / 2) : x * myPow(x * x, n / 2);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/algorithm/_055_Jump_Game/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._055_Jump_Game;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组,初始定位在第一个索引,数组中的每个元素值代表你能跳到的最大长度,
6 | 判断是否能跳到最后一个位置*/
7 |
8 | public boolean canJump(int[] nums) {
9 | //能跳到的最大位置
10 | int max = 0;
11 | for (int i = 0; i < nums.length; i++) {
12 | //如果最大位置比i小,表示跳不到
13 | if (i > max) {
14 | return false;
15 | }
16 | //每一次都更新能跳到的最大位置
17 | max = Math.max(max, nums[i] + i);
18 | }
19 | return true;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/algorithm/_062_Unique_Paths/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._062_Unique_Paths;
2 |
3 | public class Solution {
4 |
5 | //统计从矩阵左上角到右下角的路径总数,每次只能向右或者向下移动。
6 |
7 | public int uniquePaths(int m, int n) {
8 | int[][] dp = new int[m][n];
9 | for (int i = 0; i < m; i++) {
10 | dp[i][0] = 1;
11 | }
12 | for (int j = 0; j < n; j++) {
13 | dp[0][j] = 1;
14 | }
15 | for (int i = 1; i < m; i++) {
16 | for (int j = 1; j < n; j++) {
17 | dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
18 | }
19 | }
20 | return dp[m - 1][n - 1];
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/algorithm/_064_Minimum_Path_Sum/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._064_Minimum_Path_Sum;
2 |
3 | public class Solution {
4 |
5 | //求从矩阵的左上角到右下角的最小路径和,每次只能向右和向下移动。
6 | public int minPathSum(int[][] grid) {
7 | int m = grid.length, n = grid[0].length;
8 | for (int i = 0; i < m; i++) {
9 | for (int j = 0; j < n; j++) {
10 | if (i == 0 && j != 0) {
11 | grid[i][j] += grid[i][j - 1];
12 | }
13 | if (i != 0 && j == 0) {
14 | grid[i][j] += grid[i - 1][j];
15 | }
16 | if (i != 0 && j != 0) {
17 | grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1]);
18 | }
19 | }
20 | }
21 | return grid[m - 1][n - 1];
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/algorithm/_067_Add_Binary/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._067_Add_Binary;
2 |
3 | public class Solution {
4 |
5 | //题目描述:给定两个二进制字符串,相加后返回字符串
6 |
7 | public String addBinary(String a, String b) {
8 | StringBuilder sb = new StringBuilder();
9 | int i = a.length() - 1, j = b.length() - 1, carry = 0, sum;
10 | //如果字符串长度大于0就进入循环
11 | while (i >= 0 || j >= 0) {
12 | sum = carry;
13 | if (i >= 0) sum += a.charAt(i--) - '0';
14 | if (j >= 0) sum += b.charAt(j--) - '0';
15 | //添加二进制取值
16 | sb.append(sum % 2);
17 | //有无进位
18 | carry = sum / 2;
19 | }
20 | //有进位才添加
21 | if (carry != 0) sb.append(carry);
22 | //我认为最关键是要能想到最后字符串反转
23 | return sb.reverse().toString();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_069_Sqrt_x/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._069_Sqrt_x;
2 |
3 | public class Solution {
4 |
5 | /*实现 int sqrt(int x) 函数。
6 | 计算并返回 x 的平方根,其中 x 是非负整数。
7 | 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。*/
8 |
9 |
10 | //平方根一定处于1-x之间
11 | public int mySqrt(int x) {
12 | if (x <= 1) {
13 | return x;
14 | }
15 | int l = 1, h = x;
16 | //二分查找
17 | while (l <= h) {
18 | int mid = l + (h - l) / 2;
19 | int sqrt = x / mid;
20 | if (sqrt > mid) {
21 | l = mid + 1;
22 | } else if (sqrt < mid) {
23 | h = mid - 1;
24 | } else {
25 | return mid;
26 | }
27 | }
28 | //h比l要小,比如8是返回2,返回较小的。
29 | return h;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_070_Climbing_Stairs/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._070_Climbing_Stairs;
2 |
3 | public class Solution {
4 |
5 |
6 | /*假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
7 | 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
8 | 注意:给定 n 是一个正整数。*/
9 |
10 |
11 | //斐波拉契的思路
12 | //想象成一个数组,第n个位置的方法等于第n-1个位置的方法加上第n-2个位置的方法
13 | //第n-1个位置加1步就到达第n个位置,第n-2个位置加两步就到达第n个位置,解法加起来不会重复
14 | public int climbStairsOther(int n) {
15 | // base cases
16 | if(n <= 0) return 0;
17 | if(n == 1) return 1;
18 | if(n == 2) return 2;
19 | //一步之前
20 | int one_step_before = 2;
21 | //两步之前
22 | int two_steps_before = 1;
23 | int all_ways = 0;
24 |
25 | for(int i=2; i= 0 && j >= 0) {
16 | if (nums1[i] > nums2[j]) {
17 | nums1[k--] = nums1[i--];
18 | } else {
19 | nums1[k--] = nums2[j--];
20 | }
21 | }
22 | while (j >= 0) {
23 | nums1[k--] = nums2[j--];
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_090_Subsets_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._090_Subsets_II;
2 |
3 | import java.util.ArrayList;
4 | import java.util.Arrays;
5 | import java.util.List;
6 |
7 | public class Solution {
8 |
9 | /*给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
10 | 说明:解集不能包含重复的子集。*/
11 |
12 | public List> subsetsWithDup(int[] nums) {
13 | List> result = new ArrayList<>();
14 | Arrays.sort(nums);
15 | backtrack(result, new ArrayList(), nums, 0);
16 | return result;
17 | }
18 |
19 | private void backtrack(List> result, List list, int[] nums, int start) {
20 | if (!result.contains(list)) {
21 | result.add(new ArrayList<>(list));
22 | }
23 | for (int i = start; i < nums.length; i++) {
24 | list.add(nums[i]);
25 | backtrack(result, list, nums, i + 1);
26 | list.remove(list.size() - 1);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_096_Unique_Binary_Search_Trees/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._096_Unique_Binary_Search_Trees;
2 |
3 | public class Solution {
4 | /*给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?*/
5 |
6 | /*
7 | G(n) = F(1, n) + F(2, n) + ... + F(n, n).
8 | G(0)=1, G(1)=1.
9 | F(i, n) = G(i-1) * G(n-i) 1 <= i <= n
10 | G(n) = G(0) * G(n-1) + G(1) * G(n-2) + … + G(n-1) * G(0)
11 | 函数F(i,n)表示n个结点以i为根节点的二叉搜索树,函数G(n)表示n个结点组成二叉搜索树的种数
12 | */
13 | public int numTrees(int n) {
14 | int[] G = new int[n + 1];
15 | G[0] = 1;
16 | G[1] = 1;
17 | for (int i = 2; i < n + 1; i++) {
18 | //该循环表示G(i) = F(1, i) + F(2, i) + ... + F(i, i)
19 | for (int j = 1; j <= i; j++) {
20 | G[i] += G[j - 1] * G[i - j];
21 | }
22 | }
23 | return G[n];
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_101_Symmetric_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._101_Symmetric_Tree;
2 |
3 | public class Solution {
4 |
5 | public class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 | TreeNode(int x) { val = x; }
10 | }
11 |
12 |
13 | /*给定一个二叉树,检查它是否是镜像对称的。*/
14 |
15 | public boolean isSymmetric(TreeNode root) {
16 | if(root == null){
17 | return true;
18 | }
19 | return isSymmetric(root.left,root.right);
20 | }
21 |
22 |
23 | private boolean isSymmetric(TreeNode t1,TreeNode t2){
24 | if(t1 == null && t2 == null){
25 | return true;
26 | }
27 | if(t1 == null || t2 == null){
28 | return false;
29 | }
30 | if(t1.val != t2.val){
31 | return false;
32 | }
33 | return isSymmetric(t1.right,t2.left)&&isSymmetric(t1.left,t2.right);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/algorithm/_104_Maximum_Depth_of_Binary_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._104_Maximum_Depth_of_Binary_Tree;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二叉树,找出其最大深度。
6 | 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。*/
7 |
8 | public class TreeNode {
9 | int val;
10 | TreeNode left;
11 | TreeNode right;
12 |
13 | TreeNode(int x) {
14 | val = x;
15 | }
16 | }
17 |
18 |
19 | public int maxDepth(TreeNode root) {
20 | if (root == null) {
21 | return 0;
22 | }
23 | return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_111_Minimum_Depth_of_Binary_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._111_Minimum_Depth_of_Binary_Tree;
2 |
3 | public class Solution {
4 |
5 |
6 | public class TreeNode {
7 | int val;
8 | TreeNode left;
9 | TreeNode right;
10 |
11 | TreeNode(int x) {
12 | val = x;
13 | }
14 | }
15 |
16 | /*给定一个二叉树,找到最小深度*/
17 |
18 | public int minDepth(TreeNode root) {
19 | if (root == null) {
20 | return 0;
21 | }
22 | int left = minDepth(root.left);
23 | int right = minDepth(root.right);
24 | if (left == 0 || right == 0) {
25 | return left + right + 1;
26 | }
27 | return Math.min(left, right) + 1;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_112_Path_Sum/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._112_Path_Sum;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有
6 | 节点值相加等于目标和。*/
7 |
8 | public class TreeNode {
9 | int val;
10 | TreeNode left;
11 | TreeNode right;
12 |
13 | TreeNode(int x) {
14 | val = x;
15 | }
16 | }
17 |
18 | public boolean hasPathSum(TreeNode root, int sum) {
19 | if (root == null) {
20 | return false;
21 | }
22 | if (root.left == null && root.right == null && root.val == sum) {
23 | return true;
24 | }
25 | return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_121_Best_Time_to_Buy_and_Sell_Stock/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._121_Best_Time_to_Buy_and_Sell_Stock;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组,只能先买入后卖出,卖出价格要高于买入价格,求最大利润。只允许完成一笔交易*/
6 |
7 | public int maxProfit(int[] prices) {
8 | int n = prices.length;
9 | if (n == 0) {
10 | return 0;
11 | }
12 | //最大利润
13 | int max = 0;
14 | //最小的价格
15 | int min = prices[0];
16 | for (int i = 1; i < n; i++) {
17 | //比最小价格小就更新最小价格
18 | if (prices[i] < min) {
19 | min = prices[i];
20 | } else {
21 | //比最小价格大就计算利润
22 | max = Math.max(max, prices[i] - min);
23 | }
24 | }
25 | return max;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_122_Best_Time_to_Buy_and_Sell_Stock_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._122_Best_Time_to_Buy_and_Sell_Stock_II;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组,要求先买入后卖出,可进行多次购买,求最大利润*/
6 |
7 | public int maxProfit(int[] prices) {
8 | int total = 0;
9 | //后一个比前一个大的话直接累加
10 | for (int i = 1; i < prices.length; i++) {
11 | if (prices[i] > prices[i - 1]) {
12 | total += prices[i] - prices[i - 1];
13 | }
14 | }
15 | return total;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/algorithm/_123_Best_Time_to_Buy_and_Sell_Stock_III/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._123_Best_Time_to_Buy_and_Sell_Stock_III;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。
6 | 设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。
7 | 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。*/
8 |
9 |
10 | /*采用状态机的思路,由于只能完成两笔交易,定义四个状态,分别是buy1,sell1,buy2,sell2*/
11 | public int maxProfit(int[] prices) {
12 | int buy1 = Integer.MIN_VALUE, buy2 = Integer.MIN_VALUE;
13 | int sell1 = 0, sell2 = 0;
14 | for (int i = 0; i < prices.length; i++) {
15 | //买入价格更低的股
16 | buy1 = Math.max(buy1, -prices[i]);
17 | //卖出当前股或者不操作
18 | sell1 = Math.max(sell1, buy1 + prices[i]);
19 | //第二次买入,或者不操作
20 | buy2 = Math.max(buy2, sell1 - prices[i]);
21 | //第二次卖出,或者不操作
22 | sell2 = Math.max(sell2, buy2 + prices[i]);
23 | }
24 | return sell2;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_136_Single_Number/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._136_Single_Number;
2 |
3 | public class Solution {
4 |
5 |
6 | /*给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。
7 | 找出那个只出现了一次的元素。*/
8 |
9 | //0 ^ N = N N ^ N = 0
10 |
11 | /*N1 ^ N1 ^ N2 ^ N2 ^..............^ Nx ^ Nx ^ N
12 | = (N1^N1) ^ (N2^N2) ^..............^ (Nx^Nx) ^ N
13 | = 0 ^ 0 ^ ..........^ 0 ^ N
14 | = N*/
15 |
16 | public int singleNumber(int[] nums) {
17 | int result = 0;
18 | for (int i = 0; i < nums.length; i++) {
19 | result ^= nums[i];
20 | }
21 | return result;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/algorithm/_139_Word_Break/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._139_Word_Break;
2 |
3 | import java.util.List;
4 |
5 | public class Solution {
6 |
7 | /*给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,
8 | 判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。*/
9 |
10 | //字典的单词没有使用次数限制这是一个完全背包的问题,该问题涉及到字典中单词的使用顺序,因此可理解为涉及顺序的完全背包问题。
11 | //和求解完全背包问题不同的地方在于求解顺序的完全背包问题时,对物品的迭代应该放在最里层。
12 | public boolean wordBreak(String s, List wordDict) {
13 | int length = s.length();
14 | boolean[] dp = new boolean[length + 1];
15 | dp[0] = true;
16 | for (int i = 1; i <= length; i++) {
17 | //物品迭代放里层
18 | for (String word : wordDict) {
19 | int len = word.length();
20 | //判断是否单词是否匹配字符串
21 | if ((i >= len) && word.equals(s.substring(i - len, i))) {
22 | dp[i] = dp[i] || dp[i - len];
23 | }
24 | }
25 | }
26 | return dp[length];
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/algorithm/_141_Linked_List_Cycle/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._141_Linked_List_Cycle;
2 |
3 | public class Solution {
4 |
5 | class ListNode {
6 | int val;
7 | ListNode next;
8 |
9 | ListNode(int x) {
10 | val = x;
11 | next = null;
12 | }
13 | }
14 |
15 | /*判断链表有无环*/
16 | //定义两个指针,一个指针指向头指针,一次走一步,一个指针指向头指针下一个,一次走两步。如果指针能相等说明有环。如果为空则无环
17 | public boolean hasCycle(ListNode head) {
18 | if (head == null) return false;
19 | ListNode slow = head, fast = head;
20 | while (fast != null && fast.next != null) {
21 | fast = fast.next.next;
22 | slow = slow.next;
23 | if (fast == slow) {
24 | return true;
25 | }
26 | }
27 | return false;
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_144_Binary_Tree_Preorder_Traversal/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._144_Binary_Tree_Preorder_Traversal;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 | import java.util.Stack;
6 |
7 |
8 | public class Solution {
9 |
10 | class TreeNode {
11 | int val;
12 | TreeNode left;
13 | TreeNode right;
14 |
15 | TreeNode(int x) {
16 | val = x;
17 | }
18 | }
19 |
20 |
21 | /*非递归实现二叉树的前序遍历*/
22 | public List preorderTraversal(TreeNode root) {
23 | List res = new ArrayList();
24 | Stack stack = new Stack();
25 | stack.push(root);
26 | while (!stack.empty()) {
27 | TreeNode node = stack.pop();
28 | if (node == null) continue;
29 | res.add(node.val);
30 | stack.push(node.right);
31 | stack.push(node.left);
32 | }
33 | return res;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/algorithm/_145_Binary_Tree_Postorder_Traversal/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._145_Binary_Tree_Postorder_Traversal;
2 |
3 |
4 | import java.util.ArrayList;
5 | import java.util.Collections;
6 | import java.util.List;
7 | import java.util.Stack;
8 |
9 | public class Solution {
10 |
11 | class TreeNode {
12 | int val;
13 | TreeNode left;
14 | TreeNode right;
15 |
16 | TreeNode(int x) {
17 | val = x;
18 | }
19 | }
20 |
21 |
22 | /*非递归实现二叉树的后序遍历*/
23 | public List postorderTraversal(TreeNode root) {
24 | List res = new ArrayList();
25 | Stack stack = new Stack();
26 | stack.push(root);
27 | while (!stack.empty()) {
28 | TreeNode node = stack.pop();
29 | if (node == null) continue;
30 | res.add(node.val);
31 | stack.push(node.left);
32 | stack.push(node.right);
33 | }
34 | Collections.reverse(res);
35 | return res;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/algorithm/_152_Maximum_Product_Subarray/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._152_Maximum_Product_Subarray;
2 |
3 | public class Solution {
4 |
5 |
6 | /*给定一个整型数组,找出数组内连续子数组乘积的最大值*/
7 |
8 | public int maxProduct(int[] nums) {
9 | if (nums == null || nums.length == 0) {
10 | return 0;
11 | }
12 | int max = nums[0], min = nums[0], result = nums[0];
13 | //每一次都找出最大值和最小值,然后最大值和最小值分别乘以下一个数。因为负数乘负数为正数,所以要保存最小值
14 | for (int i = 1; i < nums.length; i++) {
15 | int temp = max;
16 | max = Math.max(Math.max(max * nums[i], min * nums[i]), nums[i]);
17 | min = Math.min(Math.min(temp * nums[i], min * nums[i]), nums[i]);
18 | if (max > result) {
19 | result = max;
20 | }
21 | }
22 | return result;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_154_Find_Minimum_in_Rotated_Sorted_Array_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._154_Find_Minimum_in_Rotated_Sorted_Array_II;
2 |
3 | public class Solution {
4 |
5 | /*假设按照升序排序的数组在预先未知的某个点上进行了旋转。
6 | ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
7 | 请找出其中最小的元素。
8 | 注意数组中可能存在重复的元素。*/
9 |
10 |
11 | public int findMin(int[] nums) {
12 | int start = 0, end = nums.length - 1;
13 | while (start < end) {
14 | int mid = (start + end) / 2;
15 | if (nums[mid] > nums[end]) {
16 | start = mid + 1;
17 | } else if (nums[mid] < nums[end]) {
18 | end = mid;
19 | } else {
20 | //nums[mid]==nums[end],存在重复的元素,只需让end指针左移缩小范围
21 | end--;
22 | }
23 | }
24 | return nums[start];
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_160_Intersection_of_Two_Linked_Lists/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._160_Intersection_of_Two_Linked_Lists;
2 |
3 | public class Solution {
4 |
5 | public class ListNode {
6 | int val;
7 | ListNode next;
8 | ListNode(int x) {
9 | val = x;
10 | next = null;
11 | }
12 | }
13 |
14 |
15 | /*找到两个链表相交的结点,如果没有的话返回null*/
16 | public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
17 | ListNode nodeA = headA, nodeB = headB;
18 | //第二次迭代就能找出结点
19 | while (nodeA != nodeB) {
20 | nodeA = nodeA == null ? headB : nodeA.next;
21 | nodeB = nodeB == null ? headA : nodeB.next;
22 | }
23 | return nodeA;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_169_Majority_Element/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._169_Majority_Element;
2 |
3 | public class Solution {
4 |
5 |
6 | /*给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。*/
7 |
8 | public int majorityElement(int[] num) {
9 | int major = num[0], count = 1;
10 | for (int i = 1; i < num.length; i++) {
11 | //如果count=0,重新在剩余的数字中找出众数
12 | if (count == 0) {
13 | count++;
14 | major = num[i];
15 | } else if (major == num[i]) {
16 | count++;
17 | } else count--;
18 |
19 | }
20 | return major;
21 | }
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/algorithm/_190_Reverse_Bits/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._190_Reverse_Bits;
2 |
3 | public class Solution {
4 |
5 | /*颠倒给定的 32 位无符号整数的二进制位。*/
6 |
7 | public int reverseBits(int n) {
8 | int result = 0;
9 | for (int i = 0; i < 32; i++) {
10 | result = result << 1;
11 | //n最右边位置的二进制位
12 | result |= (n & 1);
13 | //n右移一位
14 | n = n >> 1;
15 | }
16 | return result;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/algorithm/_198_House_Robber/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._198_House_Robber;
2 |
3 | public class Solution {
4 |
5 | /*题目描述:抢劫一排住户,但是不能抢邻近的住户,求最大抢劫量。
6 | 定义 dp 数组用来存储最大的抢劫量,其中 dp[i] 表示抢到第 i 个住户时的最大抢劫量。
7 | 由于不能抢劫邻近住户,如果抢劫了第 i -1 个住户,那么就不能再抢劫第 i 个住户*/
8 |
9 |
10 | //pre2表示当前房子数减2的最大值,pre1表示当前房子数减1的最大值,cur表示现在房子数的最大值
11 | public int rob(int[] nums) {
12 | int pre2 = 0, pre1 = 0;
13 | for (int i = 0; i < nums.length; i++) {
14 | int cur = Math.max(nums[i] + pre2, pre1);
15 | pre2 = pre1;
16 | pre1 = cur;
17 | }
18 | return pre1;
19 | }
20 |
21 |
22 | //采用数组来进行dp
23 | public int rob1(int[] nums) {
24 | if (nums.length == 0) return 0;
25 | int[] memo = new int[nums.length + 1];
26 | memo[0] = 0;
27 | memo[1] = nums[0];
28 | for (int i = 1; i < nums.length; i++) {
29 | int val = nums[i];
30 | memo[i + 1] = Math.max(memo[i], memo[i - 1] + val);
31 | }
32 | return memo[nums.length];
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/algorithm/_199_Binary_Tree_Right_Side_View/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._199_Binary_Tree_Right_Side_View;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | public class Solution {
7 |
8 | public class TreeNode {
9 | int val;
10 | TreeNode left;
11 | TreeNode right;
12 | TreeNode(int x) { val = x; }
13 | }
14 |
15 | /*二叉树的右视图,返回从顶层到底层你看到的结点*/
16 |
17 |
18 | public List rightSideView(TreeNode root) {
19 | List result = new ArrayList<>();
20 | rightView(result, root, 0);
21 | return result;
22 | }
23 |
24 | public void rightView(List result, TreeNode node, int depth) {
25 | //如果为空,直接返回
26 | if (node == null) return;
27 | //只有满足大小和层数的等价关系才添加,一层只会添加一个结点
28 | if (result.size() == depth) {
29 | result.add(node.val);
30 | }
31 | //先递归右边,右边没有的才递归左边。左视图的话就相反
32 | rightView(result, node.right, depth + 1);
33 | rightView(result, node.left, depth + 1);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/algorithm/_202_Happy_Number/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._202_Happy_Number;
2 |
3 | public class Solution {
4 |
5 | /*判断一个数字是否是快乐数*/
6 |
7 | /*一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,
8 | 然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那
9 | 么这个数就是快乐数。*/
10 |
11 | public boolean isHappy(int n) {
12 | //定义快指针和满指针
13 | int slow = n, fast = n;
14 | do {
15 | slow = digitSquareSum(slow);
16 | fast = digitSquareSum(fast);
17 | fast = digitSquareSum(fast);
18 | //如果能变为1表示是快乐数
19 | if (fast == 1) {
20 | return true;
21 | }
22 | } while (slow != fast);
23 | return false;
24 | }
25 |
26 | //计算平方和
27 | private int digitSquareSum(int n) {
28 | int sum = 0;
29 | while (n != 0) {
30 | int tmp = n % 10;
31 | sum += tmp * tmp;
32 | n /= 10;
33 | }
34 | return sum;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/algorithm/_205_Isomorphic_Strings/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._205_Isomorphic_Strings;
2 |
3 | public class Solution {
4 |
5 | /*给定两个字符串 s 和 t,判断它们是否是同构的。
6 | 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。
7 | 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。
8 | 两个字符不能映射到同一个字符上,但字符可以映射自己本身。*/
9 |
10 |
11 | //记录每个字符之前出现的索引位置,从而进行判断
12 | public boolean isIsomorphic(String s, String t) {
13 | int[] preIndexOfS = new int[256];
14 | int[] preIndexOfT = new int[256];
15 | for (int i = 0; i < s.length(); i++) {
16 | char sc = s.charAt(i), tc = t.charAt(i);
17 | //之前出现的位置不同,所以不是同构的
18 | if (preIndexOfS[sc] != preIndexOfT[tc]) {
19 | return false;
20 | }
21 | //记录出现的位置
22 | preIndexOfS[sc] = i + 1;
23 | preIndexOfT[tc] = i + 1;
24 | }
25 | return true;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_206_Reverse_Linked_List/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._206_Reverse_Linked_List;
2 |
3 | public class Solution {
4 |
5 | public class ListNode {
6 | int val;
7 | ListNode next;
8 |
9 | ListNode(int x) {
10 | val = x;
11 | }
12 | }
13 |
14 |
15 | /*反转一个单链表。*/
16 | public ListNode reverseList(ListNode head) {
17 | ListNode pre = null, next = null;
18 | while (head != null) {
19 | next = head.next;
20 | head.next = pre;
21 | pre = head;
22 | head = next;
23 | }
24 | return pre;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_213_House_Robber2/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._213_House_Robber2;
2 |
3 | public class Solution {
4 |
5 | //由于房子是环形的,所以分两种情况考虑,一种是要偷第一间,一种是不偷第一间,然后取这两种情况的最大值,
6 | //这样的话这两种情况都能转化成在一条街上偷这些房子的最大值
7 | public int rob(int[] nums) {
8 | int length = nums.length;
9 | if (nums == null || length == 0)
10 | return 0;
11 | if (length == 1)
12 | return nums[0];
13 | //抢劫第一间(也可能不抢)+不抢劫第一间
14 | return Math.max(rob(nums, 0, length - 2), rob(nums, 1, length - 1));
15 | }
16 |
17 | public int rob(int[] nums, int index, int end) {
18 | int pre1 = 0, pre2 = 0;
19 | for (int i = index; i <= end; i++) {
20 | int cur = Math.max(nums[i] + pre2, pre1);
21 | pre2 = pre1;
22 | pre1 = cur;
23 | }
24 | return pre1;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_221_Maximal_Square/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._221_Maximal_Square;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二维数组,找到最大的数字为1的正方形,返回面积*/
6 |
7 | public int maximalSquare(char[][] matrix) {
8 | if (matrix.length == 0) {
9 | return 0;
10 | }
11 | int rows = matrix.length;
12 | int cols = matrix[0].length;
13 | int result = 0;
14 | //定义一个dp数组,数组的值dp[i][j]表示以原来二维数组的i-1,j-1这一格为右下角的正方形边长
15 | int[][] dp = new int[rows + 1][cols + 1];
16 | for (int i = 1; i <= rows; i++) {
17 | for (int j = 1; j <= cols; j++) {
18 | //原来的数组有1的情况下才去更新值,否则就是0
19 | if (matrix[i - 1][j - 1] == '1') {
20 | dp[i][j] = Math.min(dp[i - 1][j], Math.min(dp[i - 1][j - 1], dp[i][j - 1])) + 1;
21 | //更新最大正方形边长
22 | result = Math.max(result, dp[i][j]);
23 | }
24 | }
25 | }
26 | //面积
27 | return result * result;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_222_Count_Complete_Tree_Nodes/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._222_Count_Complete_Tree_Nodes;
2 |
3 | public class Solution {
4 | //todo
5 | }
6 |
--------------------------------------------------------------------------------
/src/algorithm/_226_Invert_Binary_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._226_Invert_Binary_Tree;
2 |
3 | public class Solution {
4 |
5 | public class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 |
10 | TreeNode(int x) {
11 | val = x;
12 | }
13 | }
14 |
15 |
16 | /*反转二叉树*/
17 | public TreeNode invertTree(TreeNode root) {
18 | if (root != null) {
19 | TreeNode temp = root.left;
20 | root.left = root.right;
21 | root.right = temp;
22 | invertTree(root.left);
23 | invertTree(root.right);
24 | }
25 | return root;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_230_Kth_Smallest_Element_in_a_BST/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._230_Kth_Smallest_Element_in_a_BST;
2 |
3 |
4 | public class Solution {
5 |
6 | public class TreeNode {
7 | int val;
8 | TreeNode left;
9 | TreeNode right;
10 |
11 | TreeNode(int x) {
12 | val = x;
13 | }
14 | }
15 |
16 |
17 | /*给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。*/
18 |
19 | private int count = 0;
20 | private int number = 0;
21 |
22 | public int kthSmallest(TreeNode root, int k) {
23 | count = k;
24 | helper(root);
25 | return number;
26 | }
27 |
28 | private void helper(TreeNode root){
29 | if(root.left != null){
30 | helper(root.left);
31 | }
32 | count--;
33 | if(count == 0){
34 | number = root.val;
35 | }
36 | if(root.right != null){
37 | helper(root.right);
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/algorithm/_235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree;
2 |
3 | public class Solution {
4 |
5 | class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 |
10 | public TreeNode(int val) {
11 | this.val = val;
12 | }
13 | }
14 |
15 | /*二叉查找树的两个结点的最近公共祖先*/
16 |
17 | public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
18 | //如果两个结点都在左边的情况下
19 | if (root.val > p.val && root.val > q.val) {
20 | return lowestCommonAncestor(root.left, p, q);
21 | }
22 | //如果两个结点都在右边的情况下
23 | if (root.val < p.val && root.val < q.val) {
24 | return lowestCommonAncestor(root.right, p, q);
25 | }
26 | //两个结点一左一右或者其中一个是祖先结点的情况下直接返回祖先结点
27 | return root;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_236_Lowest_Common_Ancestor_of_a_Binary_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._236_Lowest_Common_Ancestor_of_a_Binary_Tree;
2 |
3 | public class Solution {
4 |
5 | class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 |
10 | TreeNode(int x) {
11 | val = x;
12 | }
13 | }
14 |
15 | /*普通二叉树的最近公共祖先*/
16 | //后序遍历二叉树,左子树和右子树分别搜索
17 | public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
18 | //终止条件
19 | if (root == null || root == p || root == q) {
20 | return root;
21 | }
22 | //左子树查找
23 | TreeNode left = lowestCommonAncestor(root.left, p, q);
24 | //右子树查找
25 | TreeNode right = lowestCommonAncestor(root.right, p, q);
26 | //如果左子树和右子树都找到了,就返回根节点
27 | if (left != null && right != null) {
28 | return root;
29 | }
30 | //如果左右子树只有一个找到,那就返回找到的。如果都没有找到,那就返回空
31 | return left != null ? left : right;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/algorithm/_238_Product_of_Array_Except_Self/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._238_Product_of_Array_Except_Self;
2 |
3 | public class Solution {
4 |
5 | /*给定一个整数数组,输出除去该位置元素的其他元素的乘积的数组,时间复杂度要求O(n)*/
6 | /*
7 | Numbers: 2 3 4 5
8 | Lefts: 1 2 2*3 2*3*4
9 | Rights: 3*4*5 4*5 5 1
10 | */
11 |
12 | public int[] productExceptSelf(int[] nums) {
13 | int n = nums.length;
14 | int[] result = new int[n];
15 | //确定左边方向的成绩
16 | int left = 1;
17 | for (int i = 0; i < n; i++) {
18 | if (i > 0) {
19 | left = left * nums[i - 1];
20 | }
21 | result[i] = left;
22 | }
23 | //确定右边方向的成绩
24 | int right = 1;
25 | for (int i = n - 1; i >= 0; i--) {
26 | if (i < n - 1) {
27 | right = right * nums[i + 1];
28 | }
29 | //左边方向乘以右边方向
30 | result[i] *= right;
31 | }
32 | return result;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/algorithm/_239_Sliding_Window_Maximum/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._239_Sliding_Window_Maximum;
2 |
3 | import java.util.PriorityQueue;
4 |
5 | public class Solution {
6 |
7 |
8 | /*给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。
9 | 你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。*/
10 |
11 | public int[] maxSlidingWindow(int[] nums, int k) {
12 | if (nums.length < k || k < 1) {
13 | return new int[0];
14 | }
15 | int[] result = new int[nums.length - k + 1];
16 | //大顶堆
17 | PriorityQueue heap = new PriorityQueue<>((o1, o2) -> o2 - o1);
18 | for (int i = 0; i < k; i++) {
19 | heap.add(nums[i]);
20 | }
21 | result[0] = heap.peek();
22 | //滑动窗口,记录大顶堆的堆顶值
23 | for (int i = 0, j = k; j < nums.length; i++, j++) {
24 | heap.remove(nums[i]);
25 | heap.add(nums[j]);
26 | result[i + 1] = heap.peek();
27 | }
28 | return result;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/algorithm/_240_Search_a_2D_Matrix_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._240_Search_a_2D_Matrix_II;
2 |
3 | public class Solution {
4 |
5 |
6 | /*编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
7 | 每行的元素从左到右升序排列。
8 | 每列的元素从上到下升序排列。*/
9 |
10 |
11 | //从左下角位置开始查找
12 | public boolean searchMatrix(int[][] matrix, int target) {
13 | if (matrix == null || matrix.length == 0) {
14 | return false;
15 | }
16 | int row = matrix.length - 1;
17 | int col = 0;
18 | while (col < matrix[0].length && row >= 0) {
19 | if (matrix[row][col] < target) {
20 | col++;
21 | } else if (matrix[row][col] > target) {
22 | row--;
23 | } else {
24 | return true;
25 | }
26 | }
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_242_Valid_Anagram/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._242_Valid_Anagram;
2 |
3 | public class Solution {
4 |
5 | /*给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。*/
6 |
7 | //只需要判断s中出现的字符,t是否全部包含即可
8 | public boolean isAnagram(String s, String t) {
9 | int[] nums = new int[26];
10 | for (int i = 0; i < s.length(); i++) nums[s.charAt(i) - 'a']++;
11 | for (int i = 0; i < t.length(); i++) nums[t.charAt(i) - 'a']--;
12 | for (int num : nums) if (num != 0) return false;
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/algorithm/_260_Single_Number_III/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._260_Single_Number_III;
2 |
3 | public class Solution {
4 |
5 | /*给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。
6 | 找出只出现一次的那两个元素。*/
7 |
8 | public int[] singleNumber(int[] nums) {
9 | int diff = 0;
10 | //所有异或,最后得出的是两个不重复的元素异或的结果
11 | for (int num : nums) {
12 | diff ^= num;
13 | }
14 | //找到最右边为1的数字,利用这个数字区分两个元素
15 | diff &= -diff;
16 | int[] result = new int[2];
17 | for (int num : nums) {
18 | if ((num & diff) == diff) {
19 | result[0] ^= num;
20 | } else {
21 | result[1] ^= num;
22 | }
23 | }
24 | return result;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_263_Ugly_Number/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._263_Ugly_Number;
2 |
3 | public class Solution {
4 |
5 | /*编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。*/
6 |
7 | public boolean isUgly(int num) {
8 | for (int i = 2; i < 6 && num > 0; i++) {
9 | while (num % i == 0) {
10 | num /= i;
11 | }
12 | }
13 | return num == 1;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/algorithm/_264_Ugly_Number_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._264_Ugly_Number_II;
2 |
3 | public class Solution {
4 |
5 | /*编写一个程序,找出第 n 个丑数。丑数就是只包含质因数 2, 3, 5 的正整数。*/
6 |
7 | public int nthUglyNumber(int n) {
8 | if (n < 6) {
9 | return n;
10 | }
11 | int[] nums = new int[n];
12 | nums[0] = 1;
13 | int i2 = 0, i3 = 0, i5 = 0;
14 | for (int i = 1; i < n; i++) {
15 | int next2 = nums[i2] * 2, next3 = nums[i3] * 3, next5 = nums[i5] * 5;
16 | //最小值就是下一个丑数
17 | nums[i] = Math.min(next2, Math.min(next3, next5));
18 | if (nums[i] == next2) i2++;
19 | if (nums[i] == next3) i3++;
20 | if (nums[i] == next5) i5++;
21 | }
22 | return nums[n - 1];
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/algorithm/_268_Missing_Number/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._268_Missing_Number;
2 |
3 | public class Solution {
4 |
5 | /*给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。*/
6 |
7 | public int missingNumber(int[] nums) {
8 | if (nums == null || nums.length == 0) {
9 | return 0;
10 | }
11 | int x = 0, i = 0;
12 | for (; i < nums.length; i++) {
13 | x = x ^ i ^ nums[i];
14 | }
15 | return x ^ i;
16 | }
17 |
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/src/algorithm/_279_Perfect_Squares/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._279_Perfect_Squares;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*给定一个正整数,找到最少能构成该正整数的完全平方数的个数*/
8 |
9 | public int numSquares(int n) {
10 | int[] dp = new int[n + 1];
11 | Arrays.fill(dp, Integer.MAX_VALUE);
12 | //初始状态
13 | dp[0] = 0;
14 | //每一次循环确定i这个正整数的最少完全平方数个数
15 | for (int i = 1; i <= n; i++) {
16 | //尝试不同的完全平方数,找出最小值
17 | for (int j = 1; i - j * j >= 0; j++) {
18 | dp[i] = Math.min(dp[i - j * j] + 1, dp[i]);
19 | }
20 | }
21 | return dp[n];
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/algorithm/_283_Move_Zeroes/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._283_Move_Zeroes;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。*/
6 |
7 | public void moveZeroes(int[] nums) {
8 | if(nums == null || nums.length == 0){
9 | return ;
10 | }
11 | int index = 0;
12 | for(int num : nums){
13 | if(num != 0){
14 | nums[index++] = num;
15 | }
16 | }
17 | while(index < nums.length){
18 | nums[index++] = 0;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/algorithm/_300_Longest_Increasing_Subsequence/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._300_Longest_Increasing_Subsequence;
2 |
3 | public class Solution {
4 |
5 | /*求数组的最长递增子序列,子序列可以不连续的*/
6 |
7 | //使用动态规划求解,dp[n]表示以n结尾的最长递增子序列,时间复杂度O(n2)
8 | public int lengthOfLIS(int[] nums) {
9 | int length = nums.length;
10 | int[] dp = new int[length];
11 | for (int i = 0; i < length; i++) {
12 | //初始长度
13 | int max = 1;
14 | //循环后可以确定以nums[i]结尾的最长递增子序列
15 | for (int j = 0; j < i; j++) {
16 | //如果nums[j]> 1] + (i & 1);
15 | }
16 | return result;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/algorithm/_343_Integer_Break/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._343_Integer_Break;
2 |
3 | public class Solution {
4 |
5 | //分割整数为至少两个正数,算出分割后的数的最大乘积
6 |
7 | public int integerBreak(int n) {
8 | int[] dp = new int[n + 1];
9 | dp[1] = 1;
10 | for (int i = 2; i <= n; i++) {
11 | for (int j = i - 1; j > 0; j--) {
12 | //从这三种情况中取最大值
13 | dp[i] = Math.max(dp[i], Math.max(dp[i - j] * j, j * (i - j)));
14 | }
15 | }
16 | return dp[n];
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/algorithm/_344_Reverse_String/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._344_Reverse_String;
2 |
3 | public class Solution {
4 |
5 | /*编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。*/
6 |
7 | public void reverseString(char[] s) {
8 | int start = 0, end = s.length - 1;
9 | while (start < end) {
10 | char temp = s[start];
11 | s[start] = s[end];
12 | s[end] = temp;
13 | start++;
14 | end--;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/algorithm/_376_Wiggle_Subsequence/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._376_Wiggle_Subsequence;
2 |
3 | public class Solution {
4 |
5 | /*如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差
6 | (如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。
7 | 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。
8 | 相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值
9 | 都是正数,第二个序列是因为它的最后一个差值为零。
10 | 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些
11 | (也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。*/
12 |
13 |
14 | public int wiggleMaxLength(int[] nums) {
15 | if (nums == null || nums.length == 0) {
16 | return 0;
17 | }
18 | //初始状态
19 | int up = 1, down = 1;
20 | for (int i = 1; i < nums.length; i++) {
21 | if (nums[i] > nums[i - 1]) {
22 | //状态转移
23 | up = down + 1;
24 | } else if (nums[i] < nums[i - 1]) {
25 | //状态转移
26 | down = up + 1;
27 | }
28 | }
29 | return Math.max(up, down);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/algorithm/_377_Combination_Sum_IV/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._377_Combination_Sum_IV;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*数组中的数字构成目标数的组合数,数字可重复*/
8 |
9 | public int combinationSum4(int[] nums, int target) {
10 | if (nums == null || nums.length == 0) {
11 | return 0;
12 | }
13 | //数组中的每一个数表示该数字的组合数
14 | int[] dp = new int[target + 1];
15 | //初始化状态
16 | dp[0] = 1;
17 | //对数组进行排序
18 | Arrays.sort(nums);
19 | //计算目标数字的组合数
20 | for (int i = 1; i <= target; i++) {
21 | //当目标数字分别减去数组中的数字的组合数相加
22 | for (int j = 0; j < nums.length && nums[j] <= i; j++) {
23 | //状态转移方程
24 | dp[i] += dp[i - nums[j]];
25 | }
26 | }
27 | return dp[target];
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_387_First_Unique_Character_in_a_String/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._387_First_Unique_Character_in_a_String;
2 |
3 | public class Solution {
4 |
5 | /*给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。*/
6 |
7 | public int firstUniqChar(String s) {
8 | int[] freq = new int[26];
9 | //存放在数组中
10 | for (int i = 0; i < s.length(); i++) {
11 | char c = s.charAt(i);
12 | freq[c - 'a']++;
13 | }
14 | for (int i = 0; i < s.length(); i++) {
15 | char c = s.charAt(i);
16 | if (freq[c - 'a'] == 1) {
17 | return i;
18 | }
19 | }
20 | return -1;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/algorithm/_392_Is_Subsequence/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._392_Is_Subsequence;
2 |
3 | public class Solution {
4 |
5 | //判断s是否是t的子序列
6 | public boolean isSubsequence(String s, String t) {
7 | int index = -1;
8 | for (char c : s.toCharArray()) {
9 | //indexOf代表从index+1开始查找c元素,返回对应索引
10 | index = t.indexOf(c, index + 1);
11 | if (index == -1) {
12 | return false;
13 | }
14 | }
15 | return true;
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/algorithm/_404_Sum_of_Left_Leaves/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._404_Sum_of_Left_Leaves;
2 |
3 | public class Solution {
4 |
5 | /*计算给定二叉树的所有左叶子之和。*/
6 |
7 | public class TreeNode {
8 | int val;
9 | TreeNode left;
10 | TreeNode right;
11 |
12 | TreeNode(int x) {
13 | val = x;
14 | }
15 | }
16 |
17 | public int sumOfLeftLeaves(TreeNode root) {
18 | if (root == null) {
19 | return 0;
20 | }
21 | //左结点是叶子节点
22 | if (isLeaf(root.left)) {
23 | return root.left.val + sumOfLeftLeaves(root.right);
24 | }
25 |
26 | return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
27 | }
28 |
29 | //是否是叶子节点
30 | private boolean isLeaf(TreeNode node) {
31 | if (node == null) {
32 | return false;
33 | }
34 | return node.left == null && node.right == null;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/algorithm/_405_Convert_a_Number_to_Hexadecimal/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._405_Convert_a_Number_to_Hexadecimal;
2 |
3 | public class Solution {
4 |
5 | /*给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用补码运算方法。*/
6 |
7 | public String toHex(int num) {
8 | if (num == 0) {
9 | return "0";
10 | }
11 | char[] map = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
12 | StringBuilder stb = new StringBuilder();
13 | while (num != 0) {
14 | //0b1111表示1111是个二进制
15 | stb.append(map[num & 0b1111]);
16 | //因为考虑的是补码形式,因此符号位就不能有特殊的意义,所以无符号右移四位
17 | num >>>= 4;
18 | }
19 | return stb.reverse().toString();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/algorithm/_409_Longest_Palindrome/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._409_Longest_Palindrome;
2 |
3 | public class Solution {
4 |
5 | /*给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
6 | 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。*/
7 |
8 |
9 | public int longestPalindrome(String s) {
10 | int[] cnts = new int[256];
11 | //记录每个字符出现的次数
12 | for (char c : s.toCharArray()) {
13 | cnts[c]++;
14 | }
15 | int palindrome = 0;
16 | for (int cnt : cnts) {
17 | //能构成回文的字符数量
18 | palindrome += (cnt / 2) * 2;
19 | }
20 | //小于字符串总长度的话,还能增加单个字符放在回文串正中间
21 | if (palindrome < s.length()) {
22 | palindrome++;
23 | }
24 | return palindrome;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_413_Arithmetic_Slices/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._413_Arithmetic_Slices;
2 |
3 | public class Solution {
4 |
5 | /*如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。
6 | 函数要返回数组 A 中所有为等差数组的子数组个数。*/
7 |
8 |
9 | //dp[i] 表示以 A[i] 为结尾的等差递增子区间的个数。
10 | public int numberOfArithmeticSlices(int[] A) {
11 | if (A == null || A.length == 0) {
12 | return 0;
13 | }
14 | int[] dp = new int[A.length];
15 | for (int i = 2; i < A.length; i++) {
16 | if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) {
17 | dp[i] = dp[i - 1] + 1;
18 | }
19 | }
20 | //因为递增子区间不一定以最后一个元素为结尾,可以是任意一个元素结尾,因此需要返回 dp 数组累加的结果。
21 | int result = 0;
22 | for (int d : dp) {
23 | result += d;
24 | }
25 | return result;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_448_Find_All_Numbers_Disappeared_in_an_Array/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._448_Find_All_Numbers_Disappeared_in_an_Array;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | public class Solution {
7 |
8 | /*给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,
9 | 另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。时间复杂度o(n)*/
10 |
11 |
12 | public List findDisappearedNumbers(int[] nums) {
13 | List list = new ArrayList<>();
14 | for(int i = 0;i < nums.length;i++){
15 | int val = Math.abs(nums[i]) - 1;
16 | //标记该位置的数为负数
17 | if(nums[val] > 0){
18 | nums[val] = -nums[val];
19 | }
20 | }
21 | for(int i = 0;i < nums.length;i++){
22 | //如果为正数,表示该位置没有被标记过,也就表面该数组没有出现过这个数字
23 | if(nums[i] > 0){
24 | list.add(i+1);
25 | }
26 | }
27 | return list;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_455_Assign_Cookies/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._455_Assign_Cookies;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*题目描述:每个孩子都有一个满足度,每个饼干都有一个大小,只有饼干的大小大于等于一个孩子的满足度,该孩子才会获得满足。求解最多可以获得满足的孩子数量。
8 |
9 | 给一个孩子的饼干应当尽量小又能满足该孩子,这样大饼干就能拿来给满足度比较大的孩子。因为最小的孩子最容易得到满足,所以先满足最小的孩子。*/
10 | public int findContentChildren(int[] g, int[] s) {
11 | Arrays.sort(g);
12 | Arrays.sort(s);
13 | int gi = 0, si = 0;
14 | while (gi < g.length && si < s.length) {
15 | if (g[gi] <= s[si]) {
16 | gi++;
17 | }
18 | si++;
19 | }
20 | return gi;
21 | }
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/algorithm/_461_Hamming_Distance/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._461_Hamming_Distance;
2 |
3 | public class Solution {
4 |
5 | /*两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
6 | 给出两个整数 x 和 y,计算它们之间的汉明距离。*/
7 |
8 | //两数异或,二进制不同的位置的值为1,只需计算有多少个1即可
9 | public int hammingDistance(int x, int y) {
10 | int z = x ^ y;
11 | int count = 0;
12 | while (z != 0) {
13 | if ((z & 1) == 1) {
14 | count++;
15 | }
16 | z = z >> 1;
17 | }
18 | return count;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/algorithm/_462_Minimum_Moves_to_Equal_Array_Elements_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._462_Minimum_Moves_to_Equal_Array_Elements_II;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素
8 | 加1或减1。您可以假设数组的长度最多为10000。*/
9 |
10 | //a,b表示中间值两边的两个数,向中间移动的次数等于b-a
11 | public int minMoves2(int[] nums) {
12 | Arrays.sort(nums);
13 | int start = 0, end = nums.length - 1;
14 | int move = 0;
15 | while (start <= end) {
16 | move += nums[end] - nums[start];
17 | start++;
18 | end--;
19 | }
20 | return move;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/algorithm/_485_Max_Consecutive_Ones/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._485_Max_Consecutive_Ones;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二进制数组, 计算其中最大连续1的个数。*/
6 |
7 | public int findMaxConsecutiveOnes(int[] nums) {
8 | int max = 0, cur = 0;
9 | for (int num : nums) {
10 | cur = num == 0 ? 0 : cur + 1;
11 | max = Math.max(max, cur);
12 | }
13 | return max;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/algorithm/_496_Next_Greater_Element_I/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._496_Next_Greater_Element_I;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 | import java.util.Stack;
6 |
7 | public class Solution {
8 |
9 | /*给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。
10 | 找到 nums1 中每个元素在 nums2 中的下一个比其大的值。
11 | nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。
12 | 如果不存在,对应位置输出-1。*/
13 |
14 |
15 |
16 | public int[] nextGreaterElement(int[] nums1, int[] nums2) {
17 | //用于保存每个元素的下一个比其大的值
18 | Map map = new HashMap<>();
19 | Stack stack = new Stack<>();
20 | for (int num : nums2) {
21 | //栈不为空而且找到比栈顶元素大的值
22 | while (!stack.empty() && stack.peek() < num) {
23 | map.put(stack.pop(), num);
24 | }
25 | stack.push(num);
26 | }
27 | for (int i = 0; i < nums1.length; i++) {
28 | nums1[i] = map.getOrDefault(nums1[i], -1);
29 | }
30 | return nums1;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/algorithm/_503_Next_Greater_Element_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._503_Next_Greater_Element_II;
2 |
3 | import java.util.Arrays;
4 | import java.util.Stack;
5 |
6 | public class Solution {
7 |
8 | /*给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的
9 | 下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个
10 | 比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。*/
11 |
12 |
13 | public int[] nextGreaterElements(int[] nums) {
14 | int n = nums.length;
15 | int[] next = new int[n];
16 | Arrays.fill(next, -1);
17 | //栈保存之前的元素
18 | Stack stack = new Stack<>();
19 | //2*n表示要遍历两遍
20 | for (int i = 0; i < 2 * n; i++) {
21 | int num = nums[i % n];
22 | //栈不为空而且栈顶索引指向的元素比当前元素小,更新next数组的对应索引元素为当前元素
23 | while (!stack.empty() && nums[stack.peek()] < num) {
24 | next[stack.pop()] = num;
25 | }
26 | if (i < n) {
27 | stack.push(i);
28 | }
29 | }
30 | return next;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/algorithm/_504_Base_7/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._504_Base_7;
2 |
3 | public class Solution {
4 |
5 | /*给定一个整数,将其转化为7进制,并以字符串形式输出。*/
6 |
7 | public String convertToBase7(int num) {
8 | if (num == 0) {
9 | return "0";
10 | }
11 | StringBuilder stb = new StringBuilder();
12 | boolean isNegative = num < 0;
13 | if (isNegative) {
14 | num = -num;
15 | }
16 | while (num > 0) {
17 | //取余数
18 | stb.append(num % 7);
19 | num /= 7;
20 | }
21 | //字符串反转
22 | String res = stb.reverse().toString();
23 | return isNegative ? "-" + res : res;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/algorithm/_513_Find_Bottom_Left_Tree_Value/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._513_Find_Bottom_Left_Tree_Value;
2 |
3 | import java.util.LinkedList;
4 | import java.util.Queue;
5 |
6 | public class Solution {
7 |
8 |
9 | public class TreeNode {
10 | int val;
11 | TreeNode left;
12 | TreeNode right;
13 |
14 | TreeNode(int x) {
15 | val = x;
16 | }
17 | }
18 |
19 | /*给定一个二叉树,找到最下面一行的最左边的结点*/
20 |
21 | public int findBottomLeftValue(TreeNode root) {
22 | if (root == null) return 0;
23 | Queue queue = new LinkedList<>();
24 | queue.add(root);
25 | while (!queue.isEmpty()) {
26 | root = queue.poll();
27 | if (root.right != null) {
28 | queue.add(root.right);
29 | }
30 | if (root.left != null) {
31 | queue.add(root.left);
32 | }
33 | }
34 | return root.val;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/algorithm/_518_Coin_Change_2/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._518_Coin_Change_2;
2 |
3 | public class Solution {
4 |
5 | /*给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。
6 | 假设每一种面额的硬币有无限个。*/
7 |
8 |
9 | //完全背包问题
10 | public int change(int amount, int[] coins) {
11 | int[] dp = new int[amount + 1];
12 | dp[0] = 1;
13 | for (int coin : coins) {
14 | for (int i = coin; i <= amount; i++) {//完全背包,硬币可重复,采用正序
15 | dp[i] = dp[i] + dp[i - coin];
16 | }
17 | }
18 | return dp[amount];
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/algorithm/_530_Minimum_Absolute_Difference_in_BST/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._530_Minimum_Absolute_Difference_in_BST;
2 |
3 | public class Solution {
4 |
5 | /*给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。*/
6 |
7 | public class TreeNode {
8 | int val;
9 | TreeNode left;
10 | TreeNode right;
11 |
12 | TreeNode(int x) {
13 | val = x;
14 | }
15 | }
16 |
17 |
18 | private int min = Integer.MAX_VALUE;
19 | private TreeNode pre = null;
20 |
21 | public int getMinimumDifference(TreeNode root) {
22 | inOrder(root);
23 | return min;
24 | }
25 |
26 | //中序遍历
27 | private void inOrder(TreeNode root) {
28 | if (root == null) {
29 | return;
30 | }
31 | inOrder(root.left);
32 | //当前节点和前一个节点的差值
33 | if (pre != null) {
34 | min = Math.min(min, root.val - pre.val);
35 | }
36 | //更新前一个结点
37 | pre = root;
38 | inOrder(root.right);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/algorithm/_538_Convert_BST_to_Greater_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._538_Convert_BST_to_Greater_Tree;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),
6 | 使得每个节点的值是原来的节点值加上所有大于它的节点值之和。*/
7 |
8 |
9 | public class TreeNode {
10 | int val;
11 | TreeNode left;
12 | TreeNode right;
13 | TreeNode(int x) { val = x; }
14 | }
15 |
16 |
17 | //全局变量
18 | int sum = 0;
19 |
20 | public TreeNode convertBST(TreeNode root) {
21 | convert(root);
22 | return root;
23 | }
24 |
25 | //右根左,中序遍历反过来
26 | /*一直递归右结点,找到最右的结点,更新它的值为结点值加上累加值,并将累加值更新为该结点的值。再递归左结点*/
27 | private void convert(TreeNode cur){
28 | if(cur == null){
29 | return;
30 | }
31 | convert(cur.right);
32 | cur.val += sum;
33 | sum = cur.val;
34 | convert(cur.left);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/algorithm/_540_Single_Element_in_a_Sorted_Array/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._540_Single_Element_in_a_Sorted_Array;
2 |
3 | public class Solution {
4 |
5 | /*给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。
6 | 要求O(log n)时间复杂度*/
7 |
8 | public int singleNonDuplicate(int[] nums) {
9 | int L = 0, R = nums.length - 1;
10 | while (L < R) {
11 | //中位数位置
12 | int mid = L + (R - L) / 2;
13 | //如果中位数的位置是奇数,那么进行减1操作,确保左边区间和右边区间的长度都为偶数
14 | if (mid % 2 == 1) {
15 | mid--;
16 | }
17 | //相等表示右边区间除去nums[mid + 1]之后,长度为奇数,那么该数肯定在这里面
18 | if (nums[mid] == nums[mid + 1]) {
19 | L = mid + 2;
20 | //反之表示右边区间的偶数都是两两匹配,该数不在这里面。
21 | } else {
22 | R = mid;
23 | }
24 | }
25 | return nums[L];
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_543_Diameter_of_Binary_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._543_Diameter_of_Binary_Tree;
2 |
3 | public class Solution {
4 |
5 | public class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 | TreeNode(int x) { val = x; }
10 | }
11 |
12 | /*二叉树中任意两节点的最长路径*/
13 |
14 | //定义一个初始的最大值
15 | private int max = 0;
16 |
17 | public int diameterOfBinaryTree(TreeNode root) {
18 | depth(root);
19 | return max;
20 | }
21 |
22 | private int depth(TreeNode root) {
23 | if (root == null) return 0;
24 | int leftDepth = depth(root.left);
25 | int rightDepth = depth(root.right);
26 | //左树的长度和右树的长度相加再和最大值比较
27 | max = Math.max(max,leftDepth+rightDepth);
28 | //树的层数
29 | return Math.max(leftDepth, rightDepth) + 1;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_557_Reverse_Words_in_a_String_III/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._557_Reverse_Words_in_a_String_III;
2 |
3 | public class Solution {
4 |
5 | /*给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。*/
6 |
7 | public String reverseWords(String s) {
8 | char[] str = s.toCharArray();
9 | int start = 0;
10 | for (int i = 0; i < str.length; i++) {
11 | if (s.charAt(i) == ' ') {
12 | reverseWord(str, start, i - 1);
13 | start = i + 1;
14 | }
15 | }
16 | reverseWord(str, start, str.length - 1);
17 | return new String(str);
18 | }
19 |
20 | private void reverseWord(char[] str, int start, int end) {
21 | while (start < end) {
22 | char temp = str[start];
23 | str[start] = str[end];
24 | str[end] = temp;
25 | start++;
26 | end--;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_560_Subarray_Sum_Equals_K/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._560_Subarray_Sum_Equals_K;
2 |
3 | import java.util.HashMap;
4 |
5 | public class Solution {
6 |
7 | /*要求连续子数组的和为k,求子数组的个数*/
8 |
9 |
10 |
11 | /*采用的方式是用hashmap保存的key是前面数字相加的和,value是该和出现的次数。将该问题转化为前面数字的和减去k后
12 | 的数字和的个数*/
13 | public int subarraySum(int[] nums, int k) {
14 | int sum = 0, result = 0;
15 | HashMap map = new HashMap<>();
16 | //当和为0时,次数为1
17 | map.put(0, 1);
18 | for (int i = 0; i < nums.length; i++) {
19 | sum += nums[i];
20 | //如果sum-k这个key存在,该和出现的次数就表示子数组和为k的个数
21 | if (map.containsKey(sum - k)) {
22 | result += map.get(sum - k);
23 | }
24 | //将前面数字的和作为key放入,map有已经有这个key的话value就加1
25 | map.put(sum, map.getOrDefault(sum, 0) + 1);
26 | }
27 | return result;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_565_Array_Nesting/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._565_Array_Nesting;
2 |
3 | public class Solution {
4 |
5 | /*索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到并返回最大的集合S,
6 | S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。
7 |
8 | 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是
9 | A[A[A[i]]]... 以此类推,不断添加直到S出现重复的元素。*/
10 |
11 | public int arrayNesting(int[] nums) {
12 | int max = 0;
13 | for (int i = 0; i < nums.length; i++) {
14 | int count = 0;
15 | //从该数字开始访问
16 | for (int j = i; nums[j] != -1; ) {
17 | count++;
18 | int t = nums[j];
19 | //标记已经使用过
20 | nums[j] = -1;
21 | j = t;
22 | }
23 | max = Math.max(max, count);
24 | }
25 | return max;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_566_Reshape_the_Matrix/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._566_Reshape_the_Matrix;
2 |
3 | public class Solution {
4 |
5 | /*给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。
6 | 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。
7 | 如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。*/
8 |
9 | public int[][] matrixReshape(int[][] nums, int r, int c) {
10 | if (nums == null || nums.length == 0) {
11 | return null;
12 | }
13 | int rows = nums.length;
14 | int cols = nums[0].length;
15 | if (rows * cols != r * c) {
16 | return nums;
17 | }
18 | int[][] result = new int[r][c];
19 | int index = 0;
20 | for (int i = 0; i < r; i++) {
21 | for (int j = 0; j < c; j++) {
22 | result[i][j] = nums[index / cols][index % cols];
23 | index++;
24 | }
25 | }
26 | return result;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/algorithm/_583_Delete_Operation_for_Two_Strings/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._583_Delete_Operation_for_Two_Strings;
2 |
3 | public class Solution {
4 |
5 | /*给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,
6 | 每步可以删除任意一个字符串中的一个字符。*/
7 |
8 | //转化为计算两个字符串的公共字符串
9 | public int minDistance(String word1, String word2) {
10 | int m = word1.length(), n = word2.length();
11 | int[][] dp = new int[m + 1][n + 1];
12 | for (int i = 1; i <= m; i++) {
13 | for (int j = 1; j <= n; j++) {
14 | if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
15 | dp[i][j] = dp[i - 1][j - 1] + 1;
16 | } else {
17 | dp[i][j] = Math.max(dp[i][j - 1], dp[i - 1][j]);
18 | }
19 | }
20 | }
21 | //两个字符串相加的长度减去公共字符串
22 | return m + n - 2 * dp[m][n];
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/algorithm/_605_Can_Place_Flowers/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._605_Can_Place_Flowers;
2 |
3 | public class Solution {
4 |
5 | /*给定一个数组,数组里面1表示种了花朵,0表示没有种。看能否种下n朵花,要求种的花不能相邻*/
6 | public boolean canPlaceFlowers(int[] flowerbed, int n) {
7 | int len = flowerbed.length;
8 | int count = 0;
9 | for (int i = 0; i < len && count < n; i++) {
10 | //判断是否种了花
11 | if (flowerbed[i] == 1) {
12 | continue;
13 | }
14 | //左边是否种了
15 | int pre = i == 0 ? 0 : flowerbed[i - 1];
16 | //右边是否种了
17 | int next = i == len - 1 ? 0 : flowerbed[i + 1];
18 | //如果左边和右边都没有花就种下
19 | if (pre == 0 && next == 0) {
20 | count++;
21 | flowerbed[i] = 1;
22 | }
23 | }
24 | //数量相等表示都能种下
25 | return count == n;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_617_Merge_Two_Binary_Trees/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._617_Merge_Two_Binary_Trees;
2 |
3 | public class Solution {
4 |
5 | public class TreeNode {
6 | int val;
7 | TreeNode left;
8 | TreeNode right;
9 | TreeNode(int x) { val = x; }
10 | }
11 |
12 | /*给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
13 | 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点
14 | 合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。*/
15 |
16 | public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
17 | if( t1 == null && t2 == null){
18 | return null;
19 | }else if( t1 == null){
20 | return t2;
21 | }else if( t2 == null){
22 | return t1;
23 | }
24 | TreeNode root = new TreeNode(t1.val + t2.val);
25 | //递归左子树
26 | root.left = mergeTrees(t1.left,t2.left);
27 | //递归右子树
28 | root.right = mergeTrees(t1.right,t2.right);
29 | return root;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_621_Task_Scheduler/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._621_Task_Scheduler;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种
8 | 不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何
9 | 一个单位时间内都可以执行一个任务,或者在待命状态。
10 | 然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执
11 | 行不同的任务,或者在待命状态。
12 | 你需要计算完成所有任务所需要的最短时间。*/
13 |
14 |
15 | public int leastInterval(char[] tasks, int n) {
16 | int[] chars = new int[26];
17 | for (char c : tasks) {
18 | chars[c - 'A']++;
19 | }
20 | //按频率排序,可以找到使用频率最高的值
21 | Arrays.sort(chars);
22 | int i = 25;
23 | //确定使用频率最高的值相同的字符有多少个
24 | while (i >= 0 && chars[i] == chars[25]) i--;
25 | //考虑间隔长度n可能为零,所以最短时间可能是数组长度
26 | return Math.max(tasks.length, (chars[25] - 1) * (n + 1) + 25 - i);
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/src/algorithm/_645_Set_Mismatch/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._645_Set_Mismatch;
2 |
3 | public class Solution {
4 |
5 | /*集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合
6 | 里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。
7 | 给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢
8 | 失的整数,将它们以数组的形式返回。*/
9 |
10 | //将1-n的整数摆放到正确的位置上
11 | public int[] findErrorNums(int[] nums) {
12 | for (int i = 0; i < nums.length; i++) {
13 | //如果整数位置不正确并且不和交换后的数字相等,就交换数字
14 | while (nums[i] != i + 1 && nums[nums[i] - 1] != nums[i]) {
15 | swap(nums, i, nums[i] - 1);
16 | }
17 | }
18 | for (int i = 0; i < nums.length; i++) {
19 | if (nums[i] != i + 1) {
20 | return new int[]{nums[i], i + 1};
21 | }
22 | }
23 | return null;
24 | }
25 |
26 | private void swap(int[] nums, int i, int j) {
27 | int temp = nums[i];
28 | nums[i] = nums[j];
29 | nums[j] = temp;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/algorithm/_646_Maximum_Length_of_Pair_Chain/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._646_Maximum_Length_of_Pair_Chain;
2 |
3 | import java.util.Arrays;
4 |
5 | public class Solution {
6 |
7 | /*给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。
8 | 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。
9 | 我们用这种形式来构造一个数对链。
10 | 给定一个对数集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序
11 | 选择其中的一些数对来构造。*/
12 |
13 | public int findLongestChain(int[][] pairs) {
14 | if (pairs == null || pairs.length == 0) {
15 | return 0;
16 | }
17 | Arrays.sort(pairs, (o1, o2) -> o1[0] - o2[0]);
18 | int length = pairs.length;
19 | int[] dp = new int[length];
20 | Arrays.fill(dp, 1);
21 | for (int i = 0; i < length; i++) {
22 | for (int j = 0; j < i; j++) {
23 | if (pairs[j][1] < pairs[i][0]) {
24 | dp[i] = Math.max(dp[i], dp[j] + 1);
25 | }
26 | }
27 | }
28 | return Arrays.stream(dp).max().orElse(0);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/algorithm/_647_Palindromic_Substrings/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._647_Palindromic_Substrings;
2 |
3 | public class Solution {
4 | /*给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
5 | 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。*/
6 |
7 | //回文字符串数量
8 | int count = 0;
9 |
10 | public int countSubstrings(String s) {
11 | for (int i = 0; i < s.length(); i++) {
12 | //字符串长度为奇数,当前结点向外延长
13 | extendPalindrome(s, i, i);//odd
14 | //字符串长度为偶数,当前结点加上后一个结点向外延长
15 | extendPalindrome(s, i, i + 1);//even
16 | }
17 | return count;
18 | }
19 |
20 | //向外延长,继续找出回文字符串
21 | private void extendPalindrome(String s, int left, int right) {
22 | while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
23 | count++;
24 | left--;
25 | right++;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/algorithm/_669_Trim_a_Binary_Search_Tree/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._669_Trim_a_Binary_Search_Tree;
2 |
3 | public class Solution {
4 |
5 | /*给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点
6 | 的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树
7 | 的新的根节点。*/
8 |
9 | public class TreeNode {
10 | int val;
11 | TreeNode left;
12 | TreeNode right;
13 |
14 | TreeNode(int x) {
15 | val = x;
16 | }
17 | }
18 |
19 | public TreeNode trimBST(TreeNode root, int L, int R) {
20 | if (root == null) {
21 | return null;
22 | }
23 | //根节点比左边界小,修剪的树的根节点在右子树中寻找
24 | if (root.val < L) {
25 | return trimBST(root.right, L, R);
26 | }
27 | //根节点比右边界大,修剪的树的根节点在左子树中寻找
28 | if (root.val > R) {
29 | return trimBST(root.left, L, R);
30 | }
31 | //根节点处于L和R中间
32 | root.left = trimBST(root.left, L, R);
33 | root.right = trimBST(root.right, L, R);
34 | return root;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/algorithm/_680_Valid_Palindrome_II/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._680_Valid_Palindrome_II;
2 |
3 | public class Solution {
4 |
5 | /*给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。*/
6 |
7 |
8 | public boolean validPalindrome(String s) {
9 | int index = 0, end = s.length() - 1;
10 | while (index < end) {
11 | //如果不匹配,存在两种情况回文
12 | if (s.charAt(index) != s.charAt(end)) {
13 | return isPalindrome(s, index + 1, end) || isPalindrome(s, index, end - 1);
14 | }
15 | index++;
16 | end--;
17 | }
18 | return true;
19 | }
20 |
21 | //双指针判断回文
22 | private boolean isPalindrome(String s, int i, int j) {
23 | while (i < j) {
24 | if (s.charAt(i++) != s.charAt(j--)) {
25 | return false;
26 | }
27 | }
28 | return true;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/algorithm/_739_Daily_Temperatures/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._739_Daily_Temperatures;
2 |
3 | import java.util.Stack;
4 |
5 | public class Solution {
6 |
7 | /*给定一个日常温度的数组T,需要返回一个数组,数组里面记录了还需要等待多少天才能有更高的温度*/
8 |
9 | public int[] dailyTemperatures(int[] T) {
10 | //用栈来保存每一天
11 | Stack stack = new Stack();
12 | int[] result = new int[T.length];
13 | for (int i = 0; i < T.length; i++) {
14 | //栈不是空的并且当前天的温度大于栈顶该天的温度
15 | while (!stack.empty() && T[i] > T[stack.peek()]) {
16 | //栈顶的天数
17 | int index = stack.pop();
18 | //更新result数组的栈顶天数需要等待的天数
19 | result[index] = i - index;
20 | }
21 | //将天数入栈
22 | stack.push(i);
23 | }
24 | return result;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/algorithm/_746_Min_Cost_Climbing_Stairs/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._746_Min_Cost_Climbing_Stairs;
2 |
3 | public class Solution {
4 |
5 | /*数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。
6 | 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。
7 | 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。*/
8 |
9 |
10 | public int minCostClimbingStairs(int[] cost) {
11 | if (cost == null || cost.length == 0) {
12 | return 0;
13 | }
14 | for (int i = 2; i < cost.length; i++) {
15 | cost[i] += Math.min(cost[i - 1], cost[i - 2]);
16 | }
17 | return Math.min(cost[cost.length - 1], cost[cost.length - 2]);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/algorithm/_769_Max_Chunks_To_Make_Sorted/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._769_Max_Chunks_To_Make_Sorted;
2 |
3 | public class Solution {
4 |
5 | /*数组arr是[0, 1, ..., arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将
6 | 这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。
7 | 我们最多能将数组分成多少块?*/
8 |
9 |
10 | public int maxChunksToSorted(int[] arr) {
11 | if (arr == null || arr.length == 0) {
12 | return 0;
13 | }
14 | int right = arr[0];
15 | int count = 0;
16 | for (int i = 0; i < arr.length; i++) {
17 | right = Math.max(right, arr[i]);
18 | //找到一块逆序,可以来一次排序
19 | if (right == i) {
20 | count++;
21 | }
22 | }
23 | return count;
24 | }
25 |
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/algorithm/_771_Jewels_and_Stones/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._771_Jewels_and_Stones;
2 |
3 | import java.util.HashSet;
4 | import java.util.Set;
5 |
6 | public class Solution {
7 |
8 |
9 | /* 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。
10 | S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。*/
11 |
12 | //借助HashSet,时间复杂度为O(M+N)
13 | public int numJewelsInStones(String J, String S) {
14 | int res = 0;
15 | Set set = new HashSet();
16 | for (char j : J.toCharArray()) {
17 | if (!set.contains(j)) {
18 | set.add(j);
19 | }
20 | }
21 | for (char s : S.toCharArray()) {
22 | if (set.contains(s)) {
23 | res++;
24 | }
25 | }
26 | return res;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/algorithm/_876_Middle_of_the_Linked_List/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._876_Middle_of_the_Linked_List;
2 |
3 | public class Solution {
4 |
5 |
6 | public class ListNode {
7 | int val;
8 | ListNode next;
9 |
10 | ListNode(int x) {
11 | val = x;
12 | }
13 | }
14 |
15 |
16 |
17 | /*给定一个带有头结点 head 的非空单链表,返回链表的中间结点。
18 | 如果有两个中间结点,则返回第二个中间结点。*/
19 |
20 | public ListNode middleNode(ListNode head) {
21 | ListNode slow = head, fast = head;
22 | while (fast != null && fast.next != null) {
23 | slow = slow.next;
24 | fast = fast.next.next;
25 | }
26 | return slow;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/algorithm/_946_Validate_Stack_Sequences/Solution.java:
--------------------------------------------------------------------------------
1 | package algorithm._946_Validate_Stack_Sequences;
2 |
3 | import java.util.Stack;
4 |
5 | public class Solution {
6 |
7 | /*给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的
8 | 推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。*/
9 |
10 |
11 | //构造辅助栈
12 | public boolean validateStackSequences(int[] pushed, int[] popped) {
13 | if (pushed == null || popped == null) {
14 | return false;
15 | }
16 | Stack stack = new Stack<>();
17 | //出栈索引位
18 | int popIndex = 0;
19 | for (int i = 0; i < pushed.length; i++) {
20 | stack.push(pushed[i]);
21 | //如果栈不为空且栈顶元素等于出栈序列元素,就执行出栈操作并移动出栈索引
22 | while (!stack.empty() && stack.peek() == popped[popIndex]) {
23 | stack.pop();
24 | popIndex++;
25 | }
26 | }
27 | //栈为空表示元素全部弹出了,返回true,否则返回false
28 | return stack.empty();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------