├── .github ├── FUNDING.yml ├── stale.yml └── workflows │ ├── link_checker.yml │ ├── main.yml │ └── picker.yml ├── .gitignore ├── .idea └── dictionaries │ └── yuzhouwan.xml ├── .lgtm.yml ├── .pep8speaks.yml ├── .theia └── settings.json ├── Codes ├── BlitheLou │ ├── LeetCode │ │ ├── 001_two_sum.py │ │ ├── 002_add_two_numbers.py │ │ └── other_code │ │ │ └── 206_reverse_linked_list.py │ ├── README.md │ └── images │ │ └── 002_add_two_numbers.png ├── BoCai │ ├── 1.two-sum │ │ └── Solution.java │ ├── 2.add-two-numbers │ │ └── Solution.java │ ├── 3.longest-substring-without-repeating-characters │ │ └── Solution.java │ └── README.md ├── Buddy119 │ ├── Graph │ │ ├── 133_Clone_Graph │ │ │ └── solution.cpp │ │ ├── 138_Copy_List_with_Random_Pointer │ │ │ └── solution.cpp │ │ ├── 200_Number_of_Islands │ │ │ └── solution.cpp │ │ ├── 207_Course_Schedule │ │ │ └── solution.cpp │ │ ├── 210_Course_Schedule_II │ │ │ └── solution.cpp │ │ ├── 547_Friend_Circles │ │ │ └── solution.cpp │ │ ├── 695_Max_Area_of_Island │ │ │ └── solution.cpp │ │ └── 841_Keys_and_Rooms │ │ │ └── solution.cpp │ ├── Queue_and_stack │ │ ├── 225_Implement_Stack_using_Queues │ │ │ └── solution.cpp │ │ └── 232_Implement_Queue_using_Stacks │ │ │ └── solution.cpp │ ├── String │ │ ├── 11_Container_With_Most_Water │ │ │ └── solution.cpp │ │ ├── 14_Longest_Common_Prefix │ │ │ └── solution.cpp │ │ ├── 179_Largest_Number │ │ │ └── solution.cpp │ │ ├── 3_Longest_Substring_Without_Repeating_Characters │ │ │ └── solution.cpp │ │ ├── 43_Multiply_Strings │ │ │ └── solution.cpp │ │ └── 5_Longest_Palindromic_Substring │ │ │ └── solution.cpp │ └── Tree │ │ ├── 100_Same_Tree │ │ └── solution.cpp │ │ ├── 102_Binary_Tree_Level_Order_Traversal │ │ └── solution.cpp │ │ ├── 104_Maximum_Depth_of_Binary_Tree │ │ └── solution.cpp │ │ ├── 109_Convert_Sorted_List_to_Binary_Search_Tree │ │ └── solution.cpp │ │ ├── 110_Balanced_Binary_Tree │ │ └── solution.cpp │ │ ├── 111_Minimum_Depth_of_Binary_Tree │ │ └── solution.cpp │ │ ├── 112_Path_Sum │ │ └── solution.cpp │ │ ├── 113_Path_Sum_II │ │ └── solution.cpp │ │ ├── 114_Flatten_Binary_Tree_to_Linked_List │ │ └── solution.cpp │ │ ├── 144_Binary_Tree_Preorder_Traversal │ │ └── iterative.cpp │ │ ├── 450_Delete_Node_in_a_BST │ │ └── solution.cpp │ │ ├── 94_Binary_Tree_Inorder_Traversal │ │ ├── iterative.cpp │ │ └── recursive.cpp │ │ ├── 95_Unique_Binary_Search_Trees_II │ │ └── solution.cpp │ │ ├── 98_Validate_Binary_Search_Tree │ │ └── solution.cpp │ │ └── 99_Recover_Binary_Search_Tree │ │ └── solution.cpp ├── Dizent │ └── README.md ├── DrTang2000 │ └── README.md ├── GinRyan │ ├── LeetCode │ │ ├── Java-8-Solves │ │ │ └── LeeCodesSolves │ │ │ │ ├── .gitignore │ │ │ │ └── srcs │ │ │ │ └── org │ │ │ │ └── ginryan │ │ │ │ └── github │ │ │ │ └── leetcodes │ │ │ │ ├── s1_two_sum │ │ │ │ └── Solution.java │ │ │ │ ├── s2_add_two_numbers │ │ │ │ └── Solution.java │ │ │ │ └── s3_longest_substring_without_repeating_characters │ │ │ │ └── Solution.java │ │ └── Python-3-Solves │ │ │ ├── .gitignore │ │ │ ├── 1_sum_to_target.py │ │ │ ├── 2_add_two_numbers.py │ │ │ ├── 3_longest_substring_without_repeating_characters.py │ │ │ ├── 5_longest_palindromic_substring.py │ │ │ ├── 6_zigzag_conversion.py │ │ │ ├── 7_reverse_interger.py │ │ │ ├── 8_string_to_integer_atoi.py │ │ │ └── 9_palindrome_number.py │ └── README.md ├── HuaiyuGong │ ├── 130.surrounded-regions │ │ └── resolve.rs │ └── README.md ├── JJ │ ├── 001_TwoSum │ │ └── Solution.java │ ├── 002_AddTwoNumbers │ │ └── Solution.java │ └── README.md ├── Lawrence51 │ └── README.md ├── Liam │ ├── 001_two_sum.py │ ├── 002_add_two_numbers.py │ ├── 003_longest_substring_without_repeating_characters.py │ ├── 004_median_of_two_sorted_arrays.py │ ├── 005_longest_palindromic_substring.py │ ├── 008_string_to_integer.py │ ├── 009_palindrome_number.py │ ├── 015_three_sum.py │ ├── 019_remove_nth_node_from_end_of_list.py │ ├── 020_valid_parentheses.py │ ├── 021_merge_two_sorted_lists.py │ ├── 1022_sum_of_root_to_leaf_binary_numbers.py │ ├── 1207_unique_number_of_occurrences.py │ ├── 121_best_time_to_buy_and_sell_stock.py │ ├── 1221_split_a_string_in_balanced_strings.py │ ├── 1232_check_if_it_is_a_straight_line.py │ ├── 1323_maximum_69_number.py │ ├── 1346_check_if_N_and_its_double_exist.py │ ├── 155_min_stack.py │ ├── 167_two_sum_II_input_array_is_sorted.py │ ├── 168_excel_sheet_column_title.py │ ├── 172_factorial_trailing_zeroes.py │ ├── 203_remove_linked_list_elements.py │ ├── 226_invert_binary_tree.py │ ├── 237_delete_node_in_a_linked_list.py │ ├── 242_valid_anagram.py │ ├── 258_add_digits.py │ ├── 326_power_of_three.py │ ├── 342_power_of_four.py │ ├── 344_reverse_string.py │ ├── 345_reverse_vowels_of_a_string.py │ ├── 371_sum_of_two_integers.py │ ├── 415_add_strings.py │ ├── 434_number_of_segments_in_a_string.py │ ├── 476_number_complement.py │ ├── 5352_generate_a_string_with_characters_that_have_odd_counts.py │ ├── 5353_bulb_switcher_III.py │ ├── 5354_time_needed_to_inform_all_employees.py │ ├── 5355_frog_position_after_t_seconds.py │ ├── 557_reverse_words_in_a_string_III.py │ ├── 559_maximum_depth_of_n-ary_tree.py │ ├── 561_array_partition_I.py │ ├── 563_binary_tree_tilt.py │ ├── 581_shortest_unsorted_continuous_subarray.py │ ├── 617_merge_two_binary_trees.py │ ├── 70_climbing_stairs.py │ ├── 77_combinations.py │ └── README.md ├── LittleCuteRabbit │ ├── Array │ │ ├── 1480.-Running-Sum-of-1d-Array │ │ │ └── Solution.py │ │ └── 1672.-Richest-Customer-Wealth │ └── README.md ├── P_fzr │ └── 1_two_sum.py ├── Terence.Sun │ ├── 1046-Last-Stone-Weight │ │ ├── 1.js │ │ └── detail.md │ └── README.md ├── Yves-Liu │ └── README.md ├── ZZhang │ ├── 102_Binary_Tree_Level_Order_Traversal │ │ └── Solution.java │ ├── 104_Maximum_Depth_of_Binary_Tree │ │ └── Solution.java │ ├── 105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal │ │ └── Solution.java │ ├── 111_Minimum_Depth_of_Binary_Tree │ │ └── Solution.java │ ├── 11_Container_With_Most_Water │ │ └── Solution.java │ ├── 141_Linked_List_Cycle │ │ └── Solution.java │ ├── 142_Linked_List_Cycle_ii │ │ └── Solution.java │ ├── 144_Binary_Tree_Preorder_Traversal │ │ └── Solution.java │ ├── 155_Min_Stack │ │ └── Solution.java │ ├── 15_3SUM │ │ └── Solution.java │ ├── 169_Majority_Element │ │ └── Solution.java │ ├── 17_Letter_Combinations_of_a_Phone_Number │ │ └── Solution.java │ ├── 189_Rotate_Array │ │ └── Solution.java │ ├── 1_TwoSum │ │ └── Solution.java │ ├── 206_Reverse_Linked_List │ │ └── Solution.java │ ├── 20_Valid_Parentheses │ │ └── Solution.java │ ├── 21_Merge_Two_Sorted_Lists │ │ └── Solution.java │ ├── 226_Invert_Binary_Tree │ │ └── Solution.java │ ├── 22_Generate_Parentheses │ │ └── Solution.java │ ├── 235_Lowest_Common_Ancestor_of_a_Binary_Search_Tree │ │ └── Solution.java │ ├── 236_Lowest_Common_Ancestor_of_a_Binary_Tree │ │ └── Solution.java │ ├── 239_Sliding_Window_Maximum │ │ └── Solution.java │ ├── 242_Valid_Anagram │ │ └── Solution.java │ ├── 24_Swap_Nodes_In_Pairs │ │ └── Solution.java │ ├── 25_Reverse_Nodes_in_k-Group │ │ └── Solution.java │ ├── 26_Remove_Duplicates_from_Sorted_Array │ │ └── Solution.java │ ├── 283_MoveZeroes │ │ └── Solution.java │ ├── 297_Serialize_and_Deserialize_Binary_Tree │ │ └── Solution.java │ ├── 2_Add_Two_Numbers │ │ └── Solution.java │ ├── 429_N-ary_Tree_Level_Order_Traversal │ │ └── Solution.java │ ├── 42_Trapping_Rain_Water │ │ └── Solution.java │ ├── 433_Minimum_Genetic_Mutation │ │ └── Solution.java │ ├── 46_Permutations │ │ └── Solution.java │ ├── 47_Permutations_II │ │ └── Solution.java │ ├── 49_Group_Anagrams │ │ └── Solution.java │ ├── 50_Pow(x,_n) │ │ └── Solution.java │ ├── 515_Find_Largest_Value_in_Each_Tree_Row │ │ └── Solution.java │ ├── 589_N-ary_Tree_Preorder_Traversal │ │ └── Solution.java │ ├── 590_N-ary_Tree_Postorder_Traversal │ │ └── Solution.java │ ├── 66_Plus_One │ │ └── Solution.java │ ├── 70_ClimbingStairs │ │ └── Solution.java │ ├── 77_Combinations │ │ └── Solution.java │ ├── 78_Subsets │ │ └── Solution.java │ ├── 84_Largest_Rectangle_in_Histogram │ │ └── Solution.java │ ├── 88_Merge_Sorted_Array │ │ └── Solution.java │ ├── 94_Binary_Tree_Inorder_Traversal │ │ └── Solution.java │ ├── 98_Validate_Binary_Search_Tree │ │ └── Solution.java │ └── README.md ├── aiv2008 │ └── README.md ├── ampn │ └── README.md ├── asdf2014 │ ├── 10_regular_expression_matching │ │ └── regular_expression_matching.py │ ├── 13_roman_to_integer │ │ ├── roman_to_integer.py │ │ └── roman_to_integer_replace.py │ ├── 146_lru_cache │ │ └── lru_cache.py │ ├── 15_3sum │ │ └── 3sum.py │ ├── 17_letter_combinations_of_a_phone_number │ │ └── letter_combinations_of_a_phone_number.py │ ├── 19_remove_nth_node_from_end_of_list │ │ └── remove_nth_node_from_end_of_list.py │ ├── 1_two_sum │ │ └── two_sum.py │ ├── 20_valid_parentheses │ │ └── valid_parentheses.py │ ├── 21_merge_two_sorted_lists │ │ └── merge_two_sorted_lists.py │ ├── 22_generate_parentheses │ │ └── generate_parentheses.py │ ├── 232_implement_queue_using_stacks │ │ └── implement_queue_using_stacks.py │ ├── 2_add_two_numbers │ │ └── add_two_numbers.py │ ├── 35_search_insert_position │ │ └── search_insert_position.py │ ├── 361_bomb_enemy │ │ └── bomb_enemy.py │ ├── 3_longest_substring_without_repeating_characters │ │ └── longest_substring_without_repeating_characters.py │ ├── 46_permutations │ │ └── permutations.py │ ├── 4_median_of_two_sorted_arrays │ │ ├── median_of_two_sorted_arrays.py │ │ └── median_of_two_sorted_arrays_recursive.py │ ├── 5_longest_palindromic_substring │ │ └── longest_palindromic_substring.py │ ├── 6_zigzag_conversion │ │ ├── zigzag_conversion.py │ │ └── zigzag_conversion_step.py │ ├── 7_reverse_integer │ │ ├── reverse_integer.py │ │ └── reverse_integer_slice.py │ ├── 8_string_to_integer_atoi │ │ └── string_to_integer_atoi.py │ ├── 9_palindrome_number │ │ ├── palindrome_number.py │ │ └── palindrome_number_math.py │ ├── README.md │ ├── fibonacci-number │ │ ├── dp_top_bottom_up_approach.py │ │ ├── iterative.py │ │ └── recursive.py │ ├── k_way_merge │ │ └── k_way_merge.py │ └── zero_to_hero │ │ └── basic_type_example.py ├── beingStrong │ ├── ADD_TWO_NUMBRES │ │ └── Solution1.java │ ├── Longest_Palindromic_Substring │ │ └── Solution1.java │ ├── Longest_Sub_Without_Repeat │ │ └── Solution1.java │ ├── README.md │ ├── Two_Sum │ │ └── Solution1.java │ ├── reverse_integer │ │ └── Solution1.java │ └── zig_zag_conversion │ │ ├── Solution1.java │ │ └── Solution2.java ├── chengxiaoxu │ └── README.md ├── fengxuanmo │ ├── 15.py │ ├── 1_two_sum │ │ ├── two_sum.py │ │ └── two_sum20210801.py │ ├── 2_add_two_nums │ │ ├── add_two_nums.py │ │ └── add_two_sums20210801.py │ ├── 3_long_str │ │ └── long_str.py │ ├── 4_findMiddle_num │ │ └── findMidlleNum.py │ ├── 7.py │ ├── 9.py │ └── leetcode │ │ └── editor │ │ └── cn │ │ ├── [13]罗马数字转整数.py │ │ ├── [9]回文数.py │ │ ├── [剑指-Offer-09]用两个栈实现队列.py │ │ ├── [剑指-Offer-II-001]整数除法.py │ │ ├── [剑指-Offer-II-081]允许重复选择元素的组合.py │ │ ├── all.json │ │ ├── jianzhi │ │ └── [剑指-Offer-II-001]整数除法.py │ │ └── translation.json ├── ghoslation │ ├── JavaSolution │ │ └── LeetCodeProject │ │ │ └── LeetCodeSolutions │ │ │ └── src │ │ │ └── com │ │ │ └── leetcode │ │ │ ├── ListNode.java │ │ │ ├── Solution0001.java │ │ │ ├── Solution0002.java │ │ │ ├── Solution0003.java │ │ │ ├── Solution0004.java │ │ │ ├── Solution0005.java │ │ │ ├── Solution0006.java │ │ │ └── Solution0007.java │ └── Readme.md ├── gmywq392 │ ├── 10_regular_expression_matching.md │ ├── 1103_distribute_candies_to_people.md │ ├── 11_container_with_most_water.md │ ├── 12_int_to_roman.md │ ├── 1371_findTheLongestSubstring.py │ ├── 13_roman_to_int.md │ ├── 14_LCS.md │ ├── 15_three_sum.md │ ├── 160_intersection_of_two_linked_lists.md │ ├── 16_3sum_closest.md │ ├── 17_letterCombinations.md │ ├── 18_four_sum.md │ ├── 19_remove_Nth_node.md │ ├── 1_two_sum.md │ ├── 206_reverse_linked_list.md │ ├── 20_valid_parenthese.md │ ├── 215_find_kth_largest.md │ ├── 21_merge_two_sorted_list.md │ ├── 22_generate_parenthesis.md │ ├── 234_palindrome_linked_list.md │ ├── 23_merge_k_sorted_lists.md │ ├── 24_swap_nodes.md │ ├── 25_reverse_K_group.md │ ├── 26_remove_duplicates.md │ ├── 27_remove_element.md │ ├── 28_str_str.md │ ├── 29_divide.md │ ├── 2_add_two_nums.md │ ├── 30_find_substring.md │ ├── 334_increasing-triplet-subsequence.md │ ├── 3_longest_substring.md │ ├── 40_combination_sum2.md │ ├── 4_median_of_two_sorted_arrays.md │ ├── 500_longest-increasing-subsequence.md │ ├── 59_queue_max.md │ ├── 5_longest-palindromic-substring.md │ ├── 695_max-area-of-island.md │ ├── 6_zigzag-conversion.md │ ├── 7_reverse-integer.md │ ├── 836_rectangle-overlap.md │ ├── 83_delete_duplicates.md │ ├── 876_middle-of-the-linked-list.md │ ├── 8_string-to-integer-atoi.md │ ├── 912_sort_array.md │ ├── 9_palindrome-number.md │ ├── Readme.md │ ├── Solution.py │ ├── [1111]有效括号的嵌套深度.py │ ├── compress-string-lcci.md │ ├── iv40_Least_Numbers.md │ └── iv62_last_remaining.md ├── gracekoo │ ├── 100_same-tree.py │ ├── 10_regular-expression-matchin.py │ ├── 11_container-with-most-water.py │ ├── 12_integer-to-roman.py │ ├── 131_palindrome-partitioning.py │ ├── 13_roman-to-integer.py │ ├── 146_lru-cache.py │ ├── 14_longest-common-prefix.py │ ├── 153_find-minimum-in-rotated-sorted-array.py │ ├── 15_3sum.py │ ├── 162_find-peak-element.py │ ├── 164_maximum-gap.py │ ├── 16_3sum-closest.py │ ├── 179_largest-number.py │ ├── 17_letter-combinations-of-a-phone-number.py │ ├── 18_4Sum.py │ ├── 19_remove-nth-node-from-end-of-list.py │ ├── 1_two_sum.py │ ├── 206_reverse-linked-list.py │ ├── 20_valid-parentheses.py │ ├── 215_kth-largest-element-in-an-array.py │ ├── 217_contains-duplicate.py │ ├── 219_contains-duplicate-ii.py │ ├── 21_merge-two-sorted-lists.py │ ├── 220_contains-duplicate-iii.py │ ├── 226_invert-binary-tree.py │ ├── 22_generate-parentheses.py │ ├── 232_implement-queue-using-stacks.py │ ├── 23_merge-k-sorted-lists.py │ ├── 241_different-ways-to-add-parentheses.py │ ├── 24_swap-nodes-in-pairs.py │ ├── 25_reverse-nodes-in-k-group.py │ ├── 26_remove-duplicates-from-sorted-array.py │ ├── 27_remove-element.py │ ├── 28_implement-strstr.py │ ├── 29_divide-two-integers.py │ ├── 2_add_two_numbers.py │ ├── 30_substring-with-concatenation-of-all-words.py │ ├── 316_remove-duplicate-letters.py │ ├── 31_next-permutation.py │ ├── 32_longest-valid-parentheses.py │ ├── 33_search-in-rotated-sorted-array.py │ ├── 34_find-first-and-last-position-of-element-in-sorted-array.py │ ├── 35_search-insert-position.py │ ├── 36_valid-sudoku.py │ ├── 37_sudoku-solver.py │ ├── 38_count-and-say.py │ ├── 39_combination-sum.py │ ├── 3_length_of_longest_substring.py │ ├── 401_binary-watch.py │ ├── 405_convert-a-number-to-hexadecimal.py │ ├── 406_queue-reconstruction-by-height.py │ ├── 40_combination-sum-ii.py │ ├── 41_first-missing-positive.py │ ├── 42_trapping-rain-water.py │ ├── 43_multiply-strings.py │ ├── 44_wildcard-matching.py │ ├── 45_jump-game-ii.py │ ├── 46_permutations.py │ ├── 47_permutations-ii.py │ ├── 48_rotate-image.py │ ├── 49_group-anagrams.py │ ├── 4_find_median_sorted_array.py │ ├── 509_fibonacci-number.py │ ├── 50_powx-n.py │ ├── 51_n-queens.py │ ├── 52_n-queens-ii.py │ ├── 53_maximum-subarray.py │ ├── 548_split-array-with-equal-sum.py │ ├── 54_spiral-matrix.py │ ├── 55_jump-game.py │ ├── 56_merge-intervals.py │ ├── 57_insert-interval.py │ ├── 58_length-of-last-word.py │ ├── 59_spiral-matrix-ii.py │ ├── 5_longest_palindrome.py │ ├── 60_permutation-sequence.py │ ├── 61_rotate-list.py │ ├── 62_unique-paths.py │ ├── 63_unique-paths-ii.py │ ├── 64_minimum-path-sum.py │ ├── 65_valid-number.py │ ├── 66_plus-one.py │ ├── 67_add-binary.py │ ├── 687_longest-univalue-path.py │ ├── 68_text-justification.py │ ├── 69_sqrtx.py │ ├── 6_convert.py │ ├── 70_climbing-stairs.py │ ├── 71_simplify-path.py │ ├── 72_edit-distance.py │ ├── 73_set-matrix-zeroes.py │ ├── 74_search-a-2d-matrix.py │ ├── 75_sort-colors.py │ ├── 76_minimum-window-substring.py │ ├── 77_combinations.py │ ├── 784_letter-case-permutation.py │ ├── 78_subsets.py │ ├── 79_word-search.py │ ├── 7_reverse-integer.py │ ├── 80_remove-duplicates-from-sorted-array-ii.py │ ├── 81_search-in-rotated-sorted-array-ii.py │ ├── 82_remove-duplicates-from-sorted-list-ii.py │ ├── 83_remove-duplicates-from-sorted-list.py │ ├── 84_largest-rectangle-in-histogram.py │ ├── 85_maximal-rectangle.py │ ├── 86_partition-list.py │ ├── 87_scramble-string.py │ ├── 88_merge-sorted-array.py │ ├── 89_gray-code.py │ ├── 8_string_to_integer_atoi.py │ ├── 90_subsets-ii.py │ ├── 912_sort-an-array.py │ ├── 91_decode-ways.py │ ├── 92_reverse-linked-list-ii.py │ ├── 93_restore-ip-addresses.py │ ├── 94_binary-tree-inorder-traversal.py │ ├── 95_unique-binary-search-trees-ii.py │ ├── 96_unique-binary-search-trees.py │ ├── 97_interleaving-string.py │ ├── 98_validate-binary-search-tree.py │ ├── 99_recover-binary-search-tree.py │ ├── 9_palindrome_number.py │ ├── README.md │ ├── interview_1.py │ ├── interview_10.py │ ├── interview_11.py │ ├── interview_12.py │ ├── interview_13.py │ ├── interview_14.py │ ├── interview_15.py │ ├── interview_16.py │ ├── interview_17.py │ ├── interview_18.py │ ├── interview_19.py │ ├── interview_2.py │ ├── interview_20.py │ ├── interview_21.py │ ├── interview_22.py │ ├── interview_22_ii.py │ ├── interview_22_iii.py │ ├── interview_23.py │ ├── interview_24.py │ ├── interview_25.py │ ├── interview_26.py │ ├── interview_27.py │ ├── interview_28.py │ ├── interview_29.py │ ├── interview_3.py │ ├── interview_30.py │ ├── interview_31.py │ ├── interview_32.py │ ├── interview_33.py │ ├── interview_34.py │ ├── interview_35.py │ ├── interview_36.py │ ├── interview_37.py │ ├── interview_38.py │ ├── interview_39.py │ ├── interview_4.py │ ├── interview_40.py │ ├── interview_41.py │ ├── interview_42.py │ ├── interview_43.py │ ├── interview_44.py │ ├── interview_45.py │ ├── interview_46.py │ ├── interview_47.py │ ├── interview_48.py │ ├── interview_49.py │ ├── interview_5.py │ ├── interview_50.py │ ├── interview_51.py │ ├── interview_52.py │ ├── interview_53.py │ ├── interview_54.py │ ├── interview_55.py │ ├── interview_56.py │ ├── interview_57.py │ ├── interview_58.py │ ├── interview_59.py │ ├── interview_6.py │ ├── interview_60.py │ ├── interview_61.py │ ├── interview_62.py │ ├── interview_63.py │ ├── interview_64.py │ ├── interview_65.py │ ├── interview_66.py │ ├── interview_67.py │ ├── interview_7.py │ ├── interview_8.py │ ├── interview_9.py │ └── test.py ├── hubert932 │ └── README.md ├── jxdeng3264 │ ├── 000-100 │ │ ├── 001.Two-Sum │ │ │ ├── Solution.cpp │ │ │ └── Solution.py │ │ ├── 002.Add-Two-Numbers │ │ │ ├── Solution.cpp │ │ │ └── Solution.py │ │ ├── 003.Longest-Substring-Without-Repeating-Characters │ │ │ └── Solution.c │ │ ├── 004.Median-of-Two-Sorted-Arrays │ │ │ └── tango.cpp │ │ ├── 005.Longest-Palindromic-Substring │ │ │ └── tango.cpp │ │ ├── 006.ZigZag-Conversion │ │ │ └── tango.cpp │ │ ├── 015.3-Sum │ │ │ └── tango.c │ │ ├── 7.Reverse-Integer │ │ │ └── tango.cpp │ │ └── 8.String-to-Integer-atoi │ │ │ └── tango.cpp │ ├── 1001-1100 │ │ ├── 1005.Maximize-Sum-Of-Array-After-K-Negations │ │ │ └── tango.cpp │ │ ├── 1006.Clumsy-Factorial │ │ │ └── tango.cpp │ │ ├── 1007.Minimum-Domino-Rotations-For-Equal-Row │ │ │ └── tango.cpp │ │ ├── 1008.Construct-Binary-Search-Tree-from-Preorder-Traversal │ │ │ └── tango.cpp │ │ ├── 1012.Complement-of-Base-10-Integer │ │ │ └── tango.cpp │ │ ├── 1013.Pairs-of-Songs-With-Total-Durations-Divisible-by-60 │ │ │ └── tango.cpp │ │ ├── 1014.Capacity-To-Ship-Packages-Within-D-Days │ │ │ └── tango.cpp │ │ ├── 1020.Partition-Array-Into-Three-Parts-With-Equal-Sum │ │ │ └── tango.cpp │ │ ├── 1021.Best-Sightseeing-Pair │ │ │ └── tango.cpp │ │ ├── 1022.Smallest-Integer-Divisible-by-K │ │ │ └── tango.cpp │ │ ├── 1023.Binary-String-With-Substrings-Representing-1-To-N │ │ │ └── tango.cpp │ │ └── core │ ├── 101-200 │ │ ├── 102.Binary-Tree-Level-Order-Traversal │ │ │ └── Solution.cpp │ │ ├── 104.Maximum-Depth-of-Binary-Tree │ │ │ └── Solution.cpp │ │ └── 112.Path-Sum │ │ │ └── tango.cpp │ ├── 201-300 │ │ ├── 238.Product-of-Array-Except-Self │ │ │ └── tango.cpp │ │ └── 275.H-Index-II │ │ │ └── tango.cpp │ ├── 301-400 │ │ ├── 303.Range-Sum-Query-Immutable │ │ │ └── Solution.cpp │ │ └── 304.Range-Sum-Query-2D-Immutable │ │ │ └── Solution.cpp │ ├── 401-500 │ │ ├── 401.Binary-Watch │ │ │ └── Solution.cpp │ │ ├── 442.Find-All-Duplicates-in-an-Array │ │ │ └── Solution.cpp │ │ └── 445.Add-Two-Numbers-II │ │ │ └── Solution.cpp │ ├── 501-600 │ │ ├── 501.Find-Mode-in-Binary-Search-Tree │ │ │ └── Solution.cpp │ │ ├── 507.Base-7 │ │ │ └── Solution.cpp │ │ └── 557.Reverse-Words-in-a-String-III │ │ │ └── tango.cpp │ ├── 601-700 │ │ ├── 637.Average-of-Levels-in-Binary-Tree │ │ │ └── Solution.cpp │ │ ├── 643.Maximum-Average-Subarray-I │ │ │ └── Solution.cpp │ │ └── 657.Robot-Return-to-Origin │ │ │ └── Solution.cpp │ ├── 701-800 │ │ ├── 706.Design-HashMap │ │ │ └── Solution.cpp │ │ ├── 707.Design-Linked-List │ │ │ └── Solution.cpp │ │ └── 709.To-Lower-Case │ │ │ └── Solution.cpp │ ├── 901-1000 │ │ ├── 929.Unique-Email-Addresses │ │ │ └── Solution.cpp │ │ ├── 966.Vowel-Spellchecker │ │ │ └── tango.cpp │ │ └── 977.Squares-of-a-Sorted-Array │ │ │ └── tango.cpp │ ├── LinkList │ │ └── list_reverse.cpp │ └── README.md ├── liuliangju │ ├── LeetCode │ │ └── leetcode │ │ │ └── editor │ │ │ └── cn │ │ │ ├── 1_two_sum.java │ │ │ ├── 2_add_two_numbers.java │ │ │ ├── all.json │ │ │ └── translation.json │ ├── README.md │ └── liuliangju.iml ├── liuxiaohui │ └── 001-towsum │ │ └── TowSum.java ├── liyongquan │ ├── .gitignore │ ├── 1178.puzzle.md │ ├── 304.sum_region.md │ ├── 354.MaxEnvelopes.md │ ├── 395.LongestSubstring.md │ ├── 581.findUnsortedSubarray.md │ ├── 867.transpose.md │ ├── 896.monotonic-array.md │ └── README.md ├── luludada │ └── README.md ├── lxycg │ ├── 10.RegularExpressionMatching.md │ ├── 11.ContainerWithMostWater.md │ ├── 12.IntegertoRoman.md │ ├── 13.RomantoInteger.md │ ├── 14.LongestCommonPrefix.md │ ├── 15.3Sum.md │ ├── 16.3SumCloset.md │ ├── 17.LetterCombinationsOfaPhoneNumber.md │ ├── 18.4Sum.md │ ├── 19.RemoveNthNodeFromEndOfList.md │ ├── 20.ValidParentheses.md │ ├── 21.MergeTwoSortedLists.md │ ├── 22.GenerateParentheses.md │ ├── 23.MergeKSortedLists.md │ ├── 24.SwapNodesInPairs.md │ ├── 25.ReverseNodesink-Group.md │ ├── 26.RemoveDuplicatesFromSortedArray.md │ ├── 27.RemoveElement.md │ ├── 28.ImplementStrStr.md │ ├── 29.DivideTwoIntegers.md │ ├── 4.MedianofTwoSortedArrays.md │ ├── 5.LongestPalindromicSubstring.md │ ├── 6.ZigZagConversion.md │ ├── 7.ReverseInteger.md │ ├── 8.StringtoInteger.md │ ├── 9.PalindromeNumber.md │ ├── AddTwoNumbers.md │ ├── LongestSubstring.md │ ├── Readme.md │ └── towSumSolution.md ├── madeai │ ├── ArrayNesting.java │ ├── LinkedListCycle.java │ └── README.md ├── martin │ └── README.md ├── mggger │ ├── README.md │ └── leetcode │ │ ├── 10_regular_expression_matching.md │ │ ├── 11_container_with_most_water.md │ │ ├── 12_integer_to_roman.md │ │ ├── 13_roman_to_integer.md │ │ ├── 1_two_sum.md │ │ ├── 2_add_two_nums.md │ │ ├── 3_longest_substring.md │ │ ├── 4_median_of_two_sorted_arrays.md │ │ ├── 5_longest_palindromic_substring.md │ │ ├── 6_ZigZag_Conversion.md │ │ ├── 7_reverse_integer.md │ │ ├── 8_String_to_Integer.md │ │ ├── 9_palindrome_number.md │ │ └── images │ │ └── 2.png ├── molinchn │ ├── 100.相同的树.cpp │ ├── 207.课程表.cpp │ ├── 336.回文对.cpp │ ├── 337.打家劫舍III.cpp │ ├── 415.字符串相加.cpp │ └── README.md ├── mrright2019 │ ├── 11.container-with-most-water │ │ └── Soultion.py │ ├── 14.longest-common-prefix │ │ └── Solution.py │ ├── 15.3sum │ │ └── Solution.py │ ├── 16.3sum-closest │ │ └── Solution.py │ ├── 1_two_num_sum │ │ └── Soultion.cpp │ ├── 2_add-two-numbers │ │ └── Solution.cpp │ ├── 4-median-of-two-sorted-arrays │ │ └── Solution.py │ ├── 5-longest-palindromic-substring │ │ └── Soultion.py │ ├── 7-reverse-integer │ │ └── Soultion.py │ └── README.md ├── oh-mybug │ ├── 001-050 │ │ ├── ListNode.java │ │ ├── Solution_1.java │ │ ├── Solution_11.java │ │ ├── Solution_12.java │ │ ├── Solution_13.java │ │ ├── Solution_14.java │ │ ├── Solution_15.java │ │ ├── Solution_16.java │ │ ├── Solution_17.java │ │ ├── Solution_18.java │ │ ├── Solution_19.java │ │ ├── Solution_2.java │ │ ├── Solution_20.java │ │ ├── Solution_21.java │ │ ├── Solution_22.java │ │ ├── Solution_23.java │ │ ├── Solution_24.java │ │ ├── Solution_25.java │ │ ├── Solution_26.java │ │ ├── Solution_27.java │ │ ├── Solution_28.java │ │ ├── Solution_29.java │ │ ├── Solution_3.java │ │ ├── Solution_31.java │ │ ├── Solution_33.java │ │ ├── Solution_34.java │ │ ├── Solution_35.java │ │ ├── Solution_36.java │ │ ├── Solution_38.java │ │ ├── Solution_39.java │ │ ├── Solution_40.java │ │ ├── Solution_43.java │ │ ├── Solution_46.java │ │ ├── Solution_47.java │ │ ├── Solution_48.java │ │ ├── Solution_49.java │ │ ├── Solution_5.java │ │ ├── Solution_50.java │ │ ├── Solution_6.java │ │ ├── Solution_7.java │ │ ├── Solution_8.java │ │ ├── Solution_9.java │ │ └── Tree.java │ ├── 051-100 │ │ ├── Solution_100.java │ │ ├── Solution_53.java │ │ ├── Solution_54.java │ │ ├── Solution_55.java │ │ ├── Solution_56.java │ │ ├── Solution_58.java │ │ ├── Solution_59.java │ │ ├── Solution_60.java │ │ ├── Solution_61.java │ │ ├── Solution_62.java │ │ ├── Solution_63.java │ │ ├── Solution_64.java │ │ ├── Solution_66.java │ │ ├── Solution_67.java │ │ ├── Solution_69.java │ │ ├── Solution_70.java │ │ ├── Solution_71.java │ │ ├── Solution_73.java │ │ ├── Solution_74.java │ │ ├── Solution_75.java │ │ ├── Solution_77.java │ │ ├── Solution_78.java │ │ ├── Solution_79.java │ │ ├── Solution_80.java │ │ ├── Solution_81.java │ │ ├── Solution_82.java │ │ ├── Solution_83.java │ │ ├── Solution_86.java │ │ ├── Solution_88.java │ │ ├── Solution_89.java │ │ ├── Solution_90.java │ │ ├── Solution_91.java │ │ ├── Solution_92.java │ │ ├── Solution_93.java │ │ ├── Solution_94.java │ │ ├── Solution_95.java │ │ ├── Solution_96.java │ │ ├── Solution_98.java │ │ └── Solution_99.java │ ├── 101-150 │ │ ├── Solution_101.java │ │ ├── Solution_102.java │ │ ├── Solution_103.java │ │ ├── Solution_104.java │ │ ├── Solution_105.java │ │ ├── Solution_106.java │ │ ├── Solution_107.java │ │ ├── Solution_108.java │ │ ├── Solution_109.java │ │ ├── Solution_110.java │ │ ├── Solution_111.java │ │ ├── Solution_112.java │ │ ├── Solution_113.java │ │ ├── Solution_114.java │ │ ├── Solution_116.java │ │ ├── Solution_117.java │ │ ├── Solution_118.java │ │ └── Solution_143.java │ ├── 151-200 │ │ └── Solution_160.java │ ├── 201-1367 │ │ ├── Solution_1160.java │ │ ├── Solution_1240.java │ │ ├── Solution_1367.java │ │ ├── Solution_206.java │ │ ├── Solution_234.java │ │ ├── Solution_235.java │ │ ├── Solution_295.java │ │ ├── Solution_350.java │ │ ├── Solution_375.java │ │ ├── Solution_506.java │ │ ├── Solution_707.java │ │ ├── Solution_849.java │ │ ├── Solution_906.java │ │ └── Solution_938.java │ ├── README.md │ ├── images │ │ ├── DP │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 17.png │ │ │ ├── 18.png │ │ │ ├── 19.png │ │ │ ├── 20.png │ │ │ ├── 22.png │ │ │ ├── 23.png │ │ │ ├── 24.png │ │ │ ├── 25.png │ │ │ ├── 26.png │ │ │ ├── 27.png │ │ │ ├── 28.png │ │ │ ├── 29.png │ │ │ ├── 3.png │ │ │ ├── 30.png │ │ │ ├── 31.png │ │ │ ├── 32.png │ │ │ ├── 33.png │ │ │ ├── 34.png │ │ │ ├── 35.png │ │ │ ├── 36.png │ │ │ ├── 37.png │ │ │ ├── 38.png │ │ │ ├── 39.png │ │ │ ├── 4.png │ │ │ ├── 40.png │ │ │ ├── 41.png │ │ │ ├── 42.png │ │ │ ├── 43.png │ │ │ ├── 44.png │ │ │ ├── 45.png │ │ │ ├── 46.png │ │ │ ├── 47.png │ │ │ ├── 48.png │ │ │ ├── 49.png │ │ │ ├── 50.png │ │ │ ├── 51.png │ │ │ ├── 52.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ └── 9.png │ │ ├── KMP │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 17.png │ │ │ ├── 18.png │ │ │ ├── 19.png │ │ │ ├── 2.png │ │ │ ├── 20.png │ │ │ ├── 21.png │ │ │ ├── 22.png │ │ │ ├── 23.png │ │ │ ├── 24.png │ │ │ ├── 25.png │ │ │ ├── 26.png │ │ │ ├── 27.png │ │ │ ├── 28.png │ │ │ ├── 29.png │ │ │ ├── 30.png │ │ │ ├── 31.png │ │ │ ├── 32.png │ │ │ ├── 33.png │ │ │ ├── 35.png │ │ │ ├── 36.png │ │ │ ├── 37.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ └── 9.png │ │ └── Morris │ │ │ ├── 1.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ ├── code.png │ │ │ └── code1.png │ └── note │ │ ├── DP.md │ │ ├── KMP.md │ │ └── Morris.md ├── purebaba │ ├── 1146_snapshot_array │ │ └── SnapshotArray.js │ ├── 1_two_sum │ │ └── two_sum.js │ ├── 2_add_two_numbers │ │ └── addTwoNumbers.js │ ├── 3_longest_substring_without_repeating_characters │ │ └── lengthOfLongestSubstring.js │ ├── 51_n-queens │ │ └── solveNQueens.js │ └── README.md ├── shengyaqingfeng │ ├── .gitignore │ ├── CalcNextSat.py │ ├── README.md │ └── leetcode │ │ └── editor │ │ └── cn │ │ ├── [10]RegularExpressionMatching.cpp │ │ ├── [11]ContainerWithMostWater.cpp │ │ ├── [12]IntegerToRoman.cpp │ │ ├── [13]RomanToInteger.cpp │ │ ├── [14]LongestCommonPrefix.cpp │ │ ├── [15]ThreeSum.cpp │ │ ├── [16]ThreeSumClosest.cpp │ │ ├── [17]LetterCombinationsOfAPhoneNumber.cpp │ │ ├── [1]TwoSum.cpp │ │ ├── [2]AddTwoNumbers.cpp │ │ ├── [3]LongestSubstringWithoutRepeatingCharacters.cpp │ │ ├── [4]MedianOfTwoSortedArrays.cpp │ │ ├── [5]LongestPalindromicSubstring.cpp │ │ ├── [6]ZigZagConversion.cpp │ │ ├── [7]ReverseInteger.cpp │ │ ├── [8]StringToInteger(atoi).cpp │ │ └── [9]PalindromeNumber.cpp ├── shenjinxin │ └── README.md ├── stardrewer │ ├── 1109_corporate-flight-bookings │ │ └── solve.go │ ├── 1137_n-th-tribonacci-number │ │ └── solve.go │ ├── 1143_longest-common-subsequence │ │ └── solve.go │ ├── 1166_design-file-system │ │ └── solve.go │ ├── 1176_diet-plan-performance │ │ └── solve.py │ ├── 1189_maximum-number-of-balloons │ │ └── solve.go │ ├── 1190_reverse-substrings-between-each-pair-of-parentheses │ │ └── solve.go │ ├── 11_container-with-most-water │ │ └── solve.go │ ├── 1217_play-with-chips │ │ └── solve.go │ ├── 1221_split-a-string-in-balanced-strings │ │ └── solve.go │ ├── 12_integer-to-roman │ │ └── solve.go │ ├── 138_copy-list-with-random-pointer │ │ └── solve.py │ ├── 13_roman-to-integer │ │ └── solve.go │ ├── 1480_running-sum-of-1d-array │ │ └── solve.go │ ├── 14_longest-common-prefix │ │ └── solve.go │ ├── 155_min-stack │ │ └── solve.go │ ├── 1570_dot-product-of-two-sparse-vectors │ │ └── solve.go │ ├── 1588_sum-of-all-odd-length-subarrays │ │ └── solve.go │ ├── 15_3sum │ │ └── solve.go │ ├── 162_find-peak-element │ │ └── solve.go │ ├── 165_compare-version-numbers │ │ └── solve.go │ ├── 167_two-sum-ii-input-array-is-sorted │ │ └── solve.go │ ├── 16_3sum-closest │ │ └── solve.go │ ├── 17_letter-combinations-of-a-phone-number │ │ └── solve.go │ ├── 1894_find-the-student-that-will-replace-the-chalk │ │ └── solve.go │ ├── 18_4sum │ │ └── solve.go │ ├── 19_remove-nth-node-from-end-of-list │ │ └── solve.go │ ├── 1_two-sum │ │ └── solve.go │ ├── 206_reverse-linked-list │ │ └── solve.go │ ├── 20_valid-parentheses │ │ └── solve.go │ ├── 21_merge-two-sorted-lists │ │ └── solve.go │ ├── 223_rectangle-area │ │ ├── solve.cpp │ │ └── solve.go │ ├── 23_merge-k-sorted-lists │ │ └── solve.go │ ├── 240_search-a-2d-matrix-ii │ │ ├── solve.cpp │ │ └── solve.go │ ├── 24_swap-nodes-in-pairs │ │ └── solve.go │ ├── 26_remove-duplicates-from-sorted-array │ │ └── solve.go │ ├── 27_remove-element │ │ └── solve.go │ ├── 28_implement-strstr │ │ └── solve.go │ ├── 292_nim-game │ │ └── solve.go │ ├── 295_find-median-from-data-stream │ │ └── solve.go │ ├── 29_divide-two-integers │ │ └── solve.go │ ├── 2_add-two-numbers │ │ └── solve.go │ ├── 30_substring-with-concatenation-of-all-words │ │ └── solve.py │ ├── 31_next-permutation │ │ └── solve.go │ ├── 326_power_of_three │ │ └── solve.go │ ├── 33_search-in-rotated-sorted-array │ │ └── solve.go │ ├── 345_reverse-vowels-of-a-string │ │ └── solve.go │ ├── 35_search-insert-position │ │ └── solve.go │ ├── 36_valid-sudoku │ │ └── solve.go │ ├── 393_utf-8-validation │ │ └── solve.py │ ├── 3_longest-substring-without-repeating-characters │ │ ├── solve.go │ │ └── solve.py │ ├── 430_flatten-a-multilevel-doubly-linked-list │ │ └── solve.go │ ├── 447_number-of-boomerangs │ │ └── solve.go │ ├── 470_implement-rand10-using-rand7 │ │ └── solve.go │ ├── 4_median-of-two-sorted-arrays │ │ └── solve.go │ ├── 509_fibonacci-number │ │ └── solve.go │ ├── 50_powx-n │ │ ├── solve.go │ │ └── solve_test.go │ ├── 517_super-washing-machines │ │ └── solve.go │ ├── 524_longest-word-in-dictionary-through-deleting │ │ └── solve.go │ ├── 53_maximum-subarray │ │ ├── solve.go │ │ └── solve_test.go │ ├── 583_delete-operation-for-two-strings │ │ └── solve.go │ ├── 58_length-of-last-word │ │ ├── solve.go │ │ └── solve_test.go │ ├── 5_longest-palindromic-substring │ │ └── solve.go │ ├── 600_non-negative-integers-without-consecutive-ones │ │ └── solve.go │ ├── 639_decode-ways-ii │ │ └── solve.go │ ├── 64_minimum-path-sum │ │ └── solve.go │ ├── 650_2-keys-keyboard │ │ └── solve.go │ ├── 66_plus-one │ │ ├── solve.go │ │ └── solve_test.go │ ├── 678_valid-parenthesis-string │ │ └── solve.go │ ├── 67_add-binary │ │ ├── solve.go │ │ └── solve_test.go │ ├── 68_text-justification │ │ └── solve.go │ ├── 69_sqrtx │ │ └── solve.go │ ├── 6_zigzag-conversion │ │ └── solve.go │ ├── 704_binary-search │ │ └── solve.go │ ├── 70_climbing-stairs │ │ └── solve.go │ ├── 725_split-linked-list-in-parts │ │ └── solve.go │ ├── 746_min-cost-climbing-stairs │ │ └── solve.go │ ├── 797_all-paths-from-source-to-target │ │ └── solve.go │ ├── 7_reverse-integer │ │ └── solve.go │ ├── 80_remove-duplicates-from-sorted-array-ii │ │ ├── solve.go │ │ └── solve_test.go │ ├── 82_remove-duplicates-from-sorted-list-ii │ │ ├── solve.go │ │ └── solve_test.go │ ├── 83_remove-duplicates-from-sorted-list │ │ ├── solve.go │ │ └── solve_test.go │ ├── 881_boats-to-save-people │ │ └── solve.go │ ├── 88_merge-sorted-array │ │ ├── solve.go │ │ └── solve_test.go │ ├── 8_string-to-integer-atoi │ │ └── solve.go │ ├── 91_decode-ways │ │ └── solve.go │ ├── 9_palindrome-number │ │ └── solve.go │ ├── LCP39 │ │ └── solve.go │ ├── LCP40 │ │ └── solve.go │ ├── README.md │ ├── interview17.14_smallest-k-lcci │ │ └── solve.go │ ├── offer03 │ │ └── solve.go │ ├── offer04 │ │ └── solve.go │ ├── offer05 │ │ └── solve.go │ ├── offer06 │ │ └── solve.go │ ├── offer09 │ │ └── solve.go │ ├── offer10 │ │ └── solve.go │ ├── offer11 │ │ ├── solve.cpp │ │ └── solve.go │ ├── offer22 │ │ └── solve.go │ ├── offer24 │ │ └── solve.go │ ├── offer30 │ │ └── solve.go │ ├── offer35 │ │ └── solve.go │ ├── offer50 │ │ ├── solve.cpp │ │ └── solve.go │ ├── offer53-II │ │ └── solve.go │ ├── offer53 │ │ └── solve.go │ └── offer58-II │ │ └── solve.go ├── thank037 │ └── README.md ├── xiaohong2019 │ ├── README.md │ └── leetcode │ │ ├── 1_two_sum.py │ │ ├── 2_add_two_numbers.py │ │ ├── 3_longest_substring_without_repeating_characters.py │ │ └── 4_median_of_two_sorted_arrays.py ├── yore │ ├── base │ │ ├── ListNode.java │ │ ├── Node.java │ │ ├── Template.java │ │ └── TreeNode.java │ ├── easy │ │ ├── Interview0206.java │ │ ├── Interview0207.java │ │ ├── Interview0806.java │ │ ├── Interview1605.java │ │ ├── Number1.java │ │ ├── Number100.java │ │ ├── Number101.java │ │ ├── Number1021.java │ │ ├── Number1022.java │ │ ├── Number104.java │ │ ├── Number105.java │ │ ├── Number108.java │ │ ├── Number1089.java │ │ ├── Number1108.java │ │ ├── Number111.java │ │ ├── Number112.java │ │ ├── Number1137.java │ │ ├── Number117.java │ │ ├── Number118.java │ │ ├── Number119.java │ │ ├── Number1200.java │ │ ├── Number121.java │ │ ├── Number1217.java │ │ ├── Number122.java │ │ ├── Number125.java │ │ ├── Number13.java │ │ ├── Number1332.java │ │ ├── Number141.java │ │ ├── Number1486.java │ │ ├── Number155.java │ │ ├── Number160.java │ │ ├── Number167.java │ │ ├── Number1672.java │ │ ├── Number1688.java │ │ ├── Number1716.java │ │ ├── Number172.java │ │ ├── Number1720.java │ │ ├── Number1893.java │ │ ├── Number191.java │ │ ├── Number20.java │ │ ├── Number203.java │ │ ├── Number204.java │ │ ├── Number206.java │ │ ├── Number21.java │ │ ├── Number217.java │ │ ├── Number219.java │ │ ├── Number226.java │ │ ├── Number231.java │ │ ├── Number232.java │ │ ├── Number234.java │ │ ├── Number242.java │ │ ├── Number257.java │ │ ├── Number26.java │ │ ├── Number268.java │ │ ├── Number27.java │ │ ├── Number28.java │ │ ├── Number283.java │ │ ├── Number338.java │ │ ├── Number342.java │ │ ├── Number344.java │ │ ├── Number349.java │ │ ├── Number35.java │ │ ├── Number392.java │ │ ├── Number401.java │ │ ├── Number404.java │ │ ├── Number415.java │ │ ├── Number448.java │ │ ├── Number461.java │ │ ├── Number495.java │ │ ├── Number496.java │ │ ├── Number504.java │ │ ├── Number509.java │ │ ├── Number520.java │ │ ├── Number53.java │ │ ├── Number543.java │ │ ├── Number563.java │ │ ├── Number572.java │ │ ├── Number58.java │ │ ├── Number589.java │ │ ├── Number590.java │ │ ├── Number598.java │ │ ├── Number633.java │ │ ├── Number645.java │ │ ├── Number657.java │ │ ├── Number661.java │ │ ├── Number67.java │ │ ├── Number680.java │ │ ├── Number682.java │ │ ├── Number69.java │ │ ├── Number693.java │ │ ├── Number7.java │ │ ├── Number70.java │ │ ├── Number700.java │ │ ├── Number704.java │ │ ├── Number706.java │ │ ├── Number709.java │ │ ├── Number717.java │ │ ├── Number724.java │ │ ├── Number728.java │ │ ├── Number746.java │ │ ├── Number747.java │ │ ├── Number771.java │ │ ├── Number804.java │ │ ├── Number806.java │ │ ├── Number819.java │ │ ├── Number821.java │ │ ├── Number824.java │ │ ├── Number83.java │ │ ├── Number832.java │ │ ├── Number852.java │ │ ├── Number859.java │ │ ├── Number868.java │ │ ├── Number872.java │ │ ├── Number876.java │ │ ├── Number88.java │ │ ├── Number883.java │ │ ├── Number896.java │ │ ├── Number9.java │ │ ├── Number905.java │ │ ├── Number908.java │ │ ├── Number917.java │ │ ├── Number929.java │ │ ├── Number933.java │ │ ├── Number937.java │ │ ├── Number942.java │ │ ├── Number944.java │ │ ├── Number961.java │ │ ├── Number965.java │ │ ├── Number977.java │ │ └── Number993.java │ ├── hard │ │ ├── Number10.java │ │ ├── Number1220.java │ │ ├── Number123.java │ │ ├── Number124.java │ │ ├── Number1269.java │ │ ├── Number1345.java │ │ ├── Number1406.java │ │ ├── Number1501.java │ │ ├── Number1510.java │ │ ├── Number154.java │ │ ├── Number1606.java │ │ ├── Number1707.java │ │ ├── Number1723.java │ │ ├── Number1994.java │ │ ├── Number2111.java │ │ ├── Number23.java │ │ ├── Number239.java │ │ ├── Number25.java │ │ ├── Number295.java │ │ ├── Number297.java │ │ ├── Number30.java │ │ ├── Number354.java │ │ ├── Number4.java │ │ ├── Number403.java │ │ ├── Number41.java │ │ ├── Number42.java │ │ ├── Number44.java │ │ ├── Number51.java │ │ ├── Number52.java │ │ ├── Number587.java │ │ ├── Number675.java │ │ ├── Number699.java │ │ ├── Number710.java │ │ ├── Number72.java │ │ ├── Number76.java │ │ ├── Number810.java │ │ ├── Number84.java │ │ ├── Number85.java │ │ └── Number871.java │ ├── medium │ │ ├── Interview0105.java │ │ ├── Interview0205.java │ │ ├── Interview0305.java │ │ ├── Interview1711.java │ │ ├── Number1014.java │ │ ├── Number102.java │ │ ├── Number103.java │ │ ├── Number1035.java │ │ ├── Number1038.java │ │ ├── Number105.java │ │ ├── Number106.java │ │ ├── Number107.java │ │ ├── Number1081.java │ │ ├── Number113.java │ │ ├── Number114.java │ │ ├── Number1140.java │ │ ├── Number1143.java │ │ ├── Number116.java │ │ ├── Number117.java │ │ ├── Number1190.java │ │ ├── Number12.java │ │ ├── Number120.java │ │ ├── Number122.java │ │ ├── Number129.java │ │ ├── Number1305.java │ │ ├── Number1310.java │ │ ├── Number1314.java │ │ ├── Number137.java │ │ ├── Number138.java │ │ ├── Number1382.java │ │ ├── Number139.java │ │ ├── Number142.java │ │ ├── Number143.java │ │ ├── Number144.java │ │ ├── Number1442.java │ │ ├── Number145.java │ │ ├── Number146.java │ │ ├── Number1462.java │ │ ├── Number146_2.java │ │ ├── Number148.java │ │ ├── Number1482.java │ │ ├── Number15.java │ │ ├── Number152.java │ │ ├── Number153.java │ │ ├── Number1567.java │ │ ├── Number16.java │ │ ├── Number1669.java │ │ ├── Number1706.java │ │ ├── Number1721.java │ │ ├── Number1738.java │ │ ├── Number1765.java │ │ ├── Number1774.java │ │ ├── Number18.java │ │ ├── Number1823.java │ │ ├── Number187.java │ │ ├── Number1877.java │ │ ├── Number19.java │ │ ├── Number198.java │ │ ├── Number199.java │ │ ├── Number2.java │ │ ├── Number200.java │ │ ├── Number2024.java │ │ ├── Number2029.java │ │ ├── Number208.java │ │ ├── Number213.java │ │ ├── Number215.java │ │ ├── Number221.java │ │ ├── Number222.java │ │ ├── Number230.java │ │ ├── Number236.java │ │ ├── Number260.java │ │ ├── Number264.java │ │ ├── Number279.java │ │ ├── Number285.java │ │ ├── Number29.java │ │ ├── Number299.java │ │ ├── Number3.java │ │ ├── Number300.java │ │ ├── Number304.java │ │ ├── Number309.java │ │ ├── Number318.java │ │ ├── Number319.java │ │ ├── Number322.java │ │ ├── Number324.java │ │ ├── Number328.java │ │ ├── Number33.java │ │ ├── Number34.java │ │ ├── Number343.java │ │ ├── Number355.java │ │ ├── Number357.java │ │ ├── Number361.java │ │ ├── Number373.java │ │ ├── Number376.java │ │ ├── Number377.java │ │ ├── Number380.java │ │ ├── Number382.java │ │ ├── Number384.java │ │ ├── Number386.java │ │ ├── Number388.java │ │ ├── Number39.java │ │ ├── Number396.java │ │ ├── Number398.java │ │ ├── Number40.java │ │ ├── Number400.java │ │ ├── Number413.java │ │ ├── Number417.java │ │ ├── Number421.java │ │ ├── Number423.java │ │ ├── Number427.java │ │ ├── Number430.java │ │ ├── Number433.java │ │ ├── Number436.java │ │ ├── Number437.java │ │ ├── Number438.java │ │ ├── Number449.java │ │ ├── Number45.java │ │ ├── Number450.java │ │ ├── Number46.java │ │ ├── Number467.java │ │ ├── Number47.java │ │ ├── Number473.java │ │ ├── Number477.java │ │ ├── Number48.java │ │ ├── Number486.java │ │ ├── Number49.java │ │ ├── Number494.java │ │ ├── Number498.java │ │ ├── Number5.java │ │ ├── Number50.java │ │ ├── Number503.java │ │ ├── Number513.java │ │ ├── Number515.java │ │ ├── Number516.java │ │ ├── Number518.java │ │ ├── Number522.java │ │ ├── Number523.java │ │ ├── Number525.java │ │ ├── Number532.java │ │ ├── Number535.java │ │ ├── Number537.java │ │ ├── Number538.java │ │ ├── Number539.java │ │ ├── Number54.java │ │ ├── Number547.java │ │ ├── Number55.java │ │ ├── Number556.java │ │ ├── Number558.java │ │ ├── Number56.java │ │ ├── Number565.java │ │ ├── Number583.java │ │ ├── Number6.java │ │ ├── Number62.java │ │ ├── Number63.java │ │ ├── Number633.java │ │ ├── Number64.java │ │ ├── Number647.java │ │ ├── Number648.java │ │ ├── Number652.java │ │ ├── Number654.java │ │ ├── Number676.java │ │ ├── Number677.java │ │ ├── Number692.java │ │ ├── Number695.java │ │ ├── Number712.java │ │ ├── Number713.java │ │ ├── Number714.java │ │ ├── Number729.java │ │ ├── Number73.java │ │ ├── Number734.java │ │ ├── Number735.java │ │ ├── Number740.java │ │ ├── Number75.java │ │ ├── Number78.java │ │ ├── Number785.java │ │ ├── Number79.java │ │ ├── Number8.java │ │ ├── Number80.java │ │ ├── Number81.java │ │ ├── Number816.java │ │ ├── Number817.java │ │ ├── Number82.java │ │ ├── Number838.java │ │ ├── Number846.java │ │ ├── Number873.java │ │ ├── Number875.java │ │ ├── Number877.java │ │ ├── Number890.java │ │ ├── Number91.java │ │ ├── Number912.java │ │ ├── Number918.java │ │ ├── Number92.java │ │ ├── Number926.java │ │ ├── Number931.java │ │ ├── Number94.java │ │ ├── Number946.java │ │ ├── Number95.java │ │ ├── Number96.java │ │ ├── Number969.java │ │ ├── Number98.java │ │ ├── Number99.java │ │ ├── Offer036.java │ │ └── Offer343.java │ ├── nowcoder │ │ ├── BM1.java │ │ ├── BM10.java │ │ ├── BM11.java │ │ ├── BM12.java │ │ ├── BM13.java │ │ ├── BM14.java │ │ ├── BM15.java │ │ ├── BM16.java │ │ ├── BM17.java │ │ ├── BM18.java │ │ ├── BM19.java │ │ ├── BM2.java │ │ ├── BM20.java │ │ ├── BM21.java │ │ ├── BM22.java │ │ ├── BM23.java │ │ ├── BM24.java │ │ ├── BM25.java │ │ ├── BM26.java │ │ ├── BM3.java │ │ ├── BM4.java │ │ ├── BM5.java │ │ ├── BM6.java │ │ ├── BM7.java │ │ ├── BM8.java │ │ └── BM9.java │ ├── offer │ │ ├── Offer03.java │ │ ├── Offer04.java │ │ ├── Offer05.java │ │ ├── Offer06.java │ │ ├── Offer07.java │ │ ├── Offer09.java │ │ ├── Offer10_1.java │ │ ├── Offer10_2.java │ │ ├── Offer11.java │ │ ├── Offer12.java │ │ ├── Offer13.java │ │ ├── Offer14_1.java │ │ ├── Offer14_2.java │ │ ├── Offer15.java │ │ ├── Offer16.java │ │ ├── Offer17.java │ │ ├── Offer18.java │ │ ├── Offer19.java │ │ ├── Offer20.java │ │ ├── Offer21.java │ │ ├── Offer22.java │ │ ├── Offer24.java │ │ ├── Offer25.java │ │ ├── Offer26.java │ │ ├── Offer27.java │ │ ├── Offer28.java │ │ ├── Offer29.java │ │ ├── Offer30.java │ │ ├── Offer31.java │ │ ├── Offer32_1.java │ │ ├── Offer32_2.java │ │ ├── Offer32_3.java │ │ ├── Offer33.java │ │ ├── Offer34.java │ │ ├── Offer35.java │ │ ├── Offer36.java │ │ ├── Offer37.java │ │ ├── Offer38.java │ │ ├── Offer39.java │ │ ├── Offer40.java │ │ ├── Offer41.java │ │ ├── Offer42.java │ │ ├── Offer43.java │ │ ├── Offer44.java │ │ ├── Offer45.java │ │ ├── Offer46.java │ │ ├── Offer47.java │ │ ├── Offer48.java │ │ ├── Offer49.java │ │ ├── Offer50.java │ │ ├── Offer51.java │ │ ├── Offer51_1.java │ │ ├── Offer52.java │ │ ├── Offer53_1.java │ │ ├── Offer53_2.java │ │ ├── Offer54.java │ │ ├── Offer55_2.java │ │ ├── Offer56_1.java │ │ ├── Offer56_2.java │ │ ├── Offer57.java │ │ ├── Offer57_2.java │ │ ├── Offer58_1.java │ │ ├── Offer58_2.java │ │ ├── Offer59_1.java │ │ ├── Offer59_2.java │ │ ├── Offer60.java │ │ ├── Offer61.java │ │ ├── Offer62.java │ │ ├── Offer63.java │ │ ├── Offer64.java │ │ ├── Offer65.java │ │ ├── Offer66.java │ │ ├── Offer67.java │ │ ├── Offer68_1.java │ │ └── Offer68_2.java │ ├── offer2 │ │ ├── Offer001.java │ │ ├── Offer002.java │ │ ├── Offer003.java │ │ ├── Offer004.java │ │ ├── Offer005.java │ │ ├── Offer006.java │ │ ├── Offer007.java │ │ ├── Offer008.java │ │ ├── Offer009.java │ │ ├── Offer010.java │ │ ├── Offer011.java │ │ ├── Offer012.java │ │ ├── Offer013.java │ │ ├── Offer014.java │ │ ├── Offer015.java │ │ ├── Offer016.java │ │ ├── Offer017.java │ │ ├── Offer018.java │ │ ├── Offer019.java │ │ ├── Offer020.java │ │ ├── Offer021.java │ │ ├── Offer022.java │ │ ├── Offer023.java │ │ ├── Offer025.java │ │ ├── Offer026.java │ │ ├── Offer028.java │ │ ├── Offer029.java │ │ ├── Offer030.java │ │ ├── Offer031.java │ │ ├── Offer032.java │ │ ├── Offer033.java │ │ ├── Offer034.java │ │ ├── Offer035.java │ │ ├── Offer037.java │ │ ├── Offer038.java │ │ ├── Offer039.java │ │ ├── Offer040.java │ │ ├── Offer041.java │ │ ├── Offer042.java │ │ ├── Offer043.java │ │ ├── Offer044.java │ │ ├── Offer045.java │ │ ├── Offer046.java │ │ ├── Offer047.java │ │ ├── Offer048.java │ │ ├── Offer049.java │ │ ├── Offer050.java │ │ ├── Offer051.java │ │ ├── Offer052.java │ │ ├── Offer053.java │ │ ├── Offer054.java │ │ ├── Offer055.java │ │ ├── Offer056.java │ │ ├── Offer057.java │ │ ├── Offer058.java │ │ ├── Offer059.java │ │ ├── Offer060.java │ │ ├── Offer061.java │ │ ├── Offer062.java │ │ ├── Offer063.java │ │ ├── Offer064.java │ │ ├── Offer065.java │ │ ├── Offer066.java │ │ ├── Offer067.java │ │ ├── Offer068.java │ │ ├── Offer069.java │ │ ├── Offer070.java │ │ ├── Offer071.java │ │ ├── Offer072.java │ │ ├── Offer073.java │ │ ├── Offer074.java │ │ ├── Offer075.java │ │ ├── Offer076.java │ │ ├── Offer077.java │ │ ├── Offer078.java │ │ ├── Offer079.java │ │ ├── Offer080.java │ │ ├── Offer081.java │ │ ├── Offer082.java │ │ ├── Offer083.java │ │ ├── Offer084.java │ │ ├── Offer085.java │ │ ├── Offer086.java │ │ ├── Offer087.java │ │ ├── Offer088.java │ │ ├── Offer089.java │ │ ├── Offer090.java │ │ ├── Offer091.java │ │ ├── Offer092.java │ │ ├── Offer093.java │ │ ├── Offer094.java │ │ ├── Offer095.java │ │ ├── Offer096.java │ │ ├── Offer097.java │ │ ├── Offer098.java │ │ ├── Offer099.java │ │ ├── Offer100.java │ │ ├── Offer101.java │ │ ├── Offer103.java │ │ ├── Offer104.java │ │ ├── Offer105.java │ │ ├── Offer106.java │ │ ├── Offer107.java │ │ ├── Offer108.java │ │ ├── Offer109.java │ │ ├── Offer110.java │ │ ├── Offer111.java │ │ ├── Offer112.java │ │ ├── Offer113.java │ │ ├── Offer114.java │ │ ├── Offer115.java │ │ ├── Offer116.java │ │ ├── Offer117.java │ │ ├── Offer118.java │ │ └── Offer119.java │ └── readme.md ├── zhgetyou │ └── README.md └── zhilin │ ├── 15_3sum │ └── 3sum.scala │ └── README.md ├── LICENSE ├── Picker ├── all_problems.json ├── department_highest_salary.db ├── duplicate_emails.db ├── leetcode_history.ipynb ├── leetcode_picker.ipynb ├── random_picker.py ├── salary.db └── used.txt ├── README-zh.md ├── README.md ├── first_commit.sh ├── path.py └── top.py /.github/workflows/link_checker.yml: -------------------------------------------------------------------------------- 1 | on: 2 | schedule: 3 | - cron: '0 0 1 * *' 4 | 5 | name: Check markdown links 6 | jobs: 7 | linkChecker: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@master 11 | - name: Link Checker 12 | uses: peter-evans/link-checker@v1 13 | with: 14 | args: -v -r * 15 | - name: Create Issue From File 16 | uses: peter-evans/create-issue-from-file@v1 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | ISSUE_TITLE: Link Checker Report 20 | ISSUE_CONTENT_FILEPATH: ./link-checker/out.md 21 | ISSUE_LABELS: report, automated issue 22 | -------------------------------------------------------------------------------- /.lgtm.yml: -------------------------------------------------------------------------------- 1 | extraction: 2 | python: 3 | python_setup: 4 | version: 3 5 | java: 6 | index: 7 | java_version: 11 8 | -------------------------------------------------------------------------------- /.theia/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.autoSave": "on" 3 | } 4 | -------------------------------------------------------------------------------- /Codes/BlitheLou/README.md: -------------------------------------------------------------------------------- 1 | ## leecode 刷题 2 | 3 | 将会使用 Python3 解题。 4 | 5 | 6 | 7 | 目录: 8 | 9 | 001_two_sum.py(两数和) 10 | 11 | 002_add_two_numbers 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Codes/BlitheLou/images/002_add_two_numbers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/BlitheLou/images/002_add_two_numbers.png -------------------------------------------------------------------------------- /Codes/Buddy119/String/11_Container_With_Most_Water/solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int maxArea(vector& height) { 4 | int l = 0; 5 | int r = height.size() - 1; 6 | int ans = 0; 7 | while(l < r){ 8 | int area = min(height[l], height[r]) * (r - l); 9 | ans = max(ans, area); 10 | 11 | if(height[l] < height[r]){ 12 | l++; 13 | } 14 | else{ 15 | r--; 16 | } 17 | } 18 | return ans; 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /Codes/Buddy119/String/14_Longest_Common_Prefix/solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | string longestCommonPrefix(vector& strs) { 4 | if(strs.empty()) return ""; 5 | string res; 6 | for(int i = 0; i < strs[0].size(); i++){ 7 | for(auto item : strs){ 8 | if(item[i] != strs[0][i]) return res; 9 | } 10 | res += strs[0][i]; 11 | } 12 | return res; 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /Codes/Buddy119/String/179_Largest_Number/solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | string largestNumber(vector& nums) { 4 | vector tmp; 5 | for(auto num : nums){ 6 | tmp.push_back(to_string(num)); 7 | } 8 | sort(tmp.begin(), tmp.end(), [](string s1, string s2){return s1+s2 > s2+s1;}); 9 | string res; 10 | for(auto s : tmp){ 11 | res += s; 12 | } 13 | while(res[0] == '0' && res.size() > 1){ 14 | res.erase(0, 1); 15 | } 16 | return res; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Codes/Buddy119/String/3_Longest_Substring_Without_Repeating_Characters/solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int lengthOfLongestSubstring(string s) { 4 | if(s.empty()) return 0; 5 | vector visited(128, -1); 6 | int res = 0; 7 | int start = 0; 8 | for(int i = 0; i < s.size(); i++){ 9 | if(visited[s[i]] != -1){ 10 | start = max(start, visited[s[i]] + 1); 11 | } 12 | visited[s[i]] = i; 13 | res = max(res, i - start + 1); 14 | } 15 | return res; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /Codes/Buddy119/Tree/100_Same_Tree/solution.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | bool isSameTree(TreeNode* p, TreeNode* q) { 13 | if(!p && !q) return true; 14 | if(!p || !q) return false; 15 | if(p->val != q->val) return false; 16 | return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Codes/Buddy119/Tree/104_Maximum_Depth_of_Binary_Tree/solution.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int maxDepth(TreeNode* root) { 13 | if(!root) return 0; 14 | int left = maxDepth(root->left); 15 | int right = maxDepth(root->right); 16 | return max(left, right) + 1; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Codes/Buddy119/Tree/111_Minimum_Depth_of_Binary_Tree/solution.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int minDepth(TreeNode* root) { 13 | if(!root) return 0; 14 | int left = minDepth(root->left); 15 | int right = minDepth(root->right); 16 | return (left == 0 || right == 0) ? max(left, right) + 1 : min(left, right) + 1; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Codes/Buddy119/Tree/114_Flatten_Binary_Tree_to_Linked_List/solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | void flatten(TreeNode* root) { 4 | if(!root) return; 5 | flatten(root->right); 6 | flatten(root->left); 7 | root->right = pre; 8 | root->left = nullptr; 9 | pre = root; 10 | } 11 | private: 12 | TreeNode* pre = nullptr; 13 | 14 | }; 15 | -------------------------------------------------------------------------------- /Codes/Dizent/README.md: -------------------------------------------------------------------------------- 1 | Dizent 2 | -------------------------------------------------------------------------------- /Codes/DrTang2000/README.md: -------------------------------------------------------------------------------- 1 | commit by tang 2 | -------------------------------------------------------------------------------- /Codes/GinRyan/LeetCode/Java-8-Solves/LeeCodesSolves/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | -------------------------------------------------------------------------------- /Codes/GinRyan/LeetCode/Python-3-Solves/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode -------------------------------------------------------------------------------- /Codes/GinRyan/README.md: -------------------------------------------------------------------------------- 1 | ## leecode-cn 刷题计划 2 | 3 | *From Author: GinRyan [https://github.com/GinRyan](https://github.com/GinRyan)* 4 | 5 | 6 | 7 | 将会使用Python 3 or Java 8编写题解程序snippets. 8 | 9 | There will be scripts written in Python 3 or Java 8. 10 | 11 | 12 | 13 | 目录: 14 | 15 | 1、两数之和(two numbers' sum) 16 | 17 | 2、两数相加(add-two-numbers) 18 | 19 | 3、无重复字符最长子串(longest-substring-without-repeating-characters) 20 | 21 | 5、 最长回文子串 22 | 23 | 6、Z 字形变换 24 | 25 | 7、整数反转 26 | 27 | 8、字符串转换整数 (atoi) 28 | 29 | 9、回文数 30 | -------------------------------------------------------------------------------- /Codes/HuaiyuGong/README.md: -------------------------------------------------------------------------------- 1 | # Huaiyu Gong's Solutions 2 | -------------------------------------------------------------------------------- /Codes/JJ/001_TwoSum/Solution.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] twoSum(int[] nums, int target) { 3 | int[] res = new int[] {-1, -1}; 4 | if (nums == null || nums.length < 2) return res; 5 | 6 | Map map = new HashMap<>(); 7 | for (int i = 0; i < nums.length; i++) { 8 | if (map.containsKey(target - nums[i])) { 9 | res[0] = map.get(target - nums[i]); 10 | res[1] = i; 11 | } 12 | map.put(nums[i], i); 13 | } 14 | return res; 15 | } 16 | } -------------------------------------------------------------------------------- /Codes/JJ/README.md: -------------------------------------------------------------------------------- 1 | JJ 2 | -------------------------------------------------------------------------------- /Codes/Lawrence51/README.md: -------------------------------------------------------------------------------- 1 | #刷题 -------------------------------------------------------------------------------- /Codes/Liam/001_two_sum.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 348 ms 2 | # 内存消耗 : 13 MB 3 | 4 | # 方案:哈希表 5 | 6 | 7 | class Solution(object): 8 | def twoSum(self, nums, target): 9 | """ 10 | :type nums: List[int] 11 | :type target: int 12 | :rtype: List[int] 13 | """ 14 | # 创建哈希表{value:idx} 15 | record = {} 16 | # 遍数组 17 | for idx, value in enumerate(nums): 18 | # 如果差值在哈希表中,返回对应索引 以及 循环中本次idx 19 | # 如果差值不在,则在哈希表中插入该value:idx 20 | if (target - value) in record.keys(): 21 | return [record[target - value], idx] 22 | else: 23 | record[value] = idx 24 | -------------------------------------------------------------------------------- /Codes/Liam/004_median_of_two_sorted_arrays.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 92 ms 2 | # 内存消耗 : 12.1 MB 3 | 4 | # 方案:借助自带的sorted()函数 5 | 6 | 7 | class Solution(object): 8 | def findMedianSortedArrays(self, nums1, nums2): 9 | """ 10 | :type nums1: List[int] 11 | :type nums2: List[int] 12 | :rtype: float 13 | """ 14 | merged = sorted(nums1 + nums2) 15 | middle = len(merged) // 2 16 | 17 | if len(merged) % 2 == 0: 18 | return float(merged[middle - 1] + merged[middle]) / 2 19 | else: 20 | return sorted(merged)[len(merged) // 2] 21 | -------------------------------------------------------------------------------- /Codes/Liam/009_palindrome_number.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 52 ms 2 | # 内存消耗 : 11.7 MB 3 | 4 | # 方案:逆序 对照 5 | 6 | 7 | class Solution(object): 8 | def isPalindrome(self, x): 9 | """ 10 | :type x: int 11 | :rtype: bool 12 | """ 13 | return True if str(x) == str(x)[::-1] else False 14 | -------------------------------------------------------------------------------- /Codes/Liam/1207_unique_number_of_occurrences.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 36 ms 2 | # 内存消耗 : 13.2 MB 3 | 4 | # 方案:哈希字典 5 | 6 | 7 | class Solution: 8 | def uniqueOccurrences(self, arr: List[int]) -> bool: 9 | from collections import Counter 10 | 11 | cor_dict = Counter(arr) 12 | values = cor_dict.values() 13 | return True if len(values) == len(list(set(values))) else False 14 | -------------------------------------------------------------------------------- /Codes/Liam/1221_split_a_string_in_balanced_strings.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 36 ms 2 | # 内存消耗 : 12.9 MB 3 | 4 | # 方案:栈的思想解决,遇到L就把L+1,不是L就是R 就把L-1,当L等于0的时候说明堆栈为空,就把结果+1 5 | 6 | 7 | class Solution: 8 | def balancedStringSplit(self, s: str) -> int: 9 | rst = L = 0 10 | for i in s: 11 | if i == "L": 12 | L += 1 13 | else: 14 | L -= 1 15 | if L == 0: 16 | rst += 1 17 | return rst 18 | -------------------------------------------------------------------------------- /Codes/Liam/1323_maximum_69_number.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 32 ms 2 | # 内存消耗 : 13 MB 3 | 4 | # 方案:最左边的6,把它替换成9 5 | 6 | 7 | class Solution: 8 | def maximum69Number(self, num: int) -> int: 9 | return int(str(num).replace("6", "9", 1)) 10 | -------------------------------------------------------------------------------- /Codes/Liam/1346_check_if_N_and_its_double_exist.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 160 ms 2 | # 内存消耗 : 13.2 MB 3 | 4 | # 方案:挨个遍历 看看是否它的double也在数组 5 | 6 | 7 | class Solution: 8 | def checkIfExist(self, arr: List[int]) -> bool: 9 | n = len(arr) 10 | for i in range(n): 11 | for j in range(n): 12 | if i != j and arr[i] * 2 == arr[j]: 13 | return True 14 | return False 15 | -------------------------------------------------------------------------------- /Codes/Liam/167_two_sum_II_input_array_is_sorted.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 136 ms 2 | # 内存消耗 : 29.2 MB 3 | 4 | # 方案:移动指针 5 | 6 | 7 | class Solution: 8 | def twoSum(self, numbers: List[int], target: int) -> List[int]: 9 | left, right = 0, len(numbers) - 1 10 | 11 | while left < right: 12 | if numbers[left] + numbers[right] == target: 13 | return [left + 1, right + 1] 14 | elif numbers[left] + numbers[right] < target: 15 | left += 1 16 | else: 17 | right -= 1 18 | -------------------------------------------------------------------------------- /Codes/Liam/172_factorial_trailing_zeroes.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 96 ms 2 | # 内存消耗 : 29 MB 3 | 4 | # 方案:算一下乘法因子里面5的个数 5 | 6 | 7 | class Solution: 8 | def trailingZeroes(self, n: int) -> int: 9 | # 算一下乘法因子里面5的个数 10 | count = 0 11 | while n: 12 | count += n // 5 13 | n //= 5 14 | return count 15 | -------------------------------------------------------------------------------- /Codes/Liam/237_delete_node_in_a_linked_list.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 64 ms 2 | # 内存消耗 : 13.9 MB 3 | 4 | # 方案:当前节点从链条上去掉 5 | 6 | # Definition for singly-linked list. 7 | # class ListNode: 8 | # def __init__(self, x): 9 | # self.val = x 10 | # self.next = None 11 | 12 | 13 | class Solution: 14 | def deleteNode(self, node): 15 | """ 16 | :type node: ListNode 17 | :rtype: void Do not return anything, modify node in-place instead. 18 | """ 19 | node.val = node.next.val 20 | node.next = node.next.next 21 | -------------------------------------------------------------------------------- /Codes/Liam/242_valid_anagram.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 148 ms 2 | # 内存消耗 : 29.2 MB 3 | 4 | # 方案:python语句 5 | 6 | 7 | class Solution: 8 | def isAnagram(self, s: str, t: str) -> bool: 9 | # pythonic 解法 10 | # 执行用时 : 148 ms, 在所有 Python3 提交中击败了5.10%的用户 11 | # 内存消耗 : 29.2 MB, 在所有 Python3 提交中击败了5.35%的用户 12 | # from collections import Counter 13 | # return Counter(s) == Counter(t) 14 | 15 | return sorted(s) == sorted(t) 16 | -------------------------------------------------------------------------------- /Codes/Liam/258_add_digits.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 24 ms 2 | # 内存消耗 : 11.7 MB 3 | 4 | # 方案:递归 5 | 6 | 7 | class Solution(object): 8 | def addDigits(self, num): 9 | """ 10 | :type num: int 11 | :rtype: int 12 | """ 13 | return ( 14 | self.addDigits(sum([int(n) for n in str(num)])) 15 | if len(str(num)) != 1 16 | else num 17 | ) 18 | -------------------------------------------------------------------------------- /Codes/Liam/326_power_of_three.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 140 ms 2 | # 内存消耗 : 28.8 MB 3 | 4 | # 方案:查表 5 | 6 | 7 | class Solution: 8 | def isPowerOfThree(self, n: int) -> bool: 9 | return n in [ 10 | 1, 11 | 3, 12 | 9, 13 | 27, 14 | 81, 15 | 243, 16 | 729, 17 | 2187, 18 | 6561, 19 | 19683, 20 | 59049, 21 | 177147, 22 | 531441, 23 | 1594323, 24 | 4782969, 25 | 14348907, 26 | 43046721, 27 | 129140163, 28 | 387420489, 29 | 1162261467, 30 | ] 31 | -------------------------------------------------------------------------------- /Codes/Liam/342_power_of_four.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 88 ms 2 | # 内存消耗 : 28.9 MB 3 | 4 | # 方案:循环 5 | 6 | 7 | class Solution: 8 | def isPowerOfFour(self, num: int) -> bool: 9 | # 循环 10 | if num > 1: 11 | while num % 4 == 0: 12 | num //= 4 13 | return num == 1 14 | -------------------------------------------------------------------------------- /Codes/Liam/344_reverse_string.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 296 ms 2 | # 内存消耗 : 33.1 MB 3 | 4 | # 方案:内置字符串处理 5 | 6 | 7 | class Solution: 8 | def reverseString(self, s: List[str]) -> None: 9 | """ 10 | Do not return anything, modify s in-place instead. 11 | """ 12 | return s.reverse() 13 | -------------------------------------------------------------------------------- /Codes/Liam/345_reverse_vowels_of_a_string.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 180 ms 2 | # 内存消耗 : 30.3 MB 3 | 4 | # 方案:栈存放 遇到之后出栈 5 | 6 | 7 | class Solution: 8 | def reverseVowels(self, s: str) -> str: 9 | vowel = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"] 10 | filter_word = [i for i in s if i in vowel] 11 | 12 | rst = list(s) 13 | for idx, ele in enumerate(rst): 14 | if ele in vowel: 15 | rst[idx] = filter_word.pop() 16 | 17 | return "".join(rst) 18 | -------------------------------------------------------------------------------- /Codes/Liam/371_sum_of_two_integers.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 44 ms 2 | # 内存消耗 : 13.4 MB 3 | 4 | # 方案:计算机组成原理 5 | 6 | 7 | class Solution: 8 | def getSum(self, a: int, b: int) -> int: 9 | while b: 10 | a, b = (a ^ b) & 0xFFFFFFFF, (a & b) << 1 11 | return a if a >> 31 == 0 else a - 4294967296 12 | -------------------------------------------------------------------------------- /Codes/Liam/434_number_of_segments_in_a_string.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 104 ms 2 | # 内存消耗 : 28.7 MB 3 | 4 | # 方案:python内置字符切分函数 5 | 6 | 7 | class Solution: 8 | def countSegments(self, s: str) -> int: 9 | return len(s.split()) 10 | -------------------------------------------------------------------------------- /Codes/Liam/476_number_complement.py: -------------------------------------------------------------------------------- 1 | # 24ms 13.5mb 2 | # 40ms 13.5mb 3 | 4 | # 方案:如下两种 5 | 6 | 7 | class Solution: 8 | def findComplement(self, num: int) -> int: 9 | # 异或操作 10 | # 24ms 13.5mb 11 | # # if num=5(101), a=7(111) 12 | # a = 2**num.bit_length()-1 13 | # # return 2(010) 14 | # return num^a 15 | 16 | # 二进制翻转 17 | # 40ms 13.5mb 18 | # if num=5(101) 19 | rst = [] 20 | for e in bin(num)[2:]: 21 | if e == "0": 22 | rst.append("1") 23 | else: 24 | rst.append("0") 25 | kk = "".join(rst) 26 | return int(kk, 2) 27 | -------------------------------------------------------------------------------- /Codes/Liam/5352_generate_a_string_with_characters_that_have_odd_counts.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 48 ms 2 | # 内存消耗 : 13.4 MB 3 | 4 | # 方案:n 是奇数就生成n个a; n 是偶数就生成n-1个a和一个b 5 | 6 | 7 | class Solution: 8 | def generateTheString(self, n: int) -> str: 9 | # n 是奇数就生成n个a 10 | # n 是偶数就生成n-1个a和一个b 11 | if n % 2 == 0: 12 | return "a" * (n - 1) + "b" 13 | return "a" * n 14 | -------------------------------------------------------------------------------- /Codes/Liam/5353_bulb_switcher_III.py: -------------------------------------------------------------------------------- 1 | # 执行用时:124 ms 2 | # 内存消耗:18.9 MB 3 | 4 | # 方案:所有的亮灯都连续排列在数组最左边,没有间断; 那么本题目转化为:判断 当前时刻亮灯的最大编号 是否 等于亮灯的数量 5 | 6 | 7 | class Solution: 8 | def numTimesAllBlue(self, light: List[int]) -> int: 9 | # 所有的亮灯都连续排列在数组最左边,没有间断 10 | # 判断 当前时刻亮灯的最大编号 是否 等于亮灯的数量 11 | rst, maxx = 0, 0 12 | for idx, on_light in enumerate(light): 13 | maxx = max(maxx, on_light) 14 | if maxx == idx + 1: 15 | rst += 1 16 | return rst 17 | -------------------------------------------------------------------------------- /Codes/Liam/557_reverse_words_in_a_string_III.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 36 ms 2 | # 内存消耗 : 14 MB 3 | 4 | # 方案:python内置翻转字符串 5 | 6 | 7 | class Solution: 8 | def reverseWords(self, s: str) -> str: 9 | return " ".join(i[::-1] for i in s.split()) 10 | -------------------------------------------------------------------------------- /Codes/Liam/559_maximum_depth_of_n-ary_tree.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 52 ms 2 | # 内存消耗 : 15 MB 3 | 4 | # 方案:递归 5 | 6 | """ 7 | # Definition for a Node. 8 | class Node: 9 | def __init__(self, val=None, children=None): 10 | self.val = val 11 | self.children = children 12 | """ 13 | 14 | 15 | class Solution: 16 | def maxDepth(self, root: "Node") -> int: 17 | if root is None: 18 | return 0 19 | 20 | # Only root and no children 21 | if root.children is None or len(root.children) == 0: 22 | return 1 23 | 24 | return 1 + max(map(self.maxDepth, root.children)) 25 | -------------------------------------------------------------------------------- /Codes/Liam/561_array_partition_I.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 432 ms 2 | # 内存消耗 : 15.7 MB 3 | 4 | # 方案:排序后 相邻两个最小的就是奇数 5 | 6 | 7 | class Solution: 8 | def arrayPairSum(self, nums: List[int]) -> int: 9 | """ 10 | :type nums: List[int] 11 | :rtype: int 12 | """ 13 | nums.sort() 14 | sum = 0 15 | for i in range(0, len(nums), 2): 16 | sum += nums[i] 17 | 18 | return sum 19 | -------------------------------------------------------------------------------- /Codes/Liam/617_merge_two_binary_trees.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 72 ms 2 | # 内存消耗 : 13.9 MB 3 | 4 | # 方案:递归 5 | 6 | # Definition for a binary tree node. 7 | # class TreeNode: 8 | # def __init__(self, x): 9 | # self.val = x 10 | # self.left = None 11 | # self.right = None 12 | 13 | 14 | class Solution: 15 | def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode: 16 | # 递归 17 | if t1 and t2: 18 | t1.val += t2.val 19 | t1.left = self.mergeTrees(t1.left, t2.left) 20 | t1.right = self.mergeTrees(t1.right, t2.right) 21 | return t1 or t2 22 | -------------------------------------------------------------------------------- /Codes/Liam/77_combinations.py: -------------------------------------------------------------------------------- 1 | # 执行用时 : 60 ms 2 | # 内存消耗 : 15 MB 3 | 4 | # 方案:排列组合性质 C(m,n)=C(m-1,n)+C(m-1,n-1) 5 | 6 | 7 | class Solution: 8 | def combine(self, n: int, k: int) -> List[List[int]]: 9 | # 排列组合性质 C(m,n)=C(m-1,n)+C(m-1,n-1) 10 | if k > n or k == 0: 11 | return [] 12 | if k == 1: 13 | return [[i] for i in range(1, n + 1)] 14 | if k == n: 15 | return [[i for i in range(1, n + 1)]] 16 | 17 | answer = self.combine(n - 1, k) 18 | for item in self.combine(n - 1, k - 1): 19 | item.append(n) 20 | answer.append(item) 21 | 22 | return answer 23 | -------------------------------------------------------------------------------- /Codes/LittleCuteRabbit/Array/1480.-Running-Sum-of-1d-Array/Solution.py: -------------------------------------------------------------------------------- 1 | class Solution(object): 2 | def runningSum(self, nums): 3 | """ 4 | :type nums: List[int] 5 | :rtype: List[int] 6 | """ 7 | 8 | 9 | s = 0 10 | -------------------------------------------------------------------------------- /Codes/LittleCuteRabbit/Array/1672.-Richest-Customer-Wealth: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def maximumWealth(self, accounts: List[List[int]]) -> int: 3 | -------------------------------------------------------------------------------- /Codes/LittleCuteRabbit/README.md: -------------------------------------------------------------------------------- 1 | 测试一下上传 2 | 纯小白,甚至连github的使用都不会。 3 | 但是现在开始总比从未开始强。 4 | 5 | 1.Rename filename to README.md -------------------------------------------------------------------------------- /Codes/P_fzr/1_two_sum.py: -------------------------------------------------------------------------------- 1 | # https://leetcode.com/problems/two-sum/ 2 | 3 | 4 | # 从 nums 中找到两个数,满足两数之和为 target 5 | def two_sum(nums, target): 6 | nums_len = len(nums) 7 | if nums_len < 1: 8 | return False 9 | 10 | position = {} 11 | 12 | for i in range(len(nums)): 13 | n = nums[i] 14 | if n in position: 15 | return [position[n], i] 16 | else: 17 | position[target - n] = i 18 | 19 | 20 | print(two_sum([2, 7, 11, 15], 9)) 21 | -------------------------------------------------------------------------------- /Codes/Terence.Sun/1046-Last-Stone-Weight/detail.md: -------------------------------------------------------------------------------- 1 | //有一堆石头,每块石头的重量都是正整数。 2 | // 3 | // 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 4 | // 5 | // 6 | // 如果 x == y,那么两块石头都会被完全粉碎; 7 | // 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 8 | // 9 | // 10 | // 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 11 | // 12 | // 13 | // 14 | // 示例: 15 | // 16 | // 输入:[2,7,4,1,8,1] 17 | //输出:1 18 | //解释: 19 | //先选出 7 和 8,得到 1,所以数组转换为 [2,4,1,1,1], 20 | //再选出 2 和 4,得到 2,所以数组转换为 [2,1,1,1], 21 | //接着是 2 和 1,得到 1,所以数组转换为 [1,1,1], 22 | //最后选出 1 和 1,得到 0,最终数组转换为 [1],这就是最后剩下那块石头的重量。 23 | // 24 | // 25 | // 26 | // 提示: 27 | // 28 | // 29 | // 1 <= stones.length <= 30 30 | // 1 <= stones[i] <= 1000 31 | -------------------------------------------------------------------------------- /Codes/Terence.Sun/README.md: -------------------------------------------------------------------------------- 1 | Terence.Sun 2 | -------------------------------------------------------------------------------- /Codes/Yves-Liu/README.md: -------------------------------------------------------------------------------- 1 | Yves-Liu 2 | * [leetcode刷题仓库](https://github.com/Zhenghao-Liu/LeetCode_problem-and-solution) 3 | -------------------------------------------------------------------------------- /Codes/aiv2008/README.md: -------------------------------------------------------------------------------- 1 | aiv2008 2 | -------------------------------------------------------------------------------- /Codes/ampn/README.md: -------------------------------------------------------------------------------- 1 | https://ampn.github.io 2 | -------------------------------------------------------------------------------- /Codes/asdf2014/7_reverse_integer/reverse_integer_slice.py: -------------------------------------------------------------------------------- 1 | # https://leetcode.com/problems/reverse-integer/ 2 | 3 | 4 | def reverse_integer(x): 5 | sign = (x > 0) - (x < 0) 6 | res = int(str(x * sign)[::-1]) 7 | return sign * res * (res < 2**31) 8 | 9 | 10 | assert reverse_integer(123) == 321 11 | assert reverse_integer(-123) == -321 12 | assert reverse_integer(120) == 21 13 | assert reverse_integer(-120) == -21 14 | assert reverse_integer(0) == 0 15 | assert reverse_integer(1534236469) == 0 16 | -------------------------------------------------------------------------------- /Codes/asdf2014/9_palindrome_number/palindrome_number_math.py: -------------------------------------------------------------------------------- 1 | # https://leetcode.com/problems/palindrome-number/ 2 | 3 | 4 | def palindrome_number(x): 5 | if x < 0: 6 | return False 7 | elif x == 0: 8 | return True 9 | h, rev = x, 0 10 | while h: 11 | rev = rev * 10 + h % 10 12 | h //= 10 13 | return rev == x 14 | 15 | 16 | assert palindrome_number(121) 17 | assert not palindrome_number(-121) 18 | assert not palindrome_number(12) 19 | assert palindrome_number(0) 20 | -------------------------------------------------------------------------------- /Codes/asdf2014/README.md: -------------------------------------------------------------------------------- 1 | https://yuzhouwan.com/about/ 2 | -------------------------------------------------------------------------------- /Codes/asdf2014/fibonacci-number/dp_top_bottom_up_approach.py: -------------------------------------------------------------------------------- 1 | def solution(n): 2 | if n <= 1: 3 | return n 4 | 5 | cache = [x for x in range(0, n + 1)] 6 | cache[1] = 1 7 | 8 | for i in range(2, n + 1): 9 | cache[i] = cache[i - 1] + cache[i - 2] 10 | return cache[n] 11 | 12 | 13 | assert solution(6) == 8 14 | -------------------------------------------------------------------------------- /Codes/asdf2014/fibonacci-number/iterative.py: -------------------------------------------------------------------------------- 1 | def solution(n): 2 | if n <= 1: 3 | return n 4 | a = 0 5 | b = 1 6 | while n > 1: 7 | n = n - 1 8 | sum_ = a + b 9 | a = b 10 | b = sum_ 11 | return b 12 | 13 | 14 | assert solution(6) == 8 15 | -------------------------------------------------------------------------------- /Codes/asdf2014/fibonacci-number/recursive.py: -------------------------------------------------------------------------------- 1 | def solution(n): 2 | if n <= 1: 3 | return n 4 | else: 5 | return solution(n - 1) + solution(n - 2) 6 | 7 | 8 | assert solution(6) == 8 9 | -------------------------------------------------------------------------------- /Codes/asdf2014/zero_to_hero/basic_type_example.py: -------------------------------------------------------------------------------- 1 | i = 1 2 | print(i) 3 | print(type(i)) 4 | 5 | i = 0.1 6 | print(i) 7 | print(type(i)) 8 | 9 | f = 0.1 10 | print(f) 11 | print(type(f)) 12 | 13 | f = 1 14 | print(f) 15 | print(type(f)) 16 | 17 | s = "yuzhouwan" 18 | print(s) 19 | print(type(s)) 20 | 21 | s = 123 22 | print(s) 23 | print(type(s)) 24 | 25 | s = None 26 | print(s) 27 | print(type(s)) 28 | -------------------------------------------------------------------------------- /Codes/beingStrong/README.md: -------------------------------------------------------------------------------- 1 | ### leetcode刷题目录 2 | 3 | `目录:` 4 | 1. 两数之和:https://leetcode-cn.com/problems/two-sum/ 5 | 2. 两数相加:https://leetcode-cn.com/problems/add-two-numbers/submissions/ 6 | 3. 无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 7 | 4. 8 | 5. 最长回文子串 https://leetcode-cn.com/problems/longest-palindromic-substring/ 9 | 6. Z字形变换 https://leetcode-cn.com/problems/zigzag-conversion/ 10 | 7. 整数反转 https://leetcode-cn.com/problems/reverse-integer/ -------------------------------------------------------------------------------- /Codes/beingStrong/reverse_integer/Solution1.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | class Solution1 { 3 | 4 | public int reverse(int x) { 5 | //声明一个保存结果的res 6 | int res=0; 7 | 8 | while(x!=0){ 9 | //如果res>Integer.MAX_VALUE/10或者res为Integer.MAX_VALUE/10但是p的值大于7,此时已经溢出,返回0 10 | if((res>Integer.MAX_VALUE/10)||(res==Integer.MAX_VALUE/10&&x%10>7)) return 0; 11 | //如果res num: 11 | num = k 12 | else: 13 | break 14 | return num 15 | 16 | 17 | if __name__ == "__main__": 18 | print(log_str("abcabcbb")) 19 | -------------------------------------------------------------------------------- /Codes/fengxuanmo/4_findMiddle_num/findMidlleNum.py: -------------------------------------------------------------------------------- 1 | def findMedianSortedArrays(nums1, nums2): 2 | if len(nums1) == 0: 3 | return nums2[(len(nums2) - 1) / 2] 4 | 5 | 6 | if __name__ == "__main__": 7 | print(findMedianSortedArrays([1, 2, 3, 5], [4, 6, 7, 8, 9])) 8 | -------------------------------------------------------------------------------- /Codes/fengxuanmo/7.py: -------------------------------------------------------------------------------- 1 | def reverse(x): 2 | x = long(str(x if x > 0 else x * -1)[::-1]) 3 | return 0 if x > (2**31 - 1) or x < -(2**31) else x 4 | 5 | 6 | if __name__ == "__main__": 7 | assert reverse(-923) == --329 8 | -------------------------------------------------------------------------------- /Codes/ghoslation/JavaSolution/LeetCodeProject/LeetCodeSolutions/src/com/leetcode/ListNode.java: -------------------------------------------------------------------------------- 1 | package com.leetcode; 2 | public class ListNode { 3 | int val; 4 | ListNode next; 5 | ListNode() {} 6 | ListNode(int val) { this.val = val; } 7 | ListNode(int val, ListNode next) { this.val = val; this.next = next; } 8 | } -------------------------------------------------------------------------------- /Codes/ghoslation/JavaSolution/LeetCodeProject/LeetCodeSolutions/src/com/leetcode/Solution0001.java: -------------------------------------------------------------------------------- 1 | package com.leetcode; 2 | public class Solution0001 { 3 | public int[] twoSum(int[] nums, int target) { 4 | int[] retArr = new int[2]; 5 | for(int i = 0;i = 2 and pattern[1] == '*': 10 | return (self.isMatch(text, pattern[2:]) or 11 | first_match and self.isMatch(text[1:], pattern)) 12 | else: 13 | return first_match and self.isMatch(text[1:], pattern[1:]) 14 | 15 | 16 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/1103_distribute_candies_to_people.md: -------------------------------------------------------------------------------- 1 | ```python 2 | 3 | class Solution: 4 | 5 | def distributeCandies(self, candies: int, num_people: int) -> list: 6 | ans = [0] * num_people 7 | i = 0 8 | while candies != 0: 9 | ans[i % num_people] = min(i + 1, candies) 10 | candies -= min(i + 1, candies) 11 | i += 1 12 | return ans 13 | 14 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/11_container_with_most_water.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution(object): 3 | def maxArea(self, height: list) -> int: 4 | left, right, area = 0, len(height) - 1, 0 5 | while left < right: 6 | if height[left] < height[right]: 7 | area = max(area, height[left] * (right - left)) 8 | left += 1 9 | else: 10 | area = max(area, height[right] * (right - left)) 11 | right -= 1 12 | return area 13 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/13_roman_to_int.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution(object): 3 | def romanToInt(self, s: str) -> int: 4 | self.s = s 5 | loopup = {'M': 1000, 6 | 'D': 500, 7 | 'C': 100, 8 | 'L': 50, 9 | 'X': 10, 10 | 'V': 5, 11 | 'I': 1 12 | } 13 | res = 0 14 | for i in range(len(s)): 15 | if i > 0 and loopup[s[i]] > loopup[s[i - 1]]: 16 | res += res + loopup[s[i]] - 2 * loopup[s[i - 1]] 17 | else: 18 | res += loopup[s[i]] 19 | return res 20 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/14_LCS.md: -------------------------------------------------------------------------------- 1 | ```python 2 | 3 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/160_intersection_of_two_linked_lists.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution(object): 3 | def getIntersectionNode(self, headA, headB): 4 | """ 5 | :type head1, head1: ListNode 6 | :rtype: ListNode 7 | """ 8 | if not headA or not headB: 9 | return None 10 | a = headA 11 | b = headB 12 | while a != b: 13 | if not a: 14 | a = headB 15 | else: 16 | a = a.next 17 | if not b: 18 | b = headA 19 | else: 20 | b = b.next 21 | return a 22 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/17_letterCombinations.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution(object): 3 | def letterCombinations(self, digits: str) -> list: 4 | dic = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"] 5 | if len(digits) == 0: 6 | return [] 7 | res = [] 8 | for i in digits: 9 | temp = [] 10 | di = int(i) 11 | for char in dic[di]: 12 | if not res: 13 | temp.append(char) 14 | else: 15 | for j in res: 16 | temp.append(j + char) 17 | res = temp 18 | return res 19 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/19_remove_Nth_node.md: -------------------------------------------------------------------------------- 1 | 2 | ```python 3 | class ListNode: 4 | def __init__(self, x): 5 | self.val = x 6 | self.next = None 7 | 8 | 9 | class Solution: 10 | def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: 11 | dummy = ListNode(0) 12 | dummy.next = head 13 | 14 | first = dummy 15 | for i in range(n + 1): 16 | first = first.next 17 | 18 | second = dummy 19 | 20 | while first is not None: 21 | first = first.next 22 | second = second.next 23 | 24 | second.next = second.next.next 25 | 26 | return dummy.next 27 | 28 | ``` 29 | -------------------------------------------------------------------------------- /Codes/gmywq392/1_two_sum.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 使用 python 的 dict 存储已出现的值及其索引: 4 | 5 | ```python 6 | class Solution: 7 | def twoSum(self, nums: List[int], target: int) -> List[int]: 8 | slots = {} 9 | for index in range(len(nums)): 10 | rest = target - nums[index] 11 | if rest in slots: 12 | return [slots[rest], index] 13 | slots[nums[index]] = index 14 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/206_reverse_linked_list.md: -------------------------------------------------------------------------------- 1 | ```python 2 | # Definition for singly-linked list. 3 | class ListNode(object): 4 | def __init__(self, x): 5 | self.val = x 6 | self.next = None 7 | 8 | class Solution(object): 9 | def reverseList(self, head): 10 | prev = None 11 | curr = head 12 | while curr: 13 | temp = curr.next 14 | curr.next = prev 15 | prev = curr 16 | curr = temp 17 | return prev 18 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/20_valid_parenthese.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution: 3 | def isValid(self, s: str) -> bool: 4 | vec = [] 5 | 6 | for i in s: 7 | if i == '[': 8 | vec.append(']') 9 | elif i == '(': 10 | vec.append(')') 11 | elif i == '{': 12 | vec.append('}') 13 | elif len(vec) == 0 or vec.pop() != i: 14 | return False 15 | 16 | return len(vec) == 0 17 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/21_merge_two_sorted_list.md: -------------------------------------------------------------------------------- 1 | ```python 2 | # Definition for singly-linked list. 3 | class ListNode(object): 4 | def __init__(self, x): 5 | self.val = x 6 | self.next = None 7 | 8 | 9 | class Solution(object): 10 | def mergeTwoLists(self, l1: ListNode, l2: ListNode): 11 | if not l1: return l2 12 | if not l2: return l1 13 | if l1.val < l2.val: 14 | l1.next = self.mergeTwoLists(l1.next, l2) 15 | return l1 16 | else: 17 | l2.next = self.mergeTwoLists(l1, l2.next) 18 | return l2 19 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/22_generate_parenthesis.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution: 3 | def generateParenthesis(self, n: int) -> list: 4 | ans = [] 5 | 6 | def backtrack(S='', left=0, right=0): 7 | if len(S) == 2 * n: 8 | ans.append(S) 9 | return 10 | if left < n: 11 | backtrack(S + '(', left + 1, right) 12 | if right < left: 13 | backtrack(S + ')', left, right + 1) 14 | 15 | backtrack('', 0, 0) 16 | return ans 17 | 18 | 19 | if __name__ == '__main__': 20 | ar = [3, 2, 4, 1] 21 | solution = Solution() 22 | print(solution.generateParenthesis(4)) 23 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/26_remove_duplicates.md: -------------------------------------------------------------------------------- 1 | ```python 2 | # Definition for singly-linked list. 3 | 4 | class Solution: 5 | def removeDuplicates(self, nums: list) -> int: 6 | if not nums: return 0 7 | 8 | j = 0 9 | for i in range(len(nums)): 10 | if nums[j] != nums[i]: 11 | j += 1 12 | nums[j] = nums[i] 13 | 14 | return j + 1 15 | 16 | if __name__ == '__main__': 17 | ar = [1, 1, 2, 2, 2, 2, 3, 4, 5, 5, 5, 6] 18 | solution = Solution() 19 | print(solution.removeDuplicates(ar)) 20 | 21 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/27_remove_element.md: -------------------------------------------------------------------------------- 1 | ```python 2 | # Definition for singly-linked list. 3 | 4 | class Solution: 5 | def removeElement(self, nums: list, val: int) -> int: 6 | if not nums: return 0 7 | count = 0 8 | for i in range(len(nums)): 9 | if nums[i] != val: 10 | nums[count] = nums[i] 11 | count += 1 12 | return count + 1 13 | 14 | if __name__ == '__main__': 15 | ar = [1, 1, 2, 2, 2, 2, 3, 4, 5, 5, 5, 6] 16 | solution = Solution() 17 | print(solution.removeDuplicates(ar)) 18 | 19 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/28_str_str.md: -------------------------------------------------------------------------------- 1 | ```python 2 | # Definition for singly-linked list. 3 | 4 | class Solution: 5 | def strStr(self, haystack: str, needle: str) -> int: 6 | for i in range(len(haystack) - len(needle) + 1): 7 | if haystack[i:i + len(needle)] == needle: 8 | return i 9 | return -1 10 | 11 | 12 | if __name__ == '__main__': 13 | solution = Solution() 14 | print(solution.strStr('abbaaa', 'bba')) 15 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/3_longest_substring.md: -------------------------------------------------------------------------------- 1 | 2 | ```python 3 | class Solution: 4 | def lengthOfLongestSubstring(s: str) -> int: 5 | res = 0 6 | used = {} 7 | st = 0 8 | for curr, char in enumerate(s): 9 | if char in used: 10 | st = max(used[char], st) 11 | res = max(res, curr - st + 1) 12 | used[char] = curr + 1 13 | return res 14 | 15 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/6_zigzag-conversion.md: -------------------------------------------------------------------------------- 1 | 判断方向法 2 | ```python 3 | class Solution: 4 | def convert(self, s: str, numRows: int) -> str: 5 | if numRows == 1 : 6 | return s 7 | 8 | L = [''] * numRows 9 | index, step = 0, 1 10 | 11 | for x in s: 12 | L[index] += x 13 | if index == 0: 14 | step = 1 15 | elif index == numRows - 1: 16 | step = -1 17 | 18 | index += step 19 | return ''.join(L) 20 | ``` 21 | -------------------------------------------------------------------------------- /Codes/gmywq392/7_reverse-integer.md: -------------------------------------------------------------------------------- 1 | ```python 2 | class Solution: 3 | def reverse(self, x: int) -> int: 4 | x = str(x) 5 | if x[0] == '-': 6 | x = x[1:] 7 | new_x = '-' + x[::-1] 8 | else: 9 | new_x = x[::-1] 10 | new_x = int(new_x) 11 | if new_x >= -2 ** 31 or new_x <= 2 ** 31 - 1: 12 | return new_x 13 | else: 14 | return 0 15 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/836_rectangle-overlap.md: -------------------------------------------------------------------------------- 1 | ```python3 2 | from typing import List 3 | 4 | 5 | class Solution: 6 | def isRectangleOverlap(self, rec1: List[int], rec2: List[int]) -> bool: 7 | return not ( 8 | rec1[0] >= rec2[2] or 9 | rec1[1] >= rec2[3] or 10 | rec1[2] <= rec2[0] or 11 | rec1[3] <= rec2[1] 12 | ) 13 | 14 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/876_middle-of-the-linked-list.md: -------------------------------------------------------------------------------- 1 | ```python3 2 | # Definition for singly-linked list. 3 | # class ListNode: 4 | # def __init__(self, x): 5 | # self.val = x 6 | # self.next = None 7 | 8 | class Solution: 9 | def middleNode(self, head: ListNode) -> ListNode: 10 | if not head: return None 11 | fast = slow = head 12 | while fast and fast.next: 13 | slow = slow.next 14 | fast = fast.next.next 15 | return slow 16 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/Readme.md: -------------------------------------------------------------------------------- 1 | #### language: 2 | - python 3 | 4 | -------------------------------------------------------------------------------- /Codes/gmywq392/compress-string-lcci.md: -------------------------------------------------------------------------------- 1 | ```python 2 | 3 | class Solution: 4 | 5 | def compressString(self, S: str) -> str: 6 | if not S: 7 | return "" 8 | cu = S[0] 9 | cnt = 0 10 | ans = "" 11 | for i in S: 12 | if i == cu: 13 | cnt += 1 14 | else: 15 | ans += cu + str(cnt) 16 | cu = i 17 | cnt = 1 18 | ans += cu + str(cnt) 19 | if len(ans) >= len(S): 20 | return S 21 | else: 22 | return ans 23 | ``` -------------------------------------------------------------------------------- /Codes/gmywq392/iv62_last_remaining.md: -------------------------------------------------------------------------------- 1 | ```python3 2 | class Solution: 3 | def lastRemaining(self, n: int, m: int) -> int: 4 | ans = 0 5 | for i in range(2, n + 1): 6 | ans = (ans + m) % i 7 | return ans 8 | if __name__ == "__main__": 9 | solution = Solution() 10 | print(solution.lastRemaining(16, 5)) 11 | ``` -------------------------------------------------------------------------------- /Codes/gracekoo/14_longest-common-prefix.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2019/12/25 9:12 下午 3 | # @Author: GraceKoo 4 | # @File: 14_longest-common-prefix.py 5 | # @Desc: https://leetcode-cn.com/problems/longest-common-prefix/ 6 | class Solution: 7 | def longestCommonPrefix(self, li) -> str: 8 | if not li: 9 | return "" 10 | # 按照ASCII码进行排序 11 | min_str = min(li) 12 | max_str = max(li) 13 | for index, value in enumerate(min_str): 14 | if value != max_str[index]: 15 | return max_str[:index] 16 | return min_str 17 | 18 | 19 | so = Solution() 20 | print(so.longestCommonPrefix(["flower", "flow", "flight"])) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/164_maximum-gap.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/29 12:39 3 | # @Author: GraceKoo 4 | # @File: 164_maximum-gap.py 5 | # @Desc: https://leetcode-cn.com/problems/maximum-gap/ 6 | from typing import List 7 | 8 | 9 | class Solution: 10 | def maximumGap(self, nums: List[int]) -> int: 11 | len_nums = len(nums) 12 | if len_nums < 2: 13 | return 0 14 | nums.sort(reverse=False) 15 | max_gap = abs(nums[1] - nums[0]) 16 | for i in range(2, len_nums): 17 | max_gap = max(max_gap, abs(nums[i] - nums[i - 1])) 18 | return max_gap 19 | 20 | 21 | so = Solution() 22 | print(so.maximumGap([3, 6, 9, 1])) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/179_largest-number.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/23 21:18 3 | # @Author: GraceKoo 4 | # @File: 179_largest-number.py 5 | # @Desc: https://leetcode-cn.com/problems/largest-number/ 6 | 7 | 8 | class LargerNumKey(str): 9 | def __lt__(self, y): 10 | return self + y < y + self 11 | 12 | 13 | class Solution: 14 | def largestNumber(self, nums): 15 | return_value = "".join( 16 | sorted(map(str, nums), key=LargerNumKey, reverse=True) 17 | ).lstrip("0") 18 | return "0" if return_value[0] == "0" else return_value 19 | 20 | 21 | so = Solution() 22 | print(so.largestNumber([3, 30, 34, 5, 9])) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/20_valid-parentheses.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2019/12/26 11:53 下午 3 | # @Author: GraceKoo 4 | # @File: 20_valid-parentheses.py 5 | # @Desc: 6 | 7 | 8 | class Solution: 9 | def isValid(self, s: str) -> bool: 10 | stack = [] 11 | dic = {"{": "}", "[": "]", "(": ")"} 12 | for c in s: 13 | if c in dic: 14 | stack.append(c) 15 | elif dic[stack.pop()] != c: 16 | return False 17 | return len(stack) == 0 18 | 19 | 20 | so = Solution() 21 | print(so.isValid("()[]{}")) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/215_kth-largest-element-in-an-array.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/25 12:43 3 | # @Author: GraceKoo 4 | # @File: 215_kth-largest-element-in-an-array.py 5 | # @Desc: https://leetcode-cn.com/problems/kth-largest-element-in-an-array/ 6 | from typing import List 7 | import heapq 8 | 9 | 10 | class Solution: 11 | def findKthLargest(self, nums: List[int], k: int) -> int: 12 | return heapq.nlargest(2, nums)[-1] 13 | 14 | 15 | so = Solution() 16 | print(so.findKthLargest([3, 2, 1, 5, 6, 4], 2)) 17 | -------------------------------------------------------------------------------- /Codes/gracekoo/217_contains-duplicate.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/30 17:45 3 | # @Author: GraceKoo 4 | # @File: 217_contains-duplicate.py 5 | # @Desc: https://leetcode-cn.com/problems/contains-duplicate/ 6 | from typing import List 7 | 8 | 9 | class Solution: 10 | def containsDuplicate(self, nums: List[int]) -> bool: 11 | if not nums: 12 | return False 13 | # 先排序 14 | nums.sort(reverse=False) 15 | # 再比较 16 | for i in range(1, len(nums)): 17 | if nums[i] == nums[i - 1]: 18 | return True 19 | return False 20 | 21 | 22 | so = Solution() 23 | print(so.containsDuplicate([1, 2, 3, 1, 2, 3])) 24 | -------------------------------------------------------------------------------- /Codes/gracekoo/26_remove-duplicates-from-sorted-array.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/1/2 11:53 下午 3 | # @Author: GraceKoo 4 | # @File: 26_remove-duplicates-from-sorted-array.py 5 | # @Desc: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 6 | 7 | 8 | class Solution: 9 | def removeDuplicates(self, nums): 10 | if len(nums) == 0: 11 | return 0 12 | i = 0 13 | for j in range(1, len(nums)): 14 | if nums[i] != nums[j]: 15 | i += 1 16 | nums[i] = nums[j] 17 | return i + 1 18 | 19 | 20 | so = Solution() 21 | print(so.removeDuplicates([0, 0, 1, 1, 1, 2, 2, 3, 3, 4])) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/27_remove-element.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/1/3 11:41 下午 3 | # @Author: GraceKoo 4 | # @File: 27_remove-element.py 5 | # @Desc:https://leetcode-cn.com/problems/remove-element/ 6 | 7 | 8 | class Solution: 9 | def removeElement(self, nums, val: int): 10 | if not nums: 11 | return 0 12 | i = 0 13 | for j in range(0, len(nums)): 14 | if nums[j] != val: 15 | nums[i] = nums[j] 16 | i += 1 17 | return i 18 | 19 | 20 | so = Solution() 21 | print(so.removeElement([0, 1, 2, 2, 3, 0, 4, 2], 2)) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/35_search-insert-position.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/1/5 6:22 下午 3 | # @Author: GraceKoo 4 | # @File: 35_search-insert-position.py 5 | # @Desc:https://leetcode-cn.com/problems/search-insert-position/ 6 | 7 | 8 | class Solution: 9 | def searchInsert(self, nums, target: int) -> int: 10 | for i in range(0, len(nums) - 1): 11 | if nums[i] == target: 12 | return i 13 | elif nums[i] < target <= nums[i + 1]: 14 | return i + 1 15 | elif nums[i] > target: 16 | return -1 17 | return len(nums) 18 | 19 | 20 | so = Solution() 21 | print(so.searchInsert([1, 3, 5, 6], 7)) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/46_permutations.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/1/13 6:40 下午 3 | # @Author: GraceKoo 4 | # @File: 46_permutations.py 5 | # @Desc: https://leetcode-cn.com/problems/permutations/ 6 | 7 | 8 | class Solution: 9 | def permute(self, nums): 10 | def backtrack(nums, num): 11 | if not nums: 12 | output_list.append(num) 13 | return 14 | for i in range(len(nums)): 15 | backtrack(nums[:i] + nums[i + 1 :], num + [nums[i]]) 16 | 17 | output_list = [] 18 | backtrack(nums, []) 19 | return output_list 20 | 21 | 22 | so = Solution() 23 | print(so.permute([1, 2, 3])) 24 | -------------------------------------------------------------------------------- /Codes/gracekoo/49_group-anagrams.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/2/20 00:01 3 | # @Author: GraceKoo 4 | # @File: 49_group-anagrams.py 5 | # @Desc:https://leetcode-cn.com/problems/group-anagrams/ 6 | 7 | import collections 8 | 9 | 10 | class Solution: 11 | def groupAnagrams(self, strs): 12 | ans = collections.defaultdict(list) 13 | for s in strs: 14 | ans[tuple(sorted(s))].append(s) 15 | return ans.values() 16 | 17 | 18 | so = Solution() 19 | print(so.groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"])) 20 | -------------------------------------------------------------------------------- /Codes/gracekoo/509_fibonacci-number.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/5/14 12:38 3 | # @Author: GraceKoo 4 | # @File: 509_fibonacci-number.py 5 | # @Desc: https://leetcode-cn.com/problems/fibonacci-number/ 6 | 7 | 8 | class Solution: 9 | def fib(self, N: int) -> int: 10 | if N <= 1: 11 | return N 12 | f_dict = {0: 0, 1: 1} 13 | for i in range(2, N): 14 | f_dict[i] = f_dict[i - 1] + f_dict[i - 2] 15 | return f_dict[N - 1] 16 | 17 | 18 | so = Solution() 19 | print(so.fib(4)) 20 | -------------------------------------------------------------------------------- /Codes/gracekoo/50_powx-n.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/2/21 23:37 3 | # @Author: GraceKoo 4 | # @File: 50_powx-n.py 5 | # @Desc:https://leetcode-cn.com/problems/powx-n/ 6 | 7 | 8 | class Solution: 9 | def myPow(self, x: float, n: int) -> float: 10 | if n == 0: 11 | return 1 12 | if n == -1: 13 | return 1 / x 14 | half = self.myPow(x, n // 2) 15 | if n % 2 == 0: 16 | return half * half 17 | else: 18 | return half * half * x 19 | 20 | 21 | so = Solution() 22 | print(so.myPow(2.00000, -10)) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/55_jump-game.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/2/27 12:08 3 | # @Author: GraceKoo 4 | # @File: 55_jump-game.py 5 | # @Desc:https://leetcode-cn.com/problems/jump-game/ 6 | from typing import List 7 | 8 | 9 | class Solution: 10 | def canJump(self, nums: List[int]) -> bool: 11 | last_true_index = nums[-1] 12 | for i in range(len(nums) - 1, 0, -1): 13 | if i + nums[i] >= last_true_index: 14 | last_true_index = nums[i] 15 | else: 16 | return False 17 | return True 18 | 19 | 20 | so = Solution() 21 | print(so.canJump([2, 3, 1, 1, 4])) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/58_length-of-last-word.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/3/1 18:01 3 | # @Author: GraceKoo 4 | # @File: 58_length-of-last-word.py 5 | # @Desc:https://leetcode-cn.com/problems/length-of-last-word/ 6 | 7 | 8 | class Solution: 9 | def lengthOfLastWord(self, s: str) -> int: 10 | if not s: 11 | return 0 12 | return len(s.split()[-1]) 13 | 14 | 15 | so = Solution() 16 | print(so.lengthOfLastWord("Hello World")) 17 | -------------------------------------------------------------------------------- /Codes/gracekoo/62_unique-paths.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/3/5 20:13 3 | # @Author: GraceKoo 4 | # @File: 62_unique-paths.py 5 | # @Desc:https://leetcode-cn.com/problems/unique-paths/ 6 | 7 | 8 | class Solution: 9 | def uniquePaths(self, m: int, n: int) -> int: 10 | pre = [1] * n 11 | cur = [1] * n 12 | for row in range(1, m): 13 | for col in range(1, n): 14 | cur[col] = cur[col - 1] + pre[col] 15 | pre = cur 16 | return pre[-1] 17 | 18 | 19 | so = Solution() 20 | print(so.uniquePaths(7, 3)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/70_climbing-stairs.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/3/11 12:09 3 | # @Author: GraceKoo 4 | # @File: 70_climbing-stairs.py 5 | # @Desc:https://leetcode-cn.com/problems/climbing-stairs/ 6 | 7 | 8 | class Solution: 9 | def climbStairs(self, n: int) -> int: 10 | dp = [i for i in range(n)] 11 | dp[0] = 1 12 | dp[1] = 2 13 | for i in range(2, n): 14 | dp[i] = dp[i - 1] + dp[i - 2] 15 | return dp[-1] 16 | 17 | 18 | so = Solution() 19 | print(so.climbStairs(3)) 20 | -------------------------------------------------------------------------------- /Codes/gracekoo/7_reverse-integer.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2019/12/19 1:05 下午 3 | # @Author: GraceKoo 4 | # @File: 7_reverse-integer.py 5 | # @Desc: https://leetcode-cn.com/problems/reverse-integer/ 6 | 7 | 8 | class Solution: 9 | def reverse(self, x: int) -> int: 10 | if not x: 11 | return x 12 | 13 | len_x = len(str(x)) 14 | reverse_x = "" 15 | for i in range(0, len_x): 16 | middle_x = (x % pow(10, i + 1)) // pow(10, i) 17 | reverse_x = reverse_x + str(middle_x) 18 | return reverse_x 19 | 20 | 21 | s = 123456789 22 | so = Solution() 23 | print(so.reverse(s)) 24 | -------------------------------------------------------------------------------- /Codes/gracekoo/89_gray-code.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/2 23:45 3 | # @Author: GraceKoo 4 | # @File: 89_gray-code.py 5 | # @Desc: https://leetcode-cn.com/problems/gray-code/ 6 | from typing import List 7 | 8 | 9 | class Solution: 10 | def grayCode(self, n: int) -> List[int]: 11 | res, head = [0], 1 12 | for i in range(n): 13 | for j in range(len(res) - 1, -1, -1): 14 | res.append(head + res[j]) 15 | head <<= 1 16 | return res 17 | 18 | 19 | so = Solution() 20 | print(so.grayCode(1)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/96_unique-binary-search-trees.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/4/13 18:49 3 | # @Author: GraceKoo 4 | # @File: 96_unique-binary-search-trees.py 5 | # @Desc: https://leetcode-cn.com/problems/unique-binary-search-trees/ 6 | 7 | 8 | class Solution: 9 | def numTrees(self, n: int) -> int: 10 | if n < 0: 11 | return 0 12 | dp = [0 for _ in range(n + 1)] 13 | dp[0] = 1 14 | dp[1] = 1 15 | for i in range(2, n + 1): 16 | for j in range(i): 17 | dp[i] += dp[j] * dp[i - j - 1] 18 | return dp[-1] 19 | 20 | 21 | so = Solution() 22 | print(so.numTrees(3)) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/9_palindrome_number.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2019/12/20 11:38 下午 3 | # @Author: GraceKoo 4 | # @File: 9_palindrome_number.py 5 | # @Desc: https://leetcode-cn.com/problems/palindrome-number/ 6 | 7 | 8 | class Solution: 9 | def isPalindrome(self, x: int) -> bool: 10 | if x < 0 or (x % 10 == 0 and x != 0): 11 | return False 12 | return_num = 0 13 | # 只对比一半 14 | while x > return_num: 15 | return_num = return_num * 10 + x % 10 16 | x = x // 10 17 | # x是偶数则相等 奇数要去掉最后一位 18 | return x == return_num or x == return_num // 10 19 | 20 | 21 | so = Solution() 22 | print(so.isPalindrome(1221)) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/README.md: -------------------------------------------------------------------------------- 1 | GraceKoo 2 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_10.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/5/27 12:48 3 | # @Author: GraceKoo 4 | # @File: interview_10.py 5 | # @Desc: https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6?tpId=13&tqId=11163&tPage=1&rp=1&ru=/ta/ 6 | # coding-interviews&qru=/ta/coding-interviews/question-ranking 7 | 8 | 9 | class Solution: 10 | def rectCover(self, number): 11 | # write code here 12 | if number == 1: 13 | return 1 14 | elif number == 2: 15 | return 2 16 | return self.rectCover(number - 1) + self.rectCover(number - 2) 17 | 18 | 19 | so = Solution() 20 | print(so.rectCover(3)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_11.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/7/16 15:41 3 | # @Author: GraceKoo 4 | # @File: interview_11.py 5 | # @Desc: https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/ 6 | 7 | 8 | class Solution: 9 | def hammingWeight(self, n: int) -> int: 10 | res = 0 11 | count = 1 # 牛客网要求只输出该数32位二进制表示中1的个数,故利用count来计数 12 | while n and count <= 32: 13 | res += n & 1 14 | n >>= 1 15 | count += 1 16 | return res 17 | 18 | 19 | so = Solution() 20 | print(so.hammingWeight(-1)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/5/8 22:38 3 | # @Author: GraceKoo 4 | # @File: interview_2.py 5 | # @Desc: https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/ 6 | 7 | 8 | class Solution: 9 | def replaceSpace(self, s: str) -> str: 10 | s_list = list() 11 | for s_value in s: 12 | if s_value == " ": 13 | s_list.append("%20") 14 | else: 15 | s_list.append(s_value) 16 | 17 | return "".join(s_list) 18 | 19 | 20 | so = Solution() 21 | print(so.replaceSpace("We are happy.")) 22 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_31.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/7/2 11:50 3 | # @Author: GraceKoo 4 | # @File: interview_31.py 5 | # @Desc: https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/ 6 | 7 | 8 | class Solution: 9 | def countDigitOne(self, n: int) -> int: 10 | s = "" 11 | while n: 12 | s += str(n) 13 | n -= 1 14 | return s.count("1") 15 | 16 | 17 | so = Solution() 18 | print(so.countDigitOne(12)) 19 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_34.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/7/7 10:56 3 | # @Author: GraceKoo 4 | # @File: interview_34.py 5 | # @Desc: https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/ 6 | 7 | 8 | class Solution: 9 | def firstUniqChar(self, s: str) -> str: 10 | result_dict = {} 11 | for item in s: 12 | result_dict[item] = item not in result_dict 13 | for k, v in result_dict.items(): 14 | if v: 15 | return k 16 | return " " 17 | 18 | 19 | so = Solution() 20 | print(so.firstUniqChar("NXWtnzyoHoBhUJaPauJaAitLWNMlkKwDYbbigdMMaYfkVPhGZcrEwp")) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_43.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/9/23 18:33 3 | # @Author: GraceKoo 4 | # @File: interview_43.py 5 | # @Desc: https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/ 6 | 7 | 8 | class Solution: 9 | def reverseLeftWords(self, s: str, n: int) -> str: 10 | len_s = len(s) 11 | if n >= len_s or n <= 0: 12 | return s 13 | return s[n:] + s[:n] 14 | 15 | 16 | so = Solution() 17 | print(so.reverseLeftWords("abcdefg", 2)) 18 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_44.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/9/24 15:15 3 | # @Author: GraceKoo 4 | # @File: interview_44.py 5 | # @Desc: https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 6 | 7 | 8 | class Solution: 9 | def reverseWords(self, s: str) -> str: 10 | if not s: 11 | return s 12 | s_rotate = s.split() 13 | # " "的情况,直接返回s 14 | if len(s_rotate) <= 1: 15 | return s 16 | return " ".join(s_rotate[::-1]) 17 | 18 | 19 | so = Solution() 20 | print(so.reverseWords("abc bvc nbm")) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_46.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/9/24 15:16 3 | # @Author: GraceKoo 4 | # @File: interview_46.py 5 | # @Desc: https://leetcode-cni.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 6 | 7 | 8 | class Solution: 9 | def lastRemaining(self, n: int, m: int) -> int: 10 | if n == 0: 11 | return -1 12 | i, array = 0, list(range(n)) 13 | while len(array) > 1: 14 | i = (i + m - 1) % len(array) 15 | array.pop(i) 16 | return array[0] 17 | 18 | 19 | so = Solution() 20 | print(so.lastRemaining(5, 3)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_47.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/9/24 15:16 3 | # @Author: GraceKoo 4 | # @File: interview_47.py 5 | # @Desc: https://leetcode-cn.com/problems/qiu-12n-lcof/ 6 | 7 | 8 | class Solution: 9 | def __init__(self): 10 | self.res = 0 11 | 12 | def sumNums(self, n: int) -> int: 13 | # 如果n大于1,则and后面的语句继续执行,即,继续递归 14 | n > 1 and self.sumNums(n - 1) 15 | 16 | # 如果已经不大于1,则程序继续执行下面的语句,进行累加 17 | self.res += n 18 | 19 | # 最后返回当前累加的结果 20 | return self.res 21 | 22 | 23 | so = Solution() 24 | print(so.sumNums(3)) 25 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_48.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/9/25 14:37 3 | # @Author: GraceKoo 4 | # @File: interview_48.py 5 | # @Desc: https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ 6 | 7 | 8 | class Solution: 9 | def add(self, a: int, b: int) -> int: 10 | a &= 0xFFFFFFFF 11 | b &= 0xFFFFFFFF 12 | while b != 0: 13 | c = ((a & b) << 1) & 0xFFFFFFFF # 进位用与操作 14 | a ^= b # 不考虑进位的结果用异或操作 15 | b = c 16 | return a if a <= 0x7FFFFFFF else ~(a ^ 0xFFFFFFFF) # 负数需要恢复成原码 17 | 18 | 19 | so = Solution() 20 | print(so.add(-3, -2)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_7.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/7/16 11:36 3 | # @Author: GraceKoo 4 | # @File: interview_7.py 5 | # @Desc: https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&rp=1&ru=%2Fta%2Fcoding-interviews&qr 6 | # u=%2Fta%2Fcoding-interviews%2Fquestion-ranking 7 | 8 | 9 | class Solution: 10 | def fib(self, N: int) -> int: 11 | if N <= 1: 12 | return N 13 | f_dict = {0: 0, 1: 1} 14 | for i in range(2, N): 15 | f_dict[i] = f_dict[i - 1] + f_dict[i - 2] 16 | return f_dict[N - 1] 17 | 18 | 19 | so = Solution() 20 | print(so.fib(4)) 21 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_8.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/7/16 11:38 3 | # @Author: GraceKoo 4 | # @File: interview_8.py 5 | # @Desc: https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&rp=1&ru=%2Fta%2Fcoding-interviews&qr 6 | # u=%2Fta%2Fcoding-interviews%2Fquestion-ranking 7 | 8 | 9 | class Solution: 10 | def climbStairs(self, n: int) -> int: 11 | if 0 <= n <= 2: 12 | return n 13 | dp = [i for i in range(n)] 14 | dp[0] = 1 15 | dp[1] = 2 16 | for i in range(2, n): 17 | dp[i] = dp[i - 1] + dp[i - 2] 18 | return dp[-1] 19 | 20 | 21 | so = Solution() 22 | print(so.climbStairs(3)) 23 | -------------------------------------------------------------------------------- /Codes/gracekoo/interview_9.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/5/26 12:35 3 | # @Author: GraceKoo 4 | # @File: interview_9.py 5 | # @Desc: https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387?tpId=13&tqId=11162&tPage=1&rp=1&ru=/ta/ 6 | # coding-interviews&qru=/ta/coding-interviews/question-ranking 7 | 8 | 9 | class Solution: 10 | def jumpFloorII(self, number): 11 | # write code here 12 | if number <= 1: 13 | return number 14 | n = 1 15 | for i in range(2, number + 1): 16 | n = 2 * n 17 | return n 18 | -------------------------------------------------------------------------------- /Codes/gracekoo/test.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Time: 2020/11/8 23:47 3 | # @Author: GraceKoo 4 | # @File: test.py 5 | # @Desc: 6 | from threading import Thread 7 | import time 8 | 9 | 10 | def print_numbers(): 11 | time.sleep(0.2) 12 | print("子线程结束") 13 | 14 | 15 | if __name__ == "__main__": 16 | t1 = Thread(target=print_numbers) 17 | t1.setDaemon(True) 18 | t1.start() 19 | # print("主线程结束") 20 | -------------------------------------------------------------------------------- /Codes/hubert932/README.md: -------------------------------------------------------------------------------- 1 | hubert932 2 | -------------------------------------------------------------------------------- /Codes/jxdeng3264/000-100/7.Reverse-Integer/tango.cpp: -------------------------------------------------------------------------------- 1 | // author: tango 2 | // time: 2019.03.20 3 | class Solution { 4 | public: 5 | int reverse(int x) { 6 | int flag = 1; 7 | int ret = 0; 8 | if (x < 0) { 9 | flag = 0; 10 | x = -x; 11 | } 12 | 13 | long long int before = 0; 14 | while (x) { 15 | before = ret; 16 | ret = ret * 10 + x%10; 17 | if (ret < 10*before) 18 | { 19 | ret = 0; 20 | break; 21 | } 22 | 23 | x = x/10; 24 | } 25 | if (flag==0) 26 | ret = -ret; 27 | return ret; 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /Codes/jxdeng3264/1001-1100/1012.Complement-of-Base-10-Integer/tango.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int bitwiseComplement(int N) { 4 | if (N==0) return 1; 5 | 6 | int tn = N; 7 | tn ^= 0xFFFFFFFF; 8 | unsigned int cmp = 0x80000000; 9 | while (tn & cmp) 10 | { 11 | tn ^= cmp; 12 | cmp >>= 1; 13 | } 14 | 15 | return tn; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /Codes/jxdeng3264/1001-1100/core: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/jxdeng3264/1001-1100/core -------------------------------------------------------------------------------- /Codes/jxdeng3264/101-200/112.Path-Sum/tango.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | bool hasPathSum(TreeNode* root, int sum) { 13 | if (!root) return false; 14 | else if (!root->left && !root->right && root->val == sum) return true; 15 | else 16 | return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val); 17 | } 18 | }; -------------------------------------------------------------------------------- /Codes/jxdeng3264/201-300/238.Product-of-Array-Except-Self/tango.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | vector productExceptSelf(vector& nums) { 4 | vector res(nums.size(), 1); 5 | for (int i = 1; i < nums.size(); ++i) { 6 | res[i] = res[i - 1] * nums[i - 1]; 7 | } 8 | int right = 1; 9 | for (int i = nums.size() - 1; i >= 0; --i) { 10 | res[i] *= right; 11 | right *= nums[i]; 12 | } 13 | return res; 14 | } 15 | }; -------------------------------------------------------------------------------- /Codes/jxdeng3264/201-300/275.H-Index-II/tango.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int hIndex(vector& citations) { 4 | //sort(citations.begin(), citations.end()); 5 | int m = 0; 6 | int M = 0; 7 | int L = 0; 8 | int N = citations.size(); 9 | int H = N - 1; 10 | while (L <= H) { 11 | M = L + (H - L)/2; 12 | m = std::max(m, std::min(citations[M], N - M)); 13 | if (citations[M] < N-M) 14 | L = M + 1; 15 | else 16 | H = M - 1; 17 | 18 | } 19 | return m; 20 | } 21 | }; -------------------------------------------------------------------------------- /Codes/jxdeng3264/301-400/303.Range-Sum-Query-Immutable/Solution.cpp: -------------------------------------------------------------------------------- 1 | class NumArray { 2 | public: 3 | NumArray(vector nums) { 4 | m_nums = nums; 5 | for(int i=1; i m_nums; 18 | }; 19 | 20 | /** 21 | * Your NumArray object will be instantiated and called as such: 22 | * NumArray obj = new NumArray(nums); 23 | * int param_1 = obj.sumRange(i,j); 24 | */ 25 | -------------------------------------------------------------------------------- /Codes/jxdeng3264/401-500/442.Find-All-Duplicates-in-an-Array/Solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | vector findDuplicates(vector& nums) { 4 | vector tvec; 5 | 6 | tvec.resize(nums.size()+1); 7 | 8 | for(vector::iterator it=nums.begin(); it!=nums.end(); ++it) 9 | { 10 | tvec[*it]++; 11 | } 12 | 13 | vector ret; 14 | for (int i=1; i& nums, int k) { 6 | double res = 0; 7 | if (nums.size()res) 16 | res = win; 17 | } 18 | return res/k; 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /Codes/jxdeng3264/601-700/657.Robot-Return-to-Origin/Solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | bool judgeCircle(string moves) { 4 | int nu = 0; 5 | int nd = 0; 6 | int nl = 0; 7 | int nr = 0; 8 | for (int i = 0; i < moves.length(); ++i) { 9 | if (moves[i] == 'U') nu++; 10 | if (moves[i] == 'D') nd++; 11 | if (moves[i] == 'L') nl++; 12 | if (moves[i] == 'R') nr++; 13 | } 14 | 15 | if (nu == nd && nl == nr) return true; 16 | return false; 17 | } 18 | }; -------------------------------------------------------------------------------- /Codes/jxdeng3264/701-800/709.To-Lower-Case/Solution.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | string toLowerCase(string str) { 4 | for (int i=0; i 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Codes/liuxiaohui/001-towsum/TowSum.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] twoSum(int[] nums, int target) { 3 | for(int i=0;i ans else ans 8 | - set包含s[j], set 删除s[i], i += 1 9 | 3. ans就是最大子串的长度 10 | 11 | 12 | ## Code 13 | 14 | ```python 15 | def solution(s): 16 | ans = i = j = 0 17 | ss = set() 18 | length = len(s) 19 | 20 | while i < length and j < length: 21 | if s[j] in ss: 22 | ss.remove(s[i]) 23 | i += 1 24 | else: 25 | ss.add(s[j]) 26 | j+=1 27 | ans = (j - i) if (j - i) > ans else ans 28 | 29 | return ans 30 | ``` -------------------------------------------------------------------------------- /Codes/mggger/leetcode/7_reverse_integer.md: -------------------------------------------------------------------------------- 1 | # 思路 2 | 对输入进行递归, 递归结束条件, 3 | 1. 输入 = 0, 返回输出 4 | 2. 递归的过程中如果输出小于-2 ^ 31 或者 大于2^31 - 1, 返回0 5 | 6 | 7 | ## 代码 8 | 9 | ```python3 10 | def solution(x): 11 | return -1 * walk(x * -1) if x < 0 else walk(x) 12 | 13 | 14 | def walk(input, output=0, stage=0): 15 | if output < pow(-2, 31) or output > pow(2, 31) - 1: 16 | return 0 17 | 18 | if input == 0: 19 | return output 20 | 21 | _end = input % 10 22 | _begin = int((input - _end) / 10) 23 | 24 | return walk(_begin, 10 * output + _end, stage) if stage else walk(_begin, _end, 1) 25 | 26 | 27 | print(solution(123)) 28 | ``` -------------------------------------------------------------------------------- /Codes/mggger/leetcode/9_palindrome_number.md: -------------------------------------------------------------------------------- 1 | # 思路 2 | 3 | 转成字符串, 判断逆序后是否相等 4 | 5 | 6 | # 代码 7 | 8 | ```python3 9 | def isPalindrome(x: int) -> bool: 10 | return str(x) == str(x)[::-1] 11 | ``` -------------------------------------------------------------------------------- /Codes/mggger/leetcode/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/mggger/leetcode/images/2.png -------------------------------------------------------------------------------- /Codes/molinchn/337.打家劫舍III.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int dfs(TreeNode* root, int& l, int& r) { 13 | if (root == nullptr) { 14 | return 0; 15 | } 16 | int ll = 0, rr = 0, lr = 0, rl = 0; 17 | l = dfs(root->left, ll, lr); 18 | r = dfs(root->right, rl, rr); 19 | return max(root->val + ll + lr + rl + rr, l + r); 20 | } 21 | int rob(TreeNode* root) { 22 | int l = 0, r = 0; 23 | return dfs(root, l, r); 24 | } 25 | }; -------------------------------------------------------------------------------- /Codes/molinchn/README.md: -------------------------------------------------------------------------------- 1 | ### 简介 2 | 3 | 刷题使用语言:**C++** 4 | 5 | 6 | 7 | ### 题目列表 8 | 9 | | 题目 | 其他 | 10 | | ----------- | ---- | 11 | | 1. 两数之和 | | 12 | | 2. 两数相加 | | 13 | | | | 14 | | | | 15 | 16 | ### 每日一题系列 17 | 18 | | 日期 | 题目 | 19 | | ------------ | ---- | 20 | | 2020年8月3日 | | 21 | 22 | 23 | 24 | ### 剑指offer系列 25 | 26 | -------------------------------------------------------------------------------- /Codes/mrright2019/11.container-with-most-water/Soultion.py: -------------------------------------------------------------------------------- 1 | class Solution(object): 2 | def maxArea(self, height): 3 | """ 4 | :type height: List[int] 5 | :rtype: int 6 | """ 7 | i, j = 0, len(height) - 1 8 | res = 0 9 | if len(height) <= 1: 10 | return -1 11 | while i < j: 12 | h = min([height[i], height[j]]) 13 | res = max([(j - i) * h, res]) 14 | if height[i] > height[j]: 15 | j -= 1 16 | else: 17 | i += 1 18 | return res 19 | -------------------------------------------------------------------------------- /Codes/mrright2019/14.longest-common-prefix/Solution.py: -------------------------------------------------------------------------------- 1 | class Solution(object): 2 | def longestCommonPrefix(self, strs): 3 | """ 4 | :type strs: List[str] 5 | :rtype: str 6 | """ 7 | if not strs: 8 | return "" 9 | min_length = min([len(x) for x in strs]) 10 | for l in range(0, min_length): 11 | for s in strs: 12 | if s[l] != strs[0][l]: 13 | return strs[0][:l] 14 | return strs[0][:min_length] 15 | -------------------------------------------------------------------------------- /Codes/mrright2019/1_two_num_sum/Soultion.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | class Solution { 3 | public: 4 | vector twoSum(vector& nums, int target) { 5 | map tempmap; 6 | vector result; 7 | for (int i = 0; i= 0 else -int(str(x)[1:][::-1]) 8 | if g < -2147483648 or g > 2147483648 - 1: 9 | return 0 10 | return g 11 | -------------------------------------------------------------------------------- /Codes/mrright2019/README.md: -------------------------------------------------------------------------------- 1 | mrright2019 2 | -------------------------------------------------------------------------------- /Codes/oh-mybug/201-1367/Solution_1240.java: -------------------------------------------------------------------------------- 1 | /** 2 | * ClassName: Solution_1240 3 | * Date: 2020/4/15 23:56 4 | * author: Oh_MyBug 5 | * version: V1.0 6 | */ 7 | public class Solution_1240 { 8 | // public static void main(java.lang.String[] args) { 9 | // System.out.println(tilingRectangle(11, 13)); 10 | // } 11 | // public static int tilingRectangle(int n, int m) { 12 | // 13 | // } 14 | // public static int recursion(int V, int maxL, int count, int minCount){ 15 | // if (V == 0 && ) 16 | // } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/10.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/11.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/12.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/13.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/14.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/15.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/16.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/17.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/18.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/19.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/20.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/22.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/23.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/24.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/25.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/26.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/27.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/28.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/29.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/3.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/30.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/31.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/32.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/33.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/34.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/35.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/36.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/37.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/38.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/39.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/4.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/40.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/41.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/42.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/43.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/44.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/45.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/46.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/47.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/48.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/49.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/50.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/51.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/52.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/6.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/7.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/8.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/DP/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/DP/9.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/10.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/11.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/12.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/13.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/14.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/15.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/16.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/17.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/18.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/19.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/2.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/20.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/21.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/22.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/23.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/24.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/25.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/26.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/27.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/28.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/29.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/30.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/31.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/32.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/33.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/35.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/36.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/37.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/4.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/5.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/6.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/7.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/8.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/KMP/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/KMP/9.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/1.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/10.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/11.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/12.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/13.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/14.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/15.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/16.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/2.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/3.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/4.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/5.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/6.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/7.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/8.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/9.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/code.png -------------------------------------------------------------------------------- /Codes/oh-mybug/images/Morris/code1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Codes/oh-mybug/images/Morris/code1.png -------------------------------------------------------------------------------- /Codes/purebaba/1_two_sum/two_sum.js: -------------------------------------------------------------------------------- 1 | // https://leetcode.com/problems/two-sum/ 2 | 3 | let twoSum = function (nums, target) { 4 | let map = {}; 5 | for (let i = 0; i < nums.length; i++) { 6 | let p = target - nums[i]; 7 | let j = map[p]; 8 | if (j !== undefined && j !== i) { 9 | return [j, i] 10 | } 11 | map[nums[i]] = i; 12 | } 13 | return [] 14 | }; 15 | -------------------------------------------------------------------------------- /Codes/purebaba/README.md: -------------------------------------------------------------------------------- 1 | purebaba 2 | -------------------------------------------------------------------------------- /Codes/shengyaqingfeng/.gitignore: -------------------------------------------------------------------------------- 1 | *.json 2 | leetcode/editor/cn/cmake-build-debug 3 | leetcode/editor/cn/doc 4 | leetcode/editor/cn/test* 5 | leetcode/editor/cn/CMakeLists.txt -------------------------------------------------------------------------------- /Codes/shenjinxin/README.md: -------------------------------------------------------------------------------- 1 | shenjinxin 2 | -------------------------------------------------------------------------------- /Codes/stardrewer/1217_play-with-chips/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func min(a, b int) int { 6 | if a <= b { 7 | return a 8 | } 9 | return b 10 | } 11 | func minCostToMoveChips(chips []int) int { 12 | even, odd := 0, 0 13 | for _, v := range chips { 14 | if v%2 == 1 { 15 | even++ 16 | } else { 17 | odd++ 18 | } 19 | } 20 | return min(even, odd) 21 | 22 | } 23 | func main() { 24 | fmt.Println(minCostToMoveChips([]int{1, 2, 3}) == 1) 25 | fmt.Println(minCostToMoveChips([]int{2, 2, 2, 3, 3}) == 2) 26 | fmt.Println(minCostToMoveChips([]int{1, 2, 2, 2, 2}) == 1) 27 | } 28 | -------------------------------------------------------------------------------- /Codes/stardrewer/1480_running-sum-of-1d-array/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func runningSum(nums []int) []int { 4 | for i := 1; i < len(nums); i++ { 5 | nums[i] += nums[i-1] 6 | } 7 | return nums 8 | } 9 | -------------------------------------------------------------------------------- /Codes/stardrewer/1588_sum-of-all-odd-length-subarrays/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | func sumOddLengthSubarrays(arr []int) (res int) { 8 | for i := 1; i <= len(arr); i += 2 { 9 | // 奇数子数组长度i 10 | 11 | // 滑动窗口 12 | for j := 0; j+i <= len(arr); j++ { 13 | for k := j; k < j+i; k++ { 14 | res += arr[k] 15 | } 16 | } 17 | } 18 | return 19 | } 20 | 21 | func main() { 22 | fmt.Println(sumOddLengthSubarrays([]int{1, 4, 2, 5, 3})) 23 | fmt.Println(sumOddLengthSubarrays([]int{1, 2})) 24 | fmt.Println(sumOddLengthSubarrays([]int{10, 11, 12})) 25 | fmt.Println(sumOddLengthSubarrays([]int{})) 26 | } 27 | -------------------------------------------------------------------------------- /Codes/stardrewer/1_two-sum/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func twoSum(nums []int, target int) []int { 6 | // 8 ms, 4.1 MB -> 4 ms, 3.8 MB 7 | numsHashMap := make(map[int]int) 8 | 9 | // 对于数组的每一个元素v,检查target-v是否在HashMap内 10 | // 参考排名前列的答案,将先加载到哈希然后判断,合成为1步,简直神来之笔 11 | for k, v := range nums { 12 | if x, ok := numsHashMap[target-v]; ok { 13 | return []int{k, x} 14 | } 15 | numsHashMap[v] = k 16 | } 17 | return nil 18 | } 19 | 20 | func main() { 21 | fmt.Println(twoSum([]int{2, 7, 11, 15}, 9)) 22 | fmt.Println(twoSum([]int{1, 1, 3, 1, 3}, 6)) 23 | fmt.Println(twoSum([]int{3, 2, 4}, 6)) 24 | fmt.Println(twoSum([]int{-1, -2, -3, -4, -5}, -8)) 25 | } 26 | -------------------------------------------------------------------------------- /Codes/stardrewer/27_remove-element/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func removeElement(nums []int, val int) int { 6 | 7 | for i := 0; i < len(nums); { 8 | if nums[i] == val { 9 | nums = append(nums[:i], nums[i+1:]...) 10 | } else { 11 | i++ 12 | } 13 | } 14 | return len(nums) 15 | } 16 | func main() { 17 | i1, val1 := []int{1, 2, 2, 1}, 1 18 | fmt.Println(i1[:removeElement(i1, val1)]) 19 | 20 | i2, val2 := []int{0, 1, 2, 2, 3, 0, 4, 2}, 2 21 | fmt.Println(i2[:removeElement(i2, val2)]) 22 | } 23 | -------------------------------------------------------------------------------- /Codes/stardrewer/35_search-insert-position/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func searchInsert(nums []int, target int) int { 6 | for k, v := range nums { 7 | if target <= v { 8 | return k 9 | } 10 | } 11 | return len(nums) 12 | } 13 | 14 | func main() { 15 | fmt.Println(searchInsert([]int{1, 3, 5, 6}, 5) == 2) 16 | fmt.Println(searchInsert([]int{1, 3, 5, 6}, 7) == 4) 17 | } 18 | -------------------------------------------------------------------------------- /Codes/stardrewer/509_fibonacci-number/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | func fib(N int) int { 6 | // 0 ms, 1.9 MB 7 | // 递推法求斐波那契 8 | if N == 0 { 9 | return 0 10 | } 11 | n1, n2 := 0, 1 // n1为n-1,n2为n-2 12 | for i := 1; i < N; i++ { 13 | n1, n2 = n1+n2, n1 14 | } 15 | return n1 + n2 16 | } 17 | 18 | func main() { 19 | for i := 0; i < 10; i++ { 20 | fmt.Printf("%d ", fib(i)) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/stardrewer/53_maximum-subarray/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func max(a, b int) int { 4 | if a > b { 5 | return a 6 | } 7 | return b 8 | } 9 | 10 | func maxSubArray(nums []int) int { 11 | if len(nums) == 0 { 12 | return 0 13 | } 14 | 15 | sum := nums[0] 16 | for i := 1; i < len(nums); i++ { 17 | if nums[i-1] > 0 { 18 | nums[i] += nums[i-1] 19 | } 20 | sum = max(nums[i], sum) 21 | } 22 | return sum 23 | } 24 | -------------------------------------------------------------------------------- /Codes/stardrewer/53_maximum-subarray/solve_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "testing" 4 | 5 | func TestMaxSubArray(t *testing.T) { 6 | cases := [][]interface{}{ 7 | {[]int{-2, 1, -3, 4, -1, 2, 1, -5, 4}, 6}, 8 | } 9 | 10 | for _, c := range cases { 11 | in, expect := c[0].([]int), c[1].(int) 12 | 13 | if res := maxSubArray(in); res != expect { 14 | t.Errorf("function(%v): %v != %v", in, res, expect) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/stardrewer/66_plus-one/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func plusOne(digits []int) []int { 4 | tmp := 1 5 | for i := len(digits) - 1; i >= 0; i-- { 6 | if tmp != 0 { 7 | digits[i], tmp = (digits[i]+tmp)%10, (digits[i]+tmp)/10 8 | } 9 | } 10 | if tmp == 1 { 11 | digits = append([]int{1}, digits...) 12 | } 13 | return digits 14 | } 15 | -------------------------------------------------------------------------------- /Codes/stardrewer/66_plus-one/solve_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "reflect" 5 | "testing" 6 | ) 7 | 8 | func TestPlusOne(t *testing.T) { 9 | cases := [][][]int{ 10 | {[]int{0}, []int{1}}, 11 | {[]int{1}, []int{2}}, 12 | {[]int{9}, []int{1, 0}}, 13 | {[]int{9, 9, 9}, []int{1, 0, 0, 0}}, 14 | {[]int{1, 2, 3}, []int{1, 2, 4}}, 15 | {[]int{4, 3, 2, 1}, []int{4, 3, 2, 2}}, 16 | } 17 | 18 | for _, c := range cases { 19 | in, expect := c[0], c[1] 20 | 21 | if res := plusOne(in); !reflect.DeepEqual(res, expect) { 22 | t.Errorf("function(%v): %v != %v", in, res, expect) 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Codes/stardrewer/67_add-binary/solve_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "testing" 4 | 5 | func TestAddBinary(t *testing.T) { 6 | cases := map[string][]string{ 7 | "case1": {"11", "1", "100"}, 8 | "case2": {"1010", "1011", "10101"}, 9 | } 10 | for _, v := range cases { 11 | in1, in2, except := v[0], v[1], v[2] 12 | 13 | if res := addBinary(in1, in2); res != except { 14 | t.Errorf("function(%v, %v): %v != %v", in1, in2, res, except) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/stardrewer/70_climbing-stairs/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | var cache = []int{0, 1, 2} 6 | 7 | func climbStairs(n int) int { 8 | if n < len(cache) { 9 | return cache[n] 10 | } 11 | for i := len(cache); i <= n; i++ { 12 | cache = append(cache, cache[i-1]+cache[i-2]) 13 | } 14 | return cache[n] 15 | } 16 | 17 | func main() { 18 | fmt.Println(climbStairs(5)) 19 | } 20 | -------------------------------------------------------------------------------- /Codes/stardrewer/80_remove-duplicates-from-sorted-array-ii/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func removeDuplicates(nums []int) int { 4 | var res int 5 | if len(nums) <= 1 { 6 | res = len(nums) 7 | } 8 | //双指针,i为存储计算结果,j为读取输入 9 | for i, j := 1, 1; j < len(nums); { 10 | //最后一位直接跳出 11 | if j == len(nums)-1 { 12 | nums[i] = nums[j] 13 | res = i + 1 14 | break 15 | } 16 | //如果j的左右值相等,就跳过 17 | if nums[j-1] == nums[j+1] { 18 | j++ 19 | continue 20 | } 21 | nums[i] = nums[j] 22 | i++ 23 | j++ 24 | } 25 | return res 26 | } 27 | -------------------------------------------------------------------------------- /Codes/stardrewer/83_remove-duplicates-from-sorted-list/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | // ListNode you know. 4 | type ListNode struct { 5 | Val int 6 | Next *ListNode 7 | } 8 | 9 | func deleteDuplicates(head *ListNode) *ListNode { 10 | pre := &ListNode{0, head} 11 | for head != nil { 12 | if head.Next != nil && head.Val == head.Next.Val { 13 | head.Next = head.Next.Next 14 | } else { 15 | head = head.Next //这里很坑啊,因为不一定只重复一次,所以只有不重复的时候往下一位走才正确 16 | } 17 | } 18 | return pre.Next 19 | } 20 | -------------------------------------------------------------------------------- /Codes/stardrewer/88_merge-sorted-array/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | //Leetcode官方解思路是真的精妙啊~ 4 | func merge(nums1 []int, m int, nums2 []int, n int) { 5 | p := len(nums1) - 1 6 | m, n = m-1, n-1 7 | for p >= 0 { 8 | if n >= 0 && (m < 0 || nums1[m] <= nums2[n]) { 9 | nums1[p] = nums2[n] 10 | p-- 11 | n-- 12 | } 13 | 14 | if m >= 0 && (n < 0 || nums1[m] > nums2[n]) { 15 | nums1[p] = nums1[m] 16 | p-- 17 | m-- 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/stardrewer/README.md: -------------------------------------------------------------------------------- 1 | ## LeetCode刷题计划 2 | 3 | ### 关于 4 | - 在职, 通过刷题锻炼算法水平 5 | - 最近在学 C++, 想锻炼下熟练度 6 | - leetcode-cn [stardrewer](https://leetcode-cn.com/u/stardrewer) 7 | - GitHub [stardrewer](https://github.com/stardrewer) 8 | 9 | ### 语言 10 | - C++ 11 | - Golang 12 | - Python 13 | -------------------------------------------------------------------------------- /Codes/stardrewer/offer10/solve.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "fmt" 4 | 5 | var cache = []int{0, 1} 6 | 7 | func fib(n int) int { 8 | if n < len(cache) { 9 | return cache[n] 10 | } 11 | var tmp int 12 | for i := len(cache); i <= n; i++ { 13 | tmp = cache[i-1] + cache[i-2] 14 | if tmp > 1e9 { 15 | tmp %= (1e9 + 7) 16 | } 17 | cache = append(cache, tmp) 18 | } 19 | return cache[n] 20 | } 21 | 22 | func main() { 23 | fmt.Println(fib(100)) 24 | } 25 | -------------------------------------------------------------------------------- /Codes/stardrewer/offer11/solve.go: -------------------------------------------------------------------------------- 1 | //English description is not available for the problem. Please switch to 2 | //Chinese. Related Topics 数组 二分查找 👍 413 👎 0 3 | 4 | package main 5 | 6 | //leetcode submit region begin(Prohibit modification and deletion) 7 | func minArray(numbers []int) int { 8 | if len(numbers) == 0 { 9 | return 0 10 | } 11 | for i := 0; i < len(numbers)-1; i++ { 12 | if numbers[i] > numbers[i+1] { 13 | return numbers[i+1] 14 | } 15 | } 16 | return numbers[0] 17 | } 18 | 19 | //leetcode submit region end(Prohibit modification and deletion) 20 | 21 | func main() { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Codes/thank037/README.md: -------------------------------------------------------------------------------- 1 | ### LeetCode刷题 2 | 3 | --- 4 | 5 | language: 6 | - Java 7 | - Golang 8 | -------------------------------------------------------------------------------- /Codes/xiaohong2019/README.md: -------------------------------------------------------------------------------- 1 | ## leetcode刷题活动 2 | > https://leetcode.com/problemset/all 官网 -------------------------------------------------------------------------------- /Codes/yore/base/ListNode.java: -------------------------------------------------------------------------------- 1 | package com.yore.base; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/7 20:48 6 | * @description 7 | */ 8 | public class ListNode { 9 | public int val; 10 | public ListNode next; 11 | 12 | public ListNode() { 13 | } 14 | 15 | public ListNode(int val) { 16 | this.val = val; 17 | } 18 | 19 | public ListNode(int val, ListNode next) { 20 | this.val = val; 21 | this.next = next; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/base/Node.java: -------------------------------------------------------------------------------- 1 | package com.yore.base; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/17 9:40 6 | * @description 7 | */ 8 | public class Node { 9 | public int val; 10 | public Node left; 11 | public Node right; 12 | public Node next; 13 | 14 | public Node() { 15 | } 16 | 17 | public Node(int _val) { 18 | val = _val; 19 | } 20 | 21 | public Node(int _val, Node _left, Node _right, Node _next) { 22 | val = _val; 23 | left = _left; 24 | right = _right; 25 | next = _next; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Codes/yore/base/Template.java: -------------------------------------------------------------------------------- 1 | package com.yore.base; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/4/18 11:42 6 | * @description 模板: 包含常用函数 7 | */ 8 | public class Template { 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Codes/yore/base/TreeNode.java: -------------------------------------------------------------------------------- 1 | package com.yore.base; 2 | 3 | 4 | /** 5 | * @author jia bing wen 6 | * @date 2021/4/15 9:08 7 | * @description 8 | */ 9 | public class TreeNode { 10 | public int val; 11 | public TreeNode left; 12 | public TreeNode right; 13 | 14 | public TreeNode() { 15 | } 16 | 17 | public TreeNode(int val) { 18 | this.val = val; 19 | } 20 | 21 | public TreeNode(int val, TreeNode left, TreeNode right) { 22 | this.val = val; 23 | this.left = left; 24 | this.right = right; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/easy/Interview0207.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/7/23 10:09 8 | * @description 9 | */ 10 | public class Interview0207 { 11 | public ListNode getIntersectionNode(ListNode headA, ListNode headB) { 12 | ListNode node1 = headA; 13 | ListNode node2 = headB; 14 | 15 | while (node1 != node2) { 16 | node1 = node1 != null ? node1.next : headB; 17 | node2 = node2 != null ? node2.next : headA; 18 | } 19 | return node1; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Interview0806.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/6/7 8:55 8 | * @description 9 | */ 10 | public class Interview0806 { 11 | public void hanota(List A, List B, List C) { 12 | hanota(A.size(), A, B, C); 13 | } 14 | 15 | public void hanota(int n, List A, List B, List C) { 16 | if (n < 1) { 17 | return; 18 | } 19 | hanota(n - 1, A, C, B); 20 | C.add(0, A.remove(0)); 21 | hanota(n - 1, B, A, C); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/easy/Interview1605.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/6/6 19:05 6 | * @description 7 | */ 8 | public class Interview1605 { 9 | public int trailingZeroes(int n) { 10 | int count = 0; 11 | while (n > 0) { 12 | count += n / 5; 13 | n /= 5; 14 | } 15 | return count; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number101.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/4/26 10:13 8 | * @description 9 | */ 10 | public class Number101 { 11 | 12 | 13 | public boolean isSymmetric(TreeNode root) { 14 | return isSym(root, root); 15 | } 16 | 17 | public boolean isSym(TreeNode t1, TreeNode t2) { 18 | if (t1 == null && t2 == null) { 19 | return true; 20 | } 21 | if (t1 == null || t2 == null) { 22 | return false; 23 | } 24 | return (t1.val == t2.val) && isSym(t1.left, t2.right) && isSym(t1.right, t2.left); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number104.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/4/28 16:30 8 | * @description 9 | */ 10 | public class Number104 { 11 | public int maxDepth(TreeNode root) { 12 | return getDepth(root); 13 | } 14 | 15 | public int getDepth(TreeNode root){ 16 | if(root ==null){ 17 | return 0; 18 | } 19 | return Math.max(getDepth(root.left)+1,getDepth(root.right)+1); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number105.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/6/13 8:35 6 | * @description 7 | */ 8 | public class Number105 { 9 | public int heightChecker(int[] heights) { 10 | int[] count = new int[101]; 11 | for (int height : heights) { 12 | count[height]++; 13 | } 14 | int ans = 0; 15 | int idx = 0; 16 | for (int i = 0; i < 101; i++) { 17 | while (count[i]-- > 0) { 18 | if (heights[idx++] != i) { 19 | ans++; 20 | } 21 | } 22 | } 23 | return ans; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1108.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/6/21 8:31 6 | * @description 7 | */ 8 | public class Number1108 { 9 | public String defangIPaddr(String address) { 10 | return address.replaceAll("\\.", "[\\.]"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1137.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/22 11:02 6 | * @description 7 | */ 8 | public class Number1137 { 9 | public int tribonacci(int n) { 10 | if (n == 0) { 11 | return 0; 12 | } 13 | if (n == 1) { 14 | return 1; 15 | } 16 | int t1 = 0; 17 | int t2 = 1; 18 | int t3 = 1; 19 | int tmp1, tmp2; 20 | for (int i = 3; i <= n; i++) { 21 | tmp1 = t2; 22 | tmp2 = t3; 23 | t3 = t1 + t2 + t3; 24 | t2 = tmp2; 25 | t1 = tmp1; 26 | } 27 | return t3; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number121.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/2/24 15:15 6 | * @description 7 | */ 8 | public class Number121 { 9 | public int maxProfit(int[] prices) { 10 | int profit = 0; 11 | int minIdx = 0; 12 | for (int i = 1; i < prices.length; i++) { 13 | profit = Math.max(profit, prices[i] - prices[minIdx]); 14 | minIdx = prices[i] < prices[minIdx] ? i : minIdx; 15 | } 16 | return profit; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1217.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/7/8 9:54 6 | * @description 7 | */ 8 | public class Number1217 { 9 | public int minCostToMoveChips(int[] position) { 10 | int oddValue = 0; 11 | int evenValue = 0; 12 | for (int i = 0; i < position.length; i++) { 13 | if (position[i] % 2 == 0) { 14 | oddValue++; 15 | } else { 16 | evenValue++; 17 | } 18 | } 19 | return Math.min(oddValue, evenValue); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1332.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/22 10:53 6 | * @description 7 | */ 8 | public class Number1332 { 9 | public int removePalindromeSub(String s) { 10 | int len = s.length(); 11 | int right = len / 2; 12 | int left = len % 2 == 0 ? right - 1 : right; 13 | while (left >= 0 && right < len) { 14 | if (s.charAt(left) == s.charAt(right)) { 15 | left--; 16 | right++; 17 | } else { 18 | return 2; 19 | } 20 | } 21 | return 1; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1486.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/7 8:18 6 | * @description 7 | */ 8 | public class Number1486 { 9 | public int xorOperation(int n, int start) { 10 | int result = start; 11 | for (int i = 1; i < n; i++) { 12 | result = result ^ (start + 2 * i); 13 | } 14 | return result; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1672.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/4/14 9:36 6 | * @description 7 | */ 8 | public class Number1672 { 9 | public int maximumWealth(int[][] accounts) { 10 | int max = 0; 11 | int row = accounts.length; 12 | int col = accounts[0].length; 13 | for (int i = 0; i < row; i++) { 14 | int sum = 0; 15 | for (int j = 0; j < col; j++) { 16 | sum += accounts[i][j]; 17 | } 18 | max = Math.max(max, sum); 19 | } 20 | return max; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1688.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/25 10:31 6 | * @description 7 | */ 8 | public class Number1688 { 9 | public int numberOfMatches(int n) { 10 | int count = 0; 11 | while (n != 1) { 12 | int t = n / 2; 13 | if (n % 2 != 0) { 14 | n = t + 1; 15 | } else { 16 | n = t; 17 | } 18 | count += t; 19 | } 20 | return count; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number172.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/15 9:42 6 | * @description 7 | */ 8 | public class Number172 { 9 | public int trailingZeroes(int n) { 10 | int res = 0; 11 | long divisor = 5; 12 | while (divisor <= n) { 13 | res += n / divisor; 14 | divisor *= 5; 15 | } 16 | return res; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number1720.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/6 15:43 6 | * @description 7 | */ 8 | public class Number1720 { 9 | 10 | 11 | public static int[] decode(int[] encoded, int first) { 12 | int[] decode = new int[encoded.length + 1]; 13 | decode[0] = first; 14 | for (int i = 0; i < encoded.length; i++) { 15 | decode[i + 1] = encoded[i] ^ decode[i]; 16 | } 17 | return decode; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number191.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/15 9:14 6 | * @description 7 | */ 8 | public class Number191 { 9 | public int hammingWeight(int n) { 10 | int count = 0; 11 | while (n != 0) { 12 | n &= (n - 1); 13 | count++; 14 | } 15 | return count; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number217.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | /** 7 | * @author Yore 8 | * @date 2022/4/24 9:19 9 | * @description 10 | */ 11 | public class Number217 { 12 | public boolean containsDuplicate(int[] nums) { 13 | Set set = new HashSet<>(); 14 | for (int num : nums) { 15 | if (set.contains(num)) { 16 | return true; 17 | } 18 | set.add(num); 19 | } 20 | return false; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number219.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | /** 7 | * @author Yore 8 | * @date 2022/1/19 9:46 9 | * @description 10 | */ 11 | public class Number219 { 12 | public boolean containsNearbyDuplicate(int[] nums, int k) { 13 | Map indexMap = new HashMap<>(); 14 | for (int i = 0; i < nums.length; i++) { 15 | if (indexMap.containsKey(nums[i]) && Math.abs(indexMap.get(nums[i]) - i) <= k) { 16 | return true; 17 | } 18 | indexMap.put(nums[i], i); 19 | } 20 | return false; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number226.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | import java.util.LinkedList; 6 | import java.util.Queue; 7 | import java.util.Stack; 8 | 9 | /** 10 | * @author jia bing wen 11 | * @date 2021/5/17 8:51 12 | * @description 13 | */ 14 | public class Number226 { 15 | public TreeNode invertTree(TreeNode root) { 16 | if (root == null) { 17 | return null; 18 | } 19 | TreeNode left = invertTree(root.left); 20 | root.left = invertTree(root.right); 21 | root.right = left; 22 | return root; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number231.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/31 8:10 6 | * @description 7 | */ 8 | public class Number231 { 9 | public boolean isPowerOfTwo(int n) { 10 | return n > 0 && (n & (n - 1)) == 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number283.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/5 16:02 6 | * @description 7 | */ 8 | public class Number283 { 9 | public void moveZeroes(int[] nums) { 10 | int len = nums.length; 11 | if(len == 0){ 12 | return; 13 | } 14 | int left =0; 15 | int right = 0; 16 | while(right 0 && (n & (n - 1)) == 0 && (n & 0xaaaaaaaa) == 0; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number35.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * Created on 2019/1/29 5 | * 6 | * @author jiabingwen 7 | */ 8 | 9 | public class Number35 { 10 | public static void main(String[] args) { 11 | System.out.println(searchInsert(new int[]{1,3,5,6},2)); 12 | } 13 | 14 | public static int searchInsert(int[] nums, int target) { 15 | for (int i = 0; i < nums.length; i++) { 16 | if (nums[i] >= target) { 17 | return i; 18 | } 19 | } 20 | return nums.length; 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number401.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * @author jia bing wen 8 | * @date 2021/6/21 9:59 9 | * @description 10 | */ 11 | public class Number401 { 12 | public List readBinaryWatch(int turnedOn) { 13 | List res = new ArrayList<>(); 14 | for (int i = 0; i < 12; i++) { 15 | for (int m = 0; m < 60; m++) { 16 | if (Integer.bitCount(i) + Integer.bitCount(m) == turnedOn) { 17 | res.add(i + ":" + (m < 10 ? "0" + m : m)); 18 | } 19 | } 20 | } 21 | return res; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number404.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/5/21 9:20 8 | * @description 9 | */ 10 | public class Number404 { 11 | int sum = 0; 12 | 13 | public int sumOfLeftLeaves(TreeNode root) { 14 | rec(root, 0); 15 | return sum; 16 | } 17 | 18 | public void rec(TreeNode node, int flag) { 19 | if (node == null) { 20 | return; 21 | } 22 | if (node.left == null && node.right == null && flag == 1) { 23 | sum += node.val; 24 | } 25 | rec(node.left, 1); 26 | rec(node.right, 0); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number495.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/10 8:26 6 | * @description 7 | */ 8 | public class Number495 { 9 | public int findPoisonedDuration(int[] timeSeries, int duration) { 10 | int seconds = 0; 11 | int last = 0; 12 | for (int timeSery : timeSeries) { 13 | if (last != 0 && last + duration >= timeSery) { 14 | seconds -= (last + duration - timeSery); 15 | } 16 | seconds += duration; 17 | last = timeSery; 18 | } 19 | return seconds; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number520.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/13 8:32 6 | * @description 7 | */ 8 | public class Number520 { 9 | public boolean detectCapitalUse(String word) { 10 | int upperCounter = 0; 11 | for(char c : word.toCharArray()){ 12 | if(Character.isUpperCase(c)){ 13 | upperCounter++; 14 | } 15 | } 16 | if(Character.isUpperCase(word.charAt(0))){ 17 | return upperCounter==1 || upperCounter == word.length(); 18 | } 19 | return upperCounter ==0; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number53.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/8 8:12 6 | * @description 7 | */ 8 | public class Number53 { 9 | public int maxSubArray(int[] nums) { 10 | int n = nums.length; 11 | int[] dp = new int[n]; 12 | dp[0] = nums[0]; 13 | for (int i = 1; i < n; i++) { 14 | dp[i] = Math.max(nums[i], nums[i] + dp[i - 1]); 15 | } 16 | int res = Integer.MIN_VALUE; 17 | for (int i = 0; i < n; i++) { 18 | res = Math.max(res, dp[i]); 19 | } 20 | return res; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number543.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/6/15 9:55 8 | * @description 9 | */ 10 | public class Number543 { 11 | int max; 12 | 13 | public int diameterOfBinaryTree(TreeNode root) { 14 | max = 1; 15 | dfs(root); 16 | return max - 1; 17 | } 18 | 19 | public int dfs(TreeNode node) { 20 | if (node == null) { 21 | return 0; 22 | } 23 | int left = dfs(node.left); 24 | int right = dfs(node.right); 25 | max = Math.max(left + right + 1, max); 26 | return Math.max(left, right) + 1; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number563.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2021/11/18 9:06 8 | * @description 9 | */ 10 | public class Number563 { 11 | private int sum = 0; 12 | public int findTilt(TreeNode root) { 13 | subTreeSum(root); 14 | return sum; 15 | } 16 | 17 | public int subTreeSum(TreeNode node){ 18 | if(node == null){ 19 | return 0 ; 20 | } 21 | int left = subTreeSum(node.left); 22 | int right = subTreeSum(node.right); 23 | sum += Math.abs(left-right); 24 | return node.val+left+right; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number58.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * Created on 2019/1/29 5 | * 6 | * @author jiabingwen 7 | */ 8 | 9 | public class Number58 { 10 | public static void main(String[] args) { 11 | System.out.println(lengthOfLastWord("HelloWorld")); 12 | } 13 | 14 | public static int lengthOfLastWord(String s) { 15 | if (s.length() == 0) { 16 | return 0; 17 | } 18 | String[] array = s.split(" "); 19 | int length = array.length; 20 | if (length > 0) { 21 | String str = array[length - 1]; 22 | return str.length(); 23 | } 24 | return 0; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number598.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/7 17:03 6 | * @description 7 | */ 8 | public class Number598 { 9 | public int maxCount(int m, int n, int[][] ops) { 10 | int minRow = m; 11 | int minCol = n; 12 | for(int[] op : ops){ 13 | if(op[0]> 1); 15 | if ((long) mid * mid <= x) { 16 | ans = mid; 17 | left = mid + 1; 18 | } else { 19 | right = mid - 1; 20 | } 21 | } 22 | return ans; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number693.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/28 8:13 6 | * @description 7 | */ 8 | public class Number693 { 9 | public static void main(String[] args) { 10 | 11 | 12 | } 13 | 14 | public boolean hasAlternatingBits(int n) { 15 | String bits = Integer.toBinaryString(n); 16 | for(int i=1;i 0) { 12 | if (m < 1 || nums1[m - 1] <= nums2[n - 1]) { 13 | nums1[cursor--] = nums2[n - 1]; 14 | n--; 15 | } else { 16 | nums1[cursor--] = nums1[m - 1]; 17 | m--; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number9.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/4/28 16:55 6 | * @description 7 | */ 8 | public class Number9 { 9 | } 10 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number908.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/4/30 9:00 6 | * @description 7 | */ 8 | public class Number908 { 9 | public int smallestRangeI(int[] nums, int k) { 10 | int min = 100001; 11 | int max = -1; 12 | for (int num : nums) { 13 | min = Math.min(min, num); 14 | max = Math.max(max, num); 15 | } 16 | int val = max - min; 17 | return val <= k * 2 ? 0 : val - k * 2; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Codes/yore/easy/Number933.java: -------------------------------------------------------------------------------- 1 | package com.yore.easy; 2 | 3 | import java.util.Deque; 4 | import java.util.LinkedList; 5 | 6 | /** 7 | * @author Yore 8 | * @date 2022/5/6 8:55 9 | * @description 10 | */ 11 | public class Number933 { 12 | class RecentCounter { 13 | Deque queue; 14 | 15 | public RecentCounter() { 16 | queue = new LinkedList<>(); 17 | } 18 | 19 | public int ping(int t) { 20 | queue.offerLast(t); 21 | while (!queue.isEmpty() && queue.peekFirst() < (t - 3000)) { 22 | queue.pollFirst(); 23 | } 24 | return queue.size(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Codes/yore/hard/Number1501.java: -------------------------------------------------------------------------------- 1 | package com.yore.hard; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/24 10:03 6 | * @description 7 | */ 8 | public class Number1501 { 9 | 10 | public boolean winnerSquareGame(int n) { 11 | return Math.sqrt(n) == Math.floor(Math.sqrt(n)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Codes/yore/hard/Number1510.java: -------------------------------------------------------------------------------- 1 | package com.yore.hard; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/29 9:36 6 | * @description 7 | */ 8 | public class Number1510 { 9 | public boolean winnerSquareGame(int n) { 10 | boolean[] dp = new boolean[n + 1]; 11 | dp[0] = false; 12 | for (int i = 1; i <= n; i++) { 13 | for (int k = 1; k * k <= i; k++) { 14 | if (!dp[i - k * k]) { 15 | dp[i] = true; 16 | break; 17 | } 18 | } 19 | } 20 | return dp[n]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/hard/Number403.java: -------------------------------------------------------------------------------- 1 | package com.yore.hard; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/4/29 19:40 6 | * @description 7 | */ 8 | public class Number403 { 9 | 10 | public static void main(String[] args) { 11 | 12 | } 13 | // 14 | // public static boolean canCross(int[] stones) { 15 | // int length = stones[stones.length - 1]; 16 | // int[] array = new int[length]; 17 | // for (int stone : stones) { 18 | // array[stone] = 1; 19 | // } 20 | // 21 | // 22 | // } 23 | // 24 | // private static boolean stepNext(int step, int[] stones, int index) { 25 | // 26 | // } 27 | } 28 | -------------------------------------------------------------------------------- /Codes/yore/hard/Number810.java: -------------------------------------------------------------------------------- 1 | package com.yore.hard; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/22 8:57 6 | * @description 7 | */ 8 | public class Number810 { 9 | public boolean xorGame(int[] nums) { 10 | if (nums.length % 2 == 0) { 11 | return true; 12 | } 13 | int res = 0; 14 | for (int num : nums) { 15 | res ^= num; 16 | } 17 | return res == 0; 18 | } 19 | 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number1014.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/2/24 15:08 6 | * @description 7 | */ 8 | public class Number1014 { 9 | public int maxScoreSightseeingPair(int[] values) { 10 | int max = Integer.MIN_VALUE; 11 | int len = values.length; 12 | int mx = values[0]; 13 | for (int i = 1; i < len; i++) { 14 | max = Math.max(max, mx + values[i] - i); 15 | mx = Math.max(mx, values[i] + i); 16 | } 17 | return max; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number1038.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2021/11/16 10:49 8 | * @description 9 | */ 10 | public class Number1038 { 11 | private int sum = 0; 12 | public TreeNode bstToGst(TreeNode root) { 13 | traverse(root); 14 | return root; 15 | } 16 | 17 | public void traverse(TreeNode node){ 18 | if(node == null){ 19 | return; 20 | } 21 | traverse(node.right); 22 | sum += node.val; 23 | node.val = sum; 24 | traverse(node.left); 25 | return; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number122.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/2/24 15:24 6 | * @description 7 | */ 8 | public class Number122 { 9 | public int maxProfit(int[] prices) { 10 | int profit = 0; 11 | int cur = prices[0]; 12 | for (int i = 1; i < prices.length; i++) { 13 | if (prices[i] > cur) { 14 | profit += (prices[i] - cur); 15 | } 16 | cur = prices[i]; 17 | } 18 | return profit; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number137.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/8 20:29 6 | * @description 7 | */ 8 | public class Number137 { 9 | public int singleNumber(int[] nums) { 10 | int ans = 0; 11 | for (int i = 0; i < 32; ++i) { 12 | int total = 0; 13 | for (int num: nums) { 14 | total += ((num >> i) & 1); 15 | } 16 | if (total % 3 != 0) { 17 | ans |= (1 << i); 18 | } 19 | } 20 | return ans; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number152.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/28 21:55 6 | * @description 7 | */ 8 | public class Number152 { 9 | public int maxProduct(int[] nums) { 10 | int max = nums[0]; 11 | int maxMulti = nums[0]; 12 | int minMulti = nums[0]; 13 | for (int i = 1; i < nums.length; i++) { 14 | int mx = maxMulti, mn = minMulti; 15 | maxMulti = Math.max(mx * nums[i], Math.max(nums[i], mn * nums[i])); 16 | minMulti = Math.min(mn * nums[i], Math.min(nums[i], mx * nums[i])); 17 | max = Math.max(max, maxMulti); 18 | } 19 | return max; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number153.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/2 9:10 6 | * @description 7 | */ 8 | public class Number153 { 9 | public int findMin(int[] nums) { 10 | int low = 0; 11 | int high = nums.length - 1; 12 | while (low < high) { 13 | int pivot = low + (high - low) / 2; 14 | if (nums[pivot] < nums[high]) { 15 | high = pivot; 16 | } else { 17 | low = pivot + 1; 18 | } 19 | } 20 | return nums[low]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number1877.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | import java.util.Arrays; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/7/20 8:24 8 | * @description 9 | */ 10 | public class Number1877 { 11 | public int minPairSum(int[] nums) { 12 | if (nums == null || nums.length < 2) { 13 | return -1; 14 | } 15 | Arrays.sort(nums); 16 | int length = nums.length; 17 | int index = length / 2; 18 | int minSum = 0; 19 | for (int i = 0; i < index; i++) { 20 | minSum = Math.max(minSum, nums[i] + nums[length - 1 - i]); 21 | } 22 | return minSum; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number198.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/24 10:30 6 | * @description 7 | */ 8 | public class Number198 { 9 | public int rob(int[] nums) { 10 | int n = nums.length; 11 | int[] dp = new int[n + 1]; 12 | dp[0] = 0; 13 | dp[1] = nums[0]; 14 | for (int i = 2; i <= n; i++) { 15 | dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]); 16 | } 17 | return dp[n]; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number2029.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/20 11:07 6 | * @description 7 | */ 8 | public class Number2029 { 9 | public boolean stoneGameIX(int[] stones) { 10 | int[] count = new int[3]; 11 | for (int v : stones) { 12 | count[v % 3]++; 13 | } 14 | return count[0] % 2 == 0 ? !(count[1] == 0 || count[2] == 0) : Math.abs(count[1] - count[2]) > 2; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number215.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | import java.util.PriorityQueue; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/7/16 10:27 8 | * @description 9 | */ 10 | public class Number215 { 11 | public int findKthLargest(int[] nums, int k) { 12 | PriorityQueue queue = new PriorityQueue<>(); 13 | for (int num : nums) { 14 | queue.add(num); 15 | if (queue.size() > k) { 16 | queue.poll(); 17 | } 18 | } 19 | return queue.poll(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number260.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/8 21:08 6 | * @description 7 | */ 8 | public class Number260 { 9 | public int[] singleNumber(int[] nums) { 10 | int xor = 0; 11 | for (int num : nums) { 12 | xor ^= num; 13 | } 14 | int diff = xor == Integer.MIN_VALUE ? xor : xor & (-xor); 15 | int a = 0; 16 | int b = 0; 17 | for (int num : nums) { 18 | if ((num & diff) != 0) { 19 | a ^= num; 20 | } else { 21 | b ^= num; 22 | } 23 | } 24 | return new int[]{a, b}; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number279.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/10 9:20 6 | * @description 7 | */ 8 | public class Number279 { 9 | public int numSquares(int n) { 10 | int[] dp = new int[n + 1]; 11 | for (int i = 1; i <= n; i++) { 12 | int min = Integer.MAX_VALUE; 13 | for (int j = 1; j * j <= i; j++) { 14 | min = Math.min(min, dp[i - j * j]); 15 | } 16 | dp[i] = 1 + min; 17 | } 18 | return dp[n]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number285.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/3/3 9:41 8 | * @description 9 | */ 10 | public class Number285 { 11 | public TreeNode inorderSuccessor(TreeNode root, TreeNode p) { 12 | TreeNode after = null; 13 | while (root != null) { 14 | if (root.val > p.val) { 15 | after = root; 16 | root = root.left; 17 | } else { 18 | root = root.right; 19 | } 20 | } 21 | return after; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number319.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/15 14:37 6 | * @description 7 | */ 8 | public class Number319 { 9 | public int bulbSwitch(int n) { 10 | return (int) Math.sqrt(n + 0.5); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number343.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/10 9:48 6 | * @description 7 | */ 8 | public class Number343 { 9 | public int integerBreak(int n) { 10 | if (n <= 3) { 11 | return n - 1; 12 | } 13 | int q = n / 3; 14 | int r = n % 3; 15 | if (r == 0) { 16 | return (int) Math.pow(3, q); 17 | } else if (r == 1) { 18 | return (int) Math.pow(3, q - 1) * 4; 19 | } 20 | return (int) Math.pow(3, q) * 2; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number377.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/10 8:14 6 | * @description 7 | */ 8 | public class Number377 { 9 | public int combinationSum4(int[] nums, int target) { 10 | int[] dp = new int[target + 1]; 11 | dp[0] = 1; 12 | for (int i = 0; i <= target; i++) { 13 | for (int num : nums) { 14 | if (i >= num) { 15 | dp[i] += dp[i - num]; 16 | } 17 | } 18 | } 19 | return dp[target]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number400.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/24 10:21 6 | * @description 7 | */ 8 | public class Number400 { 9 | public int findNthDigit(int n) { 10 | int digit = 1; 11 | long start = 1; 12 | long count = 9; 13 | while (n > count) { // 1. 14 | n -= count; 15 | digit += 1; 16 | start *= 10; 17 | count = digit * start * 9; 18 | } 19 | long num = start + (n - 1) / digit; // 2. 20 | return Long.toString(num).charAt((n - 1) % digit) - '0'; // 3 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number45.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/25 10:46 6 | * @description 7 | */ 8 | public class Number45 { 9 | public int jump(int[] nums) { 10 | int n = nums.length; 11 | int maxPos = 0; 12 | int end = 0; 13 | int step = 0; 14 | for (int i = 0; i < n - 1; i++) { 15 | maxPos = Math.max(maxPos, i + nums[i]); 16 | if (i == end) { 17 | end = maxPos; 18 | step++; 19 | } 20 | } 21 | return step; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number477.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 7:53 6 | * @description 7 | */ 8 | public class Number477 { 9 | public int totalHammingDistance(int[] nums) { 10 | int sum = 0; 11 | for (int i = 0; i < nums.length; i++) { 12 | for (int j = i + 1; j < nums.length; j++) { 13 | sum += Integer.bitCount(nums[i] ^ nums[j]); 14 | } 15 | } 16 | return sum; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number48.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/4/19 10:01 6 | * @description 7 | */ 8 | public class Number48 { 9 | public void rotate(int[][] matrix) { 10 | int n = matrix.length; 11 | for (int i = 0; i < n / 2; i++) { 12 | for (int j = 0; j < (n + 1) / 2; j++) { 13 | int tmp = matrix[i][j]; 14 | matrix[i][j] = matrix[n - j - 1][i]; 15 | matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]; 16 | matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]; 17 | matrix[j][n - i - 1] = tmp; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number486.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/20 10:24 6 | * @description 7 | */ 8 | public class Number486 { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number518.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/9 8:56 6 | * @description 7 | */ 8 | public class Number518 { 9 | public int change(int amount, int[] coins) { 10 | if (amount == 0) { 11 | return 1; 12 | } 13 | int[] dp = new int[amount + 1]; 14 | dp[0] = 1; 15 | for (int coin : coins) { 16 | for (int i = coin; i <= amount; i++) { 17 | dp[i] += dp[i - coin]; 18 | } 19 | } 20 | return dp[amount]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number538.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/5/22 10:25 8 | * @description 9 | */ 10 | public class Number538 { 11 | int sum = 0; 12 | 13 | public TreeNode convertBST(TreeNode root) { 14 | rec(root); 15 | return root; 16 | } 17 | 18 | public void rec(TreeNode node) { 19 | if (node == null) { 20 | return; 21 | } 22 | rec(node.right); 23 | sum += node.val; 24 | node.val = sum; 25 | rec(node.left); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number55.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/1/25 10:46 6 | * @description 7 | */ 8 | public class Number55 { 9 | public boolean canJump(int[] nums) { 10 | int n = nums.length; 11 | int rightBound = 0; 12 | for (int i = 0; i < n; i++) { 13 | if (i <= rightBound) { 14 | rightBound = Math.max(rightBound, i + nums[i]); 15 | if (rightBound >= n - 1) { 16 | return true; 17 | } 18 | } 19 | } 20 | return false; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number62.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/4 8:26 6 | * @description 7 | */ 8 | public class Number62 { 9 | public int uniquePaths(int m, int n) { 10 | int[] dp = new int[n]; 11 | dp[0] = 1; 12 | for (int i = 0; i < m; i++) { 13 | for (int j = 0; j < n; j++) { 14 | if (j > 0) { 15 | dp[j] += dp[j - 1]; 16 | } 17 | } 18 | } 19 | return dp[n - 1]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/medium/Number714.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/2/25 9:11 6 | * @description 7 | */ 8 | public class Number714 { 9 | public int maxProfit(int[] prices, int fee) { 10 | int n = prices.length; 11 | int[][] dp = new int[n][2]; 12 | dp[0][0] = -prices[0] - fee; 13 | for (int i = 1; i < n; i++) { 14 | dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee); 15 | dp[i][1] = Math.max(dp[i - 1][0] + prices[i], dp[i - 1][1]); 16 | } 17 | return dp[n - 1][1]; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Codes/yore/medium/Offer343.java: -------------------------------------------------------------------------------- 1 | package com.yore.medium; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/3/10 8:28 6 | * @description 7 | */ 8 | public class Offer343 { 9 | public static void main(String[] args) { 10 | System.out.println(2e14); 11 | System.out.println(Math.pow(2,14)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Codes/yore/nowcoder/BM1.java: -------------------------------------------------------------------------------- 1 | package com.yore.nowcoder; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/4/27 9:24 8 | * @description 翻转链表 9 | */ 10 | public class BM1 { 11 | public ListNode ReverseList(ListNode head) { 12 | if (head == null) { 13 | return null; 14 | } 15 | ListNode pre = new ListNode(-1); 16 | pre.next = head; 17 | ListNode p = head.next; 18 | while(p!=null){ 19 | head.next = p.next; 20 | p.next = pre.next; 21 | pre.next =p; 22 | p = head.next; 23 | } 24 | return pre.next; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/nowcoder/BM10.java: -------------------------------------------------------------------------------- 1 | package com.yore.nowcoder; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/5/4 10:08 8 | * @description 9 | */ 10 | public class BM10 { 11 | public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { 12 | ListNode p1 = pHead1; 13 | ListNode p2 = pHead2; 14 | while (p1 != p2) { 15 | p1 = p1 == null ? pHead2 : p1.next; 16 | p2 = p2 == null ? pHead1 : p2.next; 17 | } 18 | return p1; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/nowcoder/BM17.java: -------------------------------------------------------------------------------- 1 | package com.yore.nowcoder; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/4/29 10:55 6 | * @description 二分查找 7 | */ 8 | public class BM17 { 9 | public int search(int[] nums, int target) { 10 | int left = 0; 11 | int right = nums.length - 1; 12 | while (left <= right) { 13 | int mid = (left + right) / 2; 14 | if (nums[mid] == target) { 15 | return mid; 16 | } else if (nums[mid] > target) { 17 | right = mid - 1; 18 | } else if (nums[mid] < target) { 19 | left = mid + 1; 20 | } 21 | } 22 | return -1; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/nowcoder/BM19.java: -------------------------------------------------------------------------------- 1 | package com.yore.nowcoder; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/5/3 10:51 6 | * @description 7 | */ 8 | public class BM19 { 9 | public int findPeakElement(int[] nums) { 10 | int left = 0; 11 | int right = nums.length - 1; 12 | while (left <= right) { 13 | int mid = (left + right) / 2; 14 | if (nums[mid] > nums[right]) { 15 | right = mid; 16 | } else { 17 | left = mid + 1; 18 | } 19 | } 20 | return left - 1; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/nowcoder/BM21.java: -------------------------------------------------------------------------------- 1 | package com.yore.nowcoder; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2022/5/4 10:21 6 | * @description 7 | */ 8 | public class BM21 { 9 | public int minNumberInRotateArray(int[] array) { 10 | int left = 0; 11 | int right = array.length - 1; 12 | while (left < right) { 13 | int mid = (left + right) / 2; 14 | if (array[mid] > array[right]) { 15 | left = mid + 1; 16 | } else if (array[mid] < array[right]) { 17 | right = mid; 18 | } else { 19 | right--; 20 | } 21 | } 22 | return array[right]; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer03.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 8:23 6 | * @description 7 | */ 8 | public class Offer03 { 9 | public int findRepeatNumber(int[] nums) { 10 | if (nums == null || nums.length == 0) { 11 | return -1; 12 | } 13 | int[] n = new int[nums.length+1]; 14 | for (int current : nums) { 15 | if(n[current]==0){ 16 | n[current]++; 17 | }else{ 18 | return current; 19 | } 20 | } 21 | return -1; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer05.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 8:31 6 | * @description 7 | */ 8 | public class Offer05 { 9 | public String replaceSpace(String s) { 10 | StringBuilder sb = new StringBuilder(); 11 | for (int i = 0; i < s.length(); i++) { 12 | if (s.charAt(i) == ' ') { 13 | sb.append("%20"); 14 | } else { 15 | sb.append(s.charAt(i)); 16 | } 17 | } 18 | return sb.toString(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer11.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/2 8:30 6 | * @description 7 | */ 8 | public class Offer11 { 9 | public int minArray(int[] numbers) { 10 | if (numbers.length == 1) { 11 | return numbers[0]; 12 | } 13 | int min = numbers[0]; 14 | for (int i = 1; i < numbers.length; i++) { 15 | if (numbers[i] < min) { 16 | return numbers[i]; 17 | } 18 | } 19 | return min; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer13.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 9:06 6 | * @description 7 | */ 8 | public class Offer13 { 9 | } 10 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer15.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/1 9:11 6 | * @description 7 | */ 8 | public class Offer15 { 9 | public int hammingWeight(int n) { 10 | int count = 0; 11 | while (n != 0) { 12 | n &= (n - 1); 13 | count++; 14 | } 15 | return count; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer16.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/25 10:03 6 | * @description 7 | */ 8 | public class Offer16 { 9 | public double myPow(double x, int n) { 10 | if (x == 0) { 11 | return 0; 12 | } 13 | double result = 1.0; 14 | long b = n; 15 | if (b < 0) { 16 | x = 1 / x; 17 | b = -b; 18 | } 19 | while (b > 0) { 20 | if ((b & 1) == 1) { 21 | result *= x; 22 | } 23 | x *= x; 24 | b = b >> 1; 25 | } 26 | return result; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer17.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 8:56 6 | * @description 7 | */ 8 | public class Offer17 { 9 | public int[] printNumbers(int n) { 10 | int max = (int) (Math.pow(10, n) - 1); 11 | int[] result = new int[max]; 12 | for (int i = 1; i <= max; i++) { 13 | result[i - 1] = i; 14 | } 15 | return result; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer22.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/5/28 9:01 8 | * @description 9 | */ 10 | public class Offer22 { 11 | public ListNode getKthFromEnd(ListNode head, int k) { 12 | ListNode node = head; 13 | int count = 0; 14 | ListNode p = head; 15 | while (node != null) { 16 | if (count >= k) { 17 | p = p.next; 18 | } 19 | node = node.next; 20 | count++; 21 | } 22 | return p; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer24.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/6/4 8:09 8 | * @description 9 | */ 10 | public class Offer24 { 11 | public ListNode reverseList(ListNode head) { 12 | ListNode pre = null; 13 | ListNode next = null; 14 | while (head != null) { 15 | next = head.next; 16 | head.next = pre; 17 | pre = head; 18 | head = next; 19 | } 20 | return pre; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer27.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/6/9 9:16 8 | * @description 9 | */ 10 | public class Offer27 { 11 | public TreeNode mirrorTree(TreeNode root) { 12 | if (root == null) { 13 | return null; 14 | } 15 | 16 | TreeNode left = mirrorTree(root.right); 17 | TreeNode right = mirrorTree(root.left); 18 | 19 | root.left = left; 20 | root.right = right; 21 | return root; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer28.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/6/22 8:29 8 | * @description 9 | */ 10 | public class Offer28 { 11 | public boolean isSymmetric(TreeNode root) { 12 | return check(root, root); 13 | } 14 | 15 | public boolean check(TreeNode left, TreeNode right) { 16 | if (left == null && right == null) { 17 | return true; 18 | } else if (left != null && right != null && left.val == right.val) { 19 | return check(left.right, right.left) && check(left.left, right.right); 20 | } 21 | return false; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer40.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import java.util.Arrays; 4 | import java.util.TreeMap; 5 | 6 | /** 7 | * @author jia bing wen 8 | * @date 2021/6/4 8:22 9 | * @description 10 | */ 11 | public class Offer40 { 12 | public int[] getLeastNumbers1(int[] arr, int k) { 13 | int[] res = new int[k]; 14 | Arrays.sort(arr); 15 | for (int i = 0; i < k; i++) { 16 | res[i] = arr[i]; 17 | } 18 | return res; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer44.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/24 9:37 6 | * @description 7 | */ 8 | public class Offer44 { 9 | public int findNthDigit(int n) { 10 | int digit = 1; 11 | long start = 1; 12 | long count = 9; 13 | while (n > count) { // 1. 14 | n -= count; 15 | digit += 1; 16 | start *= 10; 17 | count = digit * start * 9; 18 | } 19 | long num = start + (n - 1) / digit; // 2. 20 | return Long.toString(num).charAt((n - 1) % digit) - '0'; // 3 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer46.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/8 8:33 6 | * @description 7 | */ 8 | public class Offer46 { 9 | public int translateNum(int num) { 10 | if (num < 10) { 11 | return 1; 12 | } 13 | if (num % 100 < 26 && num % 100 > 9) { 14 | return translateNum(num / 10) + translateNum(num / 100); 15 | } else { 16 | return translateNum(num / 10); 17 | } 18 | } 19 | 20 | public static void main(String[] args) { 21 | Offer46 o = new Offer46(); 22 | System.out.println(o.translateNum(12258)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer51_1.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/6/21 8:15 8 | * @description 9 | */ 10 | public class Offer51_1 { 11 | public int maxDepth(TreeNode root) { 12 | return getDepth(root); 13 | } 14 | 15 | public int getDepth(TreeNode node) { 16 | if (node == null) { 17 | return 0; 18 | } 19 | return Math.max(getDepth(node.left), getDepth(node.right)) + 1; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer52.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import com.yore.base.ListNode; 4 | 5 | /** 6 | * @author jia bing wen 7 | * @date 2021/7/1 15:38 8 | * @description 9 | */ 10 | public class Offer52 { 11 | public ListNode getIntersectionNode(ListNode headA, ListNode headB) { 12 | ListNode node1 = headA; 13 | ListNode node2 = headB; 14 | while (node1 != node2) { 15 | node1 = node1 != null ? node1.next : headB; 16 | node2 = node2 != null ? node2.next : headA; 17 | } 18 | return node1; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer53_2.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/2 10:23 6 | * @description 7 | */ 8 | public class Offer53_2 { 9 | public int missingNumber(int[] nums) { 10 | int left = 0; 11 | int right = nums.length; 12 | while (left < right) { 13 | int mid = left + (right - left) / 2; 14 | if (nums[mid] == mid) { 15 | left = mid + 1; 16 | } else if (nums[mid] > mid) { 17 | right = mid; 18 | } 19 | } 20 | return left; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer56_2.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import java.util.logging.Handler; 6 | 7 | /** 8 | * @author jia bing wen 9 | * @date 2021/6/27 16:38 10 | * @description 11 | */ 12 | public class Offer56_2 { 13 | public int singleNumber(int[] nums) { 14 | Map map = new HashMap<>(); 15 | for (int num : nums) { 16 | map.put(num, map.getOrDefault(num, 0) + 1); 17 | } 18 | for (int key : map.keySet()) { 19 | if (map.get(key) == 1) { 20 | return key; 21 | } 22 | } 23 | return -1; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer58_2.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 9:07 6 | * @description 7 | */ 8 | public class Offer58_2 { 9 | public String reverseLeftWords(String s, int n) { 10 | return s.substring(n)+s.substring(0,n); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer62.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/5/28 9:10 6 | * @description 约瑟夫环 7 | */ 8 | public class Offer62 { 9 | public int lastRemaining(int n, int m) { 10 | int f = 0; 11 | for (int i = 2; i != n + 1; ++i) { 12 | f = (m + f) % i; 13 | } 14 | return f; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer63.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/7 8:25 6 | * @description 7 | */ 8 | public class Offer63 { 9 | public int maxProfit(int[] prices) { 10 | if (prices.length <= 1) { 11 | return 0; 12 | } 13 | int len = prices.length; 14 | int max = prices[len - 1]; 15 | int profit = 0; 16 | for (int i = len - 2; i >= 0; i--) { 17 | profit = Math.max(profit,max-prices[i]); 18 | max = Math.max(max,prices[i]); 19 | } 20 | return profit; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer64.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/6/25 15:25 6 | * @description 7 | */ 8 | public class Offer64 { 9 | public int sumNums(int n) { 10 | boolean flag = n > 0 && (n += sumNums(n - 1)) > 0; 11 | return n; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer65.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/1 19:01 6 | * @description 7 | */ 8 | public class Offer65 { 9 | public int add(int a, int b) { 10 | while (b != 0) { 11 | int c = (a & b) << 1; 12 | a ^= b; 13 | b = c; 14 | } 15 | return a; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Codes/yore/offer/Offer66.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer; 2 | 3 | /** 4 | * @author jia bing wen 5 | * @date 2021/7/6 8:38 6 | * @description 7 | */ 8 | public class Offer66 { 9 | public int[] constructArr(int[] a) { 10 | if (a.length == 0) { 11 | return new int[0]; 12 | } 13 | int[] res = new int[a.length]; 14 | res[0] = 1; 15 | for (int i = 1; i < a.length; i++) { 16 | res[i] = res[i - 1] * a[i-1]; 17 | } 18 | int tmp = 1; 19 | for (int i = a.length - 2; i >= 0; i--) { 20 | tmp *= a[i + 1]; 21 | res[i] *= tmp; 22 | } 23 | return res; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Codes/yore/offer2/Offer003.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer2; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/8 19:08 6 | * @description 7 | */ 8 | public class Offer003 { 9 | public int[] countBits(int n) { 10 | int[] res = new int[n + 1]; 11 | for (int i = 1; i <= n; i++) { 12 | res[i] = Integer.bitCount(i); 13 | } 14 | return res; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Codes/yore/offer2/Offer004.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer2; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/8 20:33 6 | * @description 7 | */ 8 | public class Offer004 { 9 | public int singleNumber(int[] nums) { 10 | int ans = 0; 11 | for (int i = 0; i < 32; ++i) { 12 | int total = 0; 13 | for (int num: nums) { 14 | total += ((num >> i) & 1); 15 | } 16 | if (total % 3 != 0) { 17 | ans |= (1 << i); 18 | } 19 | } 20 | return ans; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Codes/yore/offer2/Offer012.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer2; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/10 8:58 6 | * @description 7 | */ 8 | public class Offer012 { 9 | public int pivotIndex(int[] nums) { 10 | int sum = 0; 11 | for(int num : nums){ 12 | sum +=num; 13 | } 14 | int left = 0; 15 | int right = sum; 16 | for(int i=0;i queue; 14 | 15 | public RecentCounter() { 16 | queue = new LinkedList<>(); 17 | } 18 | 19 | public int ping(int t) { 20 | queue.offerLast(t); 21 | while (queue.peekFirst() < (t - 3000)) { 22 | queue.pollFirst(); 23 | } 24 | return queue.size(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Codes/yore/offer2/Offer054.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer2; 2 | 3 | import com.yore.base.TreeNode; 4 | 5 | /** 6 | * @author Yore 7 | * @date 2022/3/3 10:02 8 | * @description 9 | */ 10 | public class Offer054 { 11 | private int sum = 0; 12 | 13 | public TreeNode convertBST(TreeNode root) { 14 | TreeNode node = root; 15 | process(node); 16 | return root; 17 | } 18 | 19 | public void process(TreeNode node) { 20 | if (node == null) { 21 | return; 22 | } 23 | process(node.right); 24 | sum += node.val; 25 | node.val = sum; 26 | process(node.left); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Codes/yore/offer2/Offer088.java: -------------------------------------------------------------------------------- 1 | package com.yore.offer2; 2 | 3 | /** 4 | * @author Yore 5 | * @date 2021/11/10 8:42 6 | * @description 7 | */ 8 | public class Offer088 { 9 | public int minCostClimbingStairs(int[] cost) { 10 | if(cost.length == 2){ 11 | return Math.min(cost[0],cost[1]); 12 | } 13 | int[] dp = new int[cost.length]; 14 | dp[0] = cost[0]; 15 | dp[1] = cost[1]; 16 | for(int i=2;i= 0) { 15 | dp[j] += dp[j - num]; 16 | } 17 | } 18 | } 19 | return dp[target]; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Codes/yore/readme.md: -------------------------------------------------------------------------------- 1 | leetcode组队刷题 2 | 3 | 相对擅长java,所以主要用java8来刷题,目前正在学习c++和python 也会尝试使用; 4 | -------------------------------------------------------------------------------- /Codes/zhgetyou/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## LeetCode刷题 3 | -------------------------------------------------------------------------------- /Codes/zhilin/15_3sum/3sum.scala: -------------------------------------------------------------------------------- 1 | // https://leetcode.com/problems/3sum/ 2 | 3 | object Solution { 4 | def threeSum(nums: Array[Int]): List[List[Int]] = { 5 | val numbersCount = nums.foldLeft(Map.empty[Int, Int].withDefaultValue(0)) {(count, nextNumber) => 6 | count + (nextNumber -> (count(nextNumber) + 1)) 7 | } 8 | val uniqueNumbers = numbersCount.keys.toList.sorted 9 | for { 10 | a <- uniqueNumbers 11 | b <- uniqueNumbers 12 | if a <= b 13 | if a != b || numbersCount(a) > 1 14 | c = -a - b 15 | if b <= c 16 | candidate = List(a, b, c) 17 | if numbersCount(c) >= candidate.count(_ == c) 18 | } yield candidate 19 | } 20 | } -------------------------------------------------------------------------------- /Codes/zhilin/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## LeetCode刷题 3 | 4 | 5 | https://qiuzhilin.cn 6 | 7 | 用Scala刷题 -------------------------------------------------------------------------------- /Picker/department_highest_salary.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Picker/department_highest_salary.db -------------------------------------------------------------------------------- /Picker/duplicate_emails.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Picker/duplicate_emails.db -------------------------------------------------------------------------------- /Picker/salary.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asdf2014/algorithm/015ef78c9d3b3921c1b58422a3e98a5b7349696f/Picker/salary.db -------------------------------------------------------------------------------- /Picker/used.txt: -------------------------------------------------------------------------------- 1 | 651 2 | 774 3 | 607 4 | 691 5 | --------------------------------------------------------------------------------