From 92447aa1cc78d487a88347a5c89afbd7b5e88581 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Mon, 18 Jul 2022 00:29:02 +0300 Subject: [PATCH] Updated tasks and readme. --- README.md | 118 +++++++++--------- .../g0101_0200/s0126_word_ladder_ii/readme.md | 4 +- .../s0313_super_ugly_number/readme.md | 1 + .../s0410_split_array_largest_sum/readme.md | 3 - .../g0401_0500/s0437_path_sum_iii/readme.md | 34 ++--- .../readme.md | 1 - .../java/g0401_0500/s0488_zuma_game/readme.md | 9 +- .../readme.md | 2 +- .../readme.md | 13 +- .../readme.md | 2 +- .../g1201_1300/s1260_shift_2d_grid/readme.md | 11 +- .../s1417_reformat_the_string/readme.md | 41 +++--- 12 files changed, 118 insertions(+), 121 deletions(-) diff --git a/README.md b/README.md index cc6c91da..f06d485d 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ | | | | | | |-|-|-|-|-|- | 0240 |[Search a 2D Matrix II](src/main/java/g0201_0300/s0240_search_a_2d_matrix_ii)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Binary_Search, Matrix, Divide_and_Conquer | 7 | 86.73 -| 0435 |[Non-overlapping Intervals](src/main/java/g0401_0500/s0435_non_overlapping_intervals)| Medium | Array, Dynamic_Programming, Sorting, Greedy | 109 | 26.80 +| 0435 |[Non-overlapping Intervals](src/main/java/g0401_0500/s0435_non_overlapping_intervals)| Medium | Array, Dynamic_Programming, Sorting, Greedy | 96 | 47.37 #### Day 5 Array @@ -62,8 +62,8 @@ | | | | | | |-|-|-|-|-|- -| 0415 |[Add Strings](src/main/java/g0401_0500/s0415_add_strings)| Easy | String, Math, Simulation | 3 | 75.64 -| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy | 1 | 100.00 +| 0415 |[Add Strings](src/main/java/g0401_0500/s0415_add_strings)| Easy | String, Math, Simulation | 3 | 82.41 +| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy | 2 | 92.90 #### Day 7 String @@ -171,7 +171,7 @@ | | | | | | |-|-|-|-|-|- -| 0451 |[Sort Characters By Frequency](src/main/java/g0401_0500/s0451_sort_characters_by_frequency)| Medium | String, Hash_Table, Sorting, Heap_Priority_Queue, Counting, Bucket_Sort | 18 | 70.93 +| 0451 |[Sort Characters By Frequency](src/main/java/g0401_0500/s0451_sort_characters_by_frequency)| Medium | String, Hash_Table, Sorting, Heap_Priority_Queue, Counting, Bucket_Sort | 13 | 89.63 | 0973 |[K Closest Points to Origin](src/main/java/g0901_1000/s0973_k_closest_points_to_origin)| Medium | Array, Math, Sorting, Heap_Priority_Queue, Divide_and_Conquer, Geometry, Quickselect | 4 | 98.26 ### Algorithm I @@ -313,7 +313,7 @@ | | | | | | |-|-|-|-|-|- -| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 8 | 87.18 +| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 6 | 99.03 | 0713 |[Subarray Product Less Than K](src/main/java/g0701_0800/s0713_subarray_product_less_than_k)| Medium | Array, Sliding_Window | 8 | 39.00 | 0209 |[Minimum Size Subarray Sum](src/main/java/g0201_0300/s0209_minimum_size_subarray_sum)| Medium | Array, Binary_Search, Prefix_Sum, Sliding_Window | 1 | 100.00 @@ -472,7 +472,7 @@ | | | | | | |-|-|-|-|-|- -| 0441 |[Arranging Coins](src/main/java/g0401_0500/s0441_arranging_coins)| Easy | Math, Binary_Search | 2 | 87.99 +| 0441 |[Arranging Coins](src/main/java/g0401_0500/s0441_arranging_coins)| Easy | Math, Binary_Search | 2 | 95.97 | 1539 |[Kth Missing Positive Number](src/main/java/g1501_1600/s1539_kth_missing_positive_number)| Easy | Array, Binary_Search | 0 | 100.00 #### Day 7 @@ -593,7 +593,7 @@ | | | | | | |-|-|-|-|-|- | 0826 |[Most Profit Assigning Work](src/main/java/g0801_0900/s0826_most_profit_assigning_work)| Medium | Array, Sorting, Greedy, Binary_Search, Two_Pointers | 21 | 83.83 -| 0436 |[Find Right Interval](src/main/java/g0401_0500/s0436_find_right_interval)| Medium | Array, Sorting, Binary_Search | 17 | 87.90 +| 0436 |[Find Right Interval](src/main/java/g0401_0500/s0436_find_right_interval)| Medium | Array, Sorting, Binary_Search | 20 | 81.51 #### Day 12 @@ -970,7 +970,7 @@ | | | | | | |-|-|-|-|-|- | 1630 |[Arithmetic Subarrays](src/main/java/g1601_1700/s1630_arithmetic_subarrays)| Medium | Array, Sorting | 8 | 93.62 -| 0429 |[N-ary Tree Level Order Traversal](src/main/java/g0401_0500/s0429_n_ary_tree_level_order_traversal)| Medium | Breadth_First_Search, Tree | 4 | 57.07 +| 0429 |[N-ary Tree Level Order Traversal](src/main/java/g0401_0500/s0429_n_ary_tree_level_order_traversal)| Medium | Breadth_First_Search, Tree | 3 | 80.26 #### Day 10 @@ -990,7 +990,7 @@ | | | | | | |-|-|-|-|-|- -| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 8 | 87.18 +| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 6 | 99.03 | 0713 |[Subarray Product Less Than K](src/main/java/g0701_0800/s0713_subarray_product_less_than_k)| Medium | Array, Sliding_Window | 8 | 39.00 #### Day 13 @@ -1012,7 +1012,7 @@ | | | | | | |-|-|-|-|-|- | 0002 |[Add Two Numbers](src/main/java/g0001_0100/s0002_add_two_numbers)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Math, Linked_List, Recursion | 2 | 98.23 -| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List | 3 | 81.96 +| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List | 3 | 90.38 #### Day 16 @@ -1078,7 +1078,7 @@ | | | | | | |-|-|-|-|-|- | 1162 |[As Far from Land as Possible](src/main/java/g1101_1200/s1162_as_far_from_land_as_possible)| Medium | Array, Dynamic_Programming, Breadth_First_Search, Matrix | 12 | 89.17 -| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 89.66 +| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 92.62 #### Day 5 Matrix Related Problems @@ -1135,7 +1135,7 @@ | | | | | | |-|-|-|-|-|- -| 0433 |[Minimum Genetic Mutation](src/main/java/g0401_0500/s0433_minimum_genetic_mutation)| Medium | String, Hash_Table, Breadth_First_Search | 0 | 100.00 +| 0433 |[Minimum Genetic Mutation](src/main/java/g0401_0500/s0433_minimum_genetic_mutation)| Medium | String, Hash_Table, Breadth_First_Search | 1 | 90.95 | 0752 |[Open the Lock](src/main/java/g0701_0800/s0752_open_the_lock)| Medium | Array, String, Hash_Table, Breadth_First_Search | 72 | 91.06 | 0127 |[Word Ladder](src/main/java/g0101_0200/s0127_word_ladder)| Hard | Top_Interview_Questions, String, Hash_Table, Breadth_First_Search | 37 | 94.58 @@ -1274,7 +1274,7 @@ | | | | | | |-|-|-|-|-|- | 0121 |[Best Time to Buy and Sell Stock](src/main/java/g0101_0200/s0121_best_time_to_buy_and_sell_stock)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming | 1 | 100.00 -| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy | 1 | 100.00 +| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy | 2 | 92.90 #### Day 6 Tree @@ -1322,8 +1322,8 @@ | | | | | | |-|-|-|-|-|- -| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 8 | 87.18 -| 0424 |[Longest Repeating Character Replacement](src/main/java/g0401_0500/s0424_longest_repeating_character_replacement)| Medium | String, Hash_Table, Sliding_Window | 5 | 92.61 +| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window | 6 | 99.03 +| 0424 |[Longest Repeating Character Replacement](src/main/java/g0401_0500/s0424_longest_repeating_character_replacement)| Medium | String, Hash_Table, Sliding_Window | 5 | 95.15 #### Day 13 Hashmap @@ -1396,7 +1396,7 @@ | | | | | | |-|-|-|-|-|- | 0543 |[Diameter of Binary Tree](src/main/java/g0501_0600/s0543_diameter_of_binary_tree)| Easy | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree | 1 | 55.16 -| 0437 |[Path Sum III](src/main/java/g0401_0500/s0437_path_sum_iii)| Medium | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree | 4 | 87.75 +| 0437 |[Path Sum III](src/main/java/g0401_0500/s0437_path_sum_iii)| Medium | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree | 18 | 45.66 #### Day 8 Binary Search @@ -1418,7 +1418,7 @@ | | | | | | |-|-|-|-|-|- | 0994 |[Rotting Oranges](src/main/java/g0901_1000/s0994_rotting_oranges)| Medium | Array, Breadth_First_Search, Matrix | 3 | 74.27 -| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 89.66 +| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 92.62 #### Day 11 Graph/BFS/DFS @@ -1438,7 +1438,7 @@ | | | | | | |-|-|-|-|-|- -| 0416 |[Partition Equal Subset Sum](src/main/java/g0401_0500/s0416_partition_equal_subset_sum)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming | 1 | 99.87 +| 0416 |[Partition Equal Subset Sum](src/main/java/g0401_0500/s0416_partition_equal_subset_sum)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming | 2 | 99.96 | 0152 |[Maximum Product Subarray](src/main/java/g0101_0200/s0152_maximum_product_subarray)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Dynamic_Programming | 0 | 100.00 #### Day 14 Sliding Window/Two Pointer @@ -1499,7 +1499,7 @@ | | | | | | |-|-|-|-|-|- -| 0412 |[Fizz Buzz](src/main/java/g0401_0500/s0412_fizz_buzz)| Easy | Top_Interview_Questions, String, Math, Simulation | 3 | 32.80 +| 0412 |[Fizz Buzz](src/main/java/g0401_0500/s0412_fizz_buzz)| Easy | Top_Interview_Questions, String, Math, Simulation | 1 | 100.00 | 0136 |[Single Number](src/main/java/g0101_0200/s0136_single_number)| Easy | Top_100_Liked_Questions, Top_Interview_Questions, Array, Bit_Manipulation | 1 | 99.97 | 0007 |[Reverse Integer](src/main/java/g0001_0100/s0007_reverse_integer)| Medium | Top_Interview_Questions, Math | 2 | 66.74 | 0009 |[Palindrome Number](src/main/java/g0001_0100/s0009_palindrome_number)| Easy | Math | 13 | 58.99 @@ -1549,14 +1549,14 @@ | 0238 |[Product of Array Except Self](src/main/java/g0201_0300/s0238_product_of_array_except_self)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Prefix_Sum | 1 | 100.00 | 1291 |[Sequential Digits](src/main/java/g1201_1300/s1291_sequential_digits)| Medium | Enumeration | 0 | 100.00 | 0448 |[Find All Numbers Disappeared in an Array](src/main/java/g0401_0500/s0448_find_all_numbers_disappeared_in_an_array)| Easy | Array, Hash_Table | 3 | 100.00 -| 0442 |[Find All Duplicates in an Array](src/main/java/g0401_0500/s0442_find_all_duplicates_in_an_array)| Medium | Array, Hash_Table | 5 | 94.88 +| 0442 |[Find All Duplicates in an Array](src/main/java/g0401_0500/s0442_find_all_duplicates_in_an_array)| Medium | Array, Hash_Table | 5 | 98.83 | 0041 |[First Missing Positive](src/main/java/g0001_0100/s0041_first_missing_positive)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Hash_Table | 5 | 50.34 | 0697 |[Degree of an Array](src/main/java/g0601_0700/s0697_degree_of_an_array)| Easy | Array, Hash_Table | 14 | 93.19 | 0532 |[K-diff Pairs in an Array](src/main/java/g0501_0600/s0532_k_diff_pairs_in_an_array)| Medium | Array, Hash_Table, Sorting, Binary_Search, Two_Pointers | 14 | 49.69 | 0713 |[Subarray Product Less Than K](src/main/java/g0701_0800/s0713_subarray_product_less_than_k)| Medium | Array, Sliding_Window | 8 | 39.00 | 1007 |[Minimum Domino Rotations For Equal Row](src/main/java/g1001_1100/s1007_minimum_domino_rotations_for_equal_row)| Medium | Array, Greedy | 5 | 79.64 | 1306 |[Jump Game III](src/main/java/g1301_1400/s1306_jump_game_iii)| Medium | Array, Depth_First_Search, Breadth_First_Search | 2 | 96.23 -| 0456 |[132 Pattern](src/main/java/g0401_0500/s0456_132_pattern)| Medium | Array, Binary_Search, Stack, Ordered_Set, Monotonic_Stack | 15 | 80.22 +| 0456 |[132 Pattern](src/main/java/g0401_0500/s0456_132_pattern)| Medium | Array, Binary_Search, Stack, Ordered_Set, Monotonic_Stack | 16 | 82.41 | 0239 |[Sliding Window Maximum](src/main/java/g0201_0300/s0239_sliding_window_maximum)| Hard | Top_100_Liked_Questions, Top_Interview_Questions, Array, Heap_Priority_Queue, Sliding_Window, Queue, Monotonic_Queue | 58 | 52.28 #### Udemy Two Pointers @@ -1600,7 +1600,7 @@ | | | | | | |-|-|-|-|-|- | 0114 |[Flatten Binary Tree to Linked List](src/main/java/g0101_0200/s0114_flatten_binary_tree_to_linked_list)| Medium | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree, Stack, Linked_List | 1 | 75.27 -| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List | 3 | 81.96 +| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List | 3 | 90.38 | 0328 |[Odd Even Linked List](src/main/java/g0301_0400/s0328_odd_even_linked_list)| Medium | Top_Interview_Questions, Linked_List | 0 | 100.00 | 0061 |[Rotate List](src/main/java/g0001_0100/s0061_rotate_list)| Medium | Two_Pointers, Linked_List | 0 | 100.00 | 0024 |[Swap Nodes in Pairs](src/main/java/g0001_0100/s0024_swap_nodes_in_pairs)| Medium | Top_100_Liked_Questions, Linked_List, Recursion | 0 | 100.00 @@ -1655,7 +1655,7 @@ |-|-|-|-|-|- | 0200 |[Number of Islands](src/main/java/g0101_0200/s0200_number_of_islands)| Medium | Top_100_Liked_Questions, Top_Interview_Questions, Array, Depth_First_Search, Breadth_First_Search, Matrix, Union_Find | 3 | 97.76 | 0133 |[Clone Graph](src/main/java/g0101_0200/s0133_clone_graph)| Medium | Hash_Table, Depth_First_Search, Breadth_First_Search, Graph | 45 | 29.80 -| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 89.66 +| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix | 5 | 92.62 #### Udemy Dynamic Programming @@ -2533,7 +2533,7 @@ | 1420 |[Build Array Where You Can Find The Maximum Exactly K Comparisons](src/main/java/g1401_1500/s1420_build_array_where_you_can_find_the_maximum_exactly_k_comparisons)| Hard | Dynamic_Programming | 22 | 86.32 | 1419 |[Minimum Number of Frogs Croaking](src/main/java/g1401_1500/s1419_minimum_number_of_frogs_croaking)| Medium | String, Counting | 19 | 32.16 | 1418 |[Display Table of Food Orders in a Restaurant](src/main/java/g1401_1500/s1418_display_table_of_food_orders_in_a_restaurant)| Medium | Array, String, Hash_Table, Sorting, Ordered_Set | 42 | 77.01 -| 1417 |[Reformat The String](src/main/java/g1401_1500/s1417_reformat_the_string)| Easy | String | 4 | 88.39 +| 1417 |[Reformat The String](src/main/java/g1401_1500/s1417_reformat_the_string)| Easy | String | 10 | 62.27 | 1416 |[Restore The Array](src/main/java/g1401_1500/s1416_restore_the_array)| Hard | String, Dynamic_Programming | 34 | 100.00 | 1415 |[The k-th Lexicographical String of All Happy Strings of Length n](src/main/java/g1401_1500/s1415_the_k_th_lexicographical_string_of_all_happy_strings_of_length_n)| Medium | String, Backtracking | 2 | 90.55 | 1414 |[Find the Minimum Number of Fibonacci Numbers Whose Sum Is K](src/main/java/g1401_1500/s1414_find_the_minimum_number_of_fibonacci_numbers_whose_sum_is_k)| Medium | Greedy | 2 | 67.22 @@ -3288,49 +3288,49 @@ | 0460 |[LFU Cache](src/main/java/g0401_0500/s0460_lfu_cache)| Hard | Hash_Table, Design, Linked_List, Doubly_Linked_List | 45 | 99.66 | 0459 |[Repeated Substring Pattern](src/main/java/g0401_0500/s0459_repeated_substring_pattern)| Easy | String, String_Matching, Programming_Skills_II_Day_2 | 9 | 90.15 | 0458 |[Poor Pigs](src/main/java/g0401_0500/s0458_poor_pigs)| Hard | Dynamic_Programming, Math, Combinatorics | 0 | 100.00 -| 0457 |[Circular Array Loop](src/main/java/g0401_0500/s0457_circular_array_loop)| Medium | Array, Hash_Table, Two_Pointers | 2 | 73.72 -| 0456 |[132 Pattern](src/main/java/g0401_0500/s0456_132_pattern)| Medium | Array, Binary_Search, Stack, Ordered_Set, Monotonic_Stack, Udemy_Arrays | 15 | 80.22 -| 0455 |[Assign Cookies](src/main/java/g0401_0500/s0455_assign_cookies)| Easy | Array, Sorting, Greedy | 11 | 42.95 -| 0454 |[4Sum II](src/main/java/g0401_0500/s0454_4sum_ii)| Medium | Top_Interview_Questions, Array, Hash_Table | 157 | 74.79 -| 0453 |[Minimum Moves to Equal Array Elements](src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements)| Medium | Array, Math | 1 | 100.00 -| 0452 |[Minimum Number of Arrows to Burst Balloons](src/main/java/g0401_0500/s0452_minimum_number_of_arrows_to_burst_balloons)| Medium | Array, Sorting, Greedy | 80 | 76.91 -| 0451 |[Sort Characters By Frequency](src/main/java/g0401_0500/s0451_sort_characters_by_frequency)| Medium | String, Hash_Table, Sorting, Heap_Priority_Queue, Counting, Bucket_Sort, Data_Structure_II_Day_21_Heap_Priority_Queue | 18 | 70.93 +| 0457 |[Circular Array Loop](src/main/java/g0401_0500/s0457_circular_array_loop)| Medium | Array, Hash_Table, Two_Pointers | 1 | 83.72 +| 0456 |[132 Pattern](src/main/java/g0401_0500/s0456_132_pattern)| Medium | Array, Binary_Search, Stack, Ordered_Set, Monotonic_Stack, Udemy_Arrays | 16 | 82.41 +| 0455 |[Assign Cookies](src/main/java/g0401_0500/s0455_assign_cookies)| Easy | Array, Sorting, Greedy | 12 | 41.00 +| 0454 |[4Sum II](src/main/java/g0401_0500/s0454_4sum_ii)| Medium | Top_Interview_Questions, Array, Hash_Table | 133 | 95.19 +| 0453 |[Minimum Moves to Equal Array Elements](src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements)| Medium | Array, Math | 2 | 89.66 +| 0452 |[Minimum Number of Arrows to Burst Balloons](src/main/java/g0401_0500/s0452_minimum_number_of_arrows_to_burst_balloons)| Medium | Array, Sorting, Greedy | 84 | 71.26 +| 0451 |[Sort Characters By Frequency](src/main/java/g0401_0500/s0451_sort_characters_by_frequency)| Medium | String, Hash_Table, Sorting, Heap_Priority_Queue, Counting, Bucket_Sort, Data_Structure_II_Day_21_Heap_Priority_Queue | 13 | 89.63 | 0450 |[Delete Node in a BST](src/main/java/g0401_0500/s0450_delete_node_in_a_bst)| Medium | Tree, Binary_Tree, Binary_Search_Tree, Data_Structure_II_Day_16_Tree | 0 | 100.00 -| 0449 |[Serialize and Deserialize BST](src/main/java/g0401_0500/s0449_serialize_and_deserialize_bst)| Medium | String, Depth_First_Search, Breadth_First_Search, Tree, Binary_Tree, Design, Binary_Search_Tree | 1 | 99.70 +| 0449 |[Serialize and Deserialize BST](src/main/java/g0401_0500/s0449_serialize_and_deserialize_bst)| Medium | String, Depth_First_Search, Breadth_First_Search, Tree, Binary_Tree, Design, Binary_Search_Tree | 1 | 99.59 | 0448 |[Find All Numbers Disappeared in an Array](src/main/java/g0401_0500/s0448_find_all_numbers_disappeared_in_an_array)| Easy | Array, Hash_Table, Udemy_Arrays | 3 | 100.00 | 0447 |[Number of Boomerangs](src/main/java/g0401_0500/s0447_number_of_boomerangs)| Medium | Array, Hash_Table, Math | 156 | 80.44 -| 0446 |[Arithmetic Slices II - Subsequence](src/main/java/g0401_0500/s0446_arithmetic_slices_ii_subsequence)| Hard | Array, Dynamic_Programming | 67 | 95.78 -| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List, Programming_Skills_II_Day_15, Udemy_Linked_List | 3 | 81.96 -| 0443 |[String Compression](src/main/java/g0401_0500/s0443_string_compression)| Medium | String, Two_Pointers | 2 | 60.36 -| 0442 |[Find All Duplicates in an Array](src/main/java/g0401_0500/s0442_find_all_duplicates_in_an_array)| Medium | Array, Hash_Table, Udemy_Arrays | 5 | 94.88 -| 0441 |[Arranging Coins](src/main/java/g0401_0500/s0441_arranging_coins)| Easy | Math, Binary_Search, Binary_Search_I_Day_6 | 2 | 87.99 +| 0446 |[Arithmetic Slices II - Subsequence](src/main/java/g0401_0500/s0446_arithmetic_slices_ii_subsequence)| Hard | Array, Dynamic_Programming | 68 | 99.15 +| 0445 |[Add Two Numbers II](src/main/java/g0401_0500/s0445_add_two_numbers_ii)| Medium | Math, Stack, Linked_List, Programming_Skills_II_Day_15, Udemy_Linked_List | 3 | 90.38 +| 0443 |[String Compression](src/main/java/g0401_0500/s0443_string_compression)| Medium | String, Two_Pointers | 2 | 65.35 +| 0442 |[Find All Duplicates in an Array](src/main/java/g0401_0500/s0442_find_all_duplicates_in_an_array)| Medium | Array, Hash_Table, Udemy_Arrays | 5 | 98.83 +| 0441 |[Arranging Coins](src/main/java/g0401_0500/s0441_arranging_coins)| Easy | Math, Binary_Search, Binary_Search_I_Day_6 | 2 | 95.97 | 0440 |[K-th Smallest in Lexicographical Order](src/main/java/g0401_0500/s0440_k_th_smallest_in_lexicographical_order)| Hard | Trie | 0 | 100.00 -| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window, Algorithm_II_Day_5_Sliding_Window, Programming_Skills_II_Day_12, Level_1_Day_12_Sliding_Window/Two_Pointer | 8 | 87.18 -| 0437 |[Path Sum III](src/main/java/g0401_0500/s0437_path_sum_iii)| Medium | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree, Level_2_Day_7_Tree | 4 | 87.75 -| 0436 |[Find Right Interval](src/main/java/g0401_0500/s0436_find_right_interval)| Medium | Array, Sorting, Binary_Search, Binary_Search_II_Day_11 | 17 | 87.90 -| 0435 |[Non-overlapping Intervals](src/main/java/g0401_0500/s0435_non_overlapping_intervals)| Medium | Array, Dynamic_Programming, Sorting, Greedy, Data_Structure_II_Day_4_Array | 109 | 26.80 +| 0438 |[Find All Anagrams in a String](src/main/java/g0401_0500/s0438_find_all_anagrams_in_a_string)| Medium | Top_100_Liked_Questions, String, Hash_Table, Sliding_Window, Algorithm_II_Day_5_Sliding_Window, Programming_Skills_II_Day_12, Level_1_Day_12_Sliding_Window/Two_Pointer | 6 | 99.03 +| 0437 |[Path Sum III](src/main/java/g0401_0500/s0437_path_sum_iii)| Medium | Top_100_Liked_Questions, Depth_First_Search, Tree, Binary_Tree, Level_2_Day_7_Tree | 18 | 45.66 +| 0436 |[Find Right Interval](src/main/java/g0401_0500/s0436_find_right_interval)| Medium | Array, Sorting, Binary_Search, Binary_Search_II_Day_11 | 20 | 81.51 +| 0435 |[Non-overlapping Intervals](src/main/java/g0401_0500/s0435_non_overlapping_intervals)| Medium | Array, Dynamic_Programming, Sorting, Greedy, Data_Structure_II_Day_4_Array | 96 | 47.37 | 0434 |[Number of Segments in a String](src/main/java/g0401_0500/s0434_number_of_segments_in_a_string)| Easy | String | 0 | 100.00 -| 0433 |[Minimum Genetic Mutation](src/main/java/g0401_0500/s0433_minimum_genetic_mutation)| Medium | String, Hash_Table, Breadth_First_Search, Graph_Theory_I_Day_12_Breadth_First_Search | 0 | 100.00 -| 0432 |[All O\`one Data Structure](src/main/java/g0401_0500/s0432_all_oone_data_structure)| Hard | Hash_Table, Design, Linked_List, Doubly_Linked_List | 87 | 62.81 +| 0433 |[Minimum Genetic Mutation](src/main/java/g0401_0500/s0433_minimum_genetic_mutation)| Medium | String, Hash_Table, Breadth_First_Search, Graph_Theory_I_Day_12_Breadth_First_Search | 1 | 90.95 +| 0432 |[All O\`one Data Structure](src/main/java/g0401_0500/s0432_all_oone_data_structure)| Hard | Hash_Table, Design, Linked_List, Doubly_Linked_List | 101 | 52.51 | 0430 |[Flatten a Multilevel Doubly Linked List](src/main/java/g0401_0500/s0430_flatten_a_multilevel_doubly_linked_list)| Medium | Depth_First_Search, Linked_List, Doubly_Linked_List | 0 | 100.00 -| 0429 |[N-ary Tree Level Order Traversal](src/main/java/g0401_0500/s0429_n_ary_tree_level_order_traversal)| Medium | Breadth_First_Search, Tree, Programming_Skills_II_Day_9 | 4 | 57.07 -| 0427 |[Construct Quad Tree](src/main/java/g0401_0500/s0427_construct_quad_tree)| Medium | Array, Tree, Matrix, Divide_and_Conquer | 1 | 85.16 -| 0424 |[Longest Repeating Character Replacement](src/main/java/g0401_0500/s0424_longest_repeating_character_replacement)| Medium | String, Hash_Table, Sliding_Window, Level_1_Day_12_Sliding_Window/Two_Pointer | 5 | 92.61 -| 0423 |[Reconstruct Original Digits from English](src/main/java/g0401_0500/s0423_reconstruct_original_digits_from_english)| Medium | String, Hash_Table, Math | 3 | 100.00 -| 0421 |[Maximum XOR of Two Numbers in an Array](src/main/java/g0401_0500/s0421_maximum_xor_of_two_numbers_in_an_array)| Medium | Array, Hash_Table, Bit_Manipulation, Trie | 22 | 99.22 +| 0429 |[N-ary Tree Level Order Traversal](src/main/java/g0401_0500/s0429_n_ary_tree_level_order_traversal)| Medium | Breadth_First_Search, Tree, Programming_Skills_II_Day_9 | 3 | 80.26 +| 0427 |[Construct Quad Tree](src/main/java/g0401_0500/s0427_construct_quad_tree)| Medium | Array, Tree, Matrix, Divide_and_Conquer | 0 | 100.00 +| 0424 |[Longest Repeating Character Replacement](src/main/java/g0401_0500/s0424_longest_repeating_character_replacement)| Medium | String, Hash_Table, Sliding_Window, Level_1_Day_12_Sliding_Window/Two_Pointer | 5 | 95.15 +| 0423 |[Reconstruct Original Digits from English](src/main/java/g0401_0500/s0423_reconstruct_original_digits_from_english)| Medium | String, Hash_Table, Math | 6 | 89.85 +| 0421 |[Maximum XOR of Two Numbers in an Array](src/main/java/g0401_0500/s0421_maximum_xor_of_two_numbers_in_an_array)| Medium | Array, Hash_Table, Bit_Manipulation, Trie | 14 | 100.00 | 0420 |[Strong Password Checker](src/main/java/g0401_0500/s0420_strong_password_checker)| Hard | String, Greedy, Heap_Priority_Queue | 0 | 100.00 -| 0419 |[Battleships in a Board](src/main/java/g0401_0500/s0419_battleships_in_a_board)| Medium | Array, Depth_First_Search, Matrix | 1 | 83.10 -| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix, Graph_Theory_I_Day_4_Matrix_Related_Problems, Level_2_Day_10_Graph/BFS/DFS, Udemy_Graph | 5 | 89.66 -| 0416 |[Partition Equal Subset Sum](src/main/java/g0401_0500/s0416_partition_equal_subset_sum)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Level_2_Day_13_Dynamic_Programming | 1 | 99.87 -| 0415 |[Add Strings](src/main/java/g0401_0500/s0415_add_strings)| Easy | String, Math, Simulation, Data_Structure_II_Day_6_String | 3 | 75.64 -| 0414 |[Third Maximum Number](src/main/java/g0401_0500/s0414_third_maximum_number)| Easy | Array, Sorting | 1 | 96.71 +| 0419 |[Battleships in a Board](src/main/java/g0401_0500/s0419_battleships_in_a_board)| Medium | Array, Depth_First_Search, Matrix | 0 | 100.00 +| 0417 |[Pacific Atlantic Water Flow](src/main/java/g0401_0500/s0417_pacific_atlantic_water_flow)| Medium | Array, Depth_First_Search, Breadth_First_Search, Matrix, Graph_Theory_I_Day_4_Matrix_Related_Problems, Level_2_Day_10_Graph/BFS/DFS, Udemy_Graph | 5 | 92.62 +| 0416 |[Partition Equal Subset Sum](src/main/java/g0401_0500/s0416_partition_equal_subset_sum)| Medium | Top_100_Liked_Questions, Array, Dynamic_Programming, Level_2_Day_13_Dynamic_Programming | 2 | 99.96 +| 0415 |[Add Strings](src/main/java/g0401_0500/s0415_add_strings)| Easy | String, Math, Simulation, Data_Structure_II_Day_6_String | 3 | 82.41 +| 0414 |[Third Maximum Number](src/main/java/g0401_0500/s0414_third_maximum_number)| Easy | Array, Sorting | 1 | 97.59 | 0413 |[Arithmetic Slices](src/main/java/g0401_0500/s0413_arithmetic_slices)| Medium | Array, Dynamic_Programming, Algorithm_II_Day_14_Dynamic_Programming, Dynamic_Programming_I_Day_10 | 0 | 100.00 -| 0412 |[Fizz Buzz](src/main/java/g0401_0500/s0412_fizz_buzz)| Easy | Top_Interview_Questions, String, Math, Simulation, Udemy_Integers | 3 | 32.80 -| 0410 |[Split Array Largest Sum](src/main/java/g0401_0500/s0410_split_array_largest_sum)| Hard | Array, Dynamic_Programming, Greedy, Binary_Search | 1 | 84.88 -| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy, Data_Structure_II_Day_6_String, Level_1_Day_5_Greedy | 1 | 100.00 -| 0407 |[Trapping Rain Water II](src/main/java/g0401_0500/s0407_trapping_rain_water_ii)| Hard | Array, Breadth_First_Search, Matrix, Heap_Priority_Queue | 10 | 99.01 -| 0406 |[Queue Reconstruction by Height](src/main/java/g0401_0500/s0406_queue_reconstruction_by_height)| Medium | Array, Sorting, Greedy, Segment_Tree, Binary_Indexed_Tree | 9 | 74.45 -| 0405 |[Convert a Number to Hexadecimal](src/main/java/g0401_0500/s0405_convert_a_number_to_hexadecimal)| Easy | Math, Bit_Manipulation | 0 | 100.00 +| 0412 |[Fizz Buzz](src/main/java/g0401_0500/s0412_fizz_buzz)| Easy | Top_Interview_Questions, String, Math, Simulation, Udemy_Integers | 1 | 100.00 +| 0410 |[Split Array Largest Sum](src/main/java/g0401_0500/s0410_split_array_largest_sum)| Hard | Array, Dynamic_Programming, Greedy, Binary_Search | 1 | 86.51 +| 0409 |[Longest Palindrome](src/main/java/g0401_0500/s0409_longest_palindrome)| Easy | String, Hash_Table, Greedy, Data_Structure_II_Day_6_String, Level_1_Day_5_Greedy | 2 | 92.90 +| 0407 |[Trapping Rain Water II](src/main/java/g0401_0500/s0407_trapping_rain_water_ii)| Hard | Array, Breadth_First_Search, Matrix, Heap_Priority_Queue | 15 | 96.81 +| 0406 |[Queue Reconstruction by Height](src/main/java/g0401_0500/s0406_queue_reconstruction_by_height)| Medium | Array, Sorting, Greedy, Segment_Tree, Binary_Indexed_Tree | 5 | 99.82 +| 0405 |[Convert a Number to Hexadecimal](src/main/java/g0401_0500/s0405_convert_a_number_to_hexadecimal)| Easy | Math, Bit_Manipulation | 1 | 71.02 | 0404 |[Sum of Left Leaves](src/main/java/g0401_0500/s0404_sum_of_left_leaves)| Easy | Depth_First_Search, Breadth_First_Search, Tree, Binary_Tree, Programming_Skills_I_Day_10_Linked_List_and_Tree | 1 | 29.26 | 0403 |[Frog Jump](src/main/java/g0401_0500/s0403_frog_jump)| Hard | Array, Dynamic_Programming | 13 | 99.06 | 0402 |[Remove K Digits](src/main/java/g0401_0500/s0402_remove_k_digits)| Medium | String, Greedy, Stack, Monotonic_Stack | 4 | 99.66 diff --git a/src/main/java/g0101_0200/s0126_word_ladder_ii/readme.md b/src/main/java/g0101_0200/s0126_word_ladder_ii/readme.md index ca5ee3df..324705ee 100644 --- a/src/main/java/g0101_0200/s0126_word_ladder_ii/readme.md +++ b/src/main/java/g0101_0200/s0126_word_ladder_ii/readme.md @@ -118,7 +118,9 @@ public class Solution { List> ans, Set path) { Set next = graph.get(endWord); - if (next == null) return; + if (next == null) { + return; + } for (String word : next) { path.add(word); if (beginWord.equals(word)) { diff --git a/src/main/java/g0301_0400/s0313_super_ugly_number/readme.md b/src/main/java/g0301_0400/s0313_super_ugly_number/readme.md index 0673f745..5b0b2726 100644 --- a/src/main/java/g0301_0400/s0313_super_ugly_number/readme.md +++ b/src/main/java/g0301_0400/s0313_super_ugly_number/readme.md @@ -38,6 +38,7 @@ The nth **super ugly number** is **guaranteed** to fit i ## Solution ```java +@SuppressWarnings("java:S3012") public class Solution { public int nthSuperUglyNumber(int n, int[] primes) { long[] primes1 = new long[primes.length]; diff --git a/src/main/java/g0401_0500/s0410_split_array_largest_sum/readme.md b/src/main/java/g0401_0500/s0410_split_array_largest_sum/readme.md index d638a9d9..14458501 100644 --- a/src/main/java/g0401_0500/s0410_split_array_largest_sum/readme.md +++ b/src/main/java/g0401_0500/s0410_split_array_largest_sum/readme.md @@ -46,12 +46,10 @@ public class Solution { public int splitArray(int[] nums, int m) { int maxVal = 0; int minVal = nums[0]; - for (int num : nums) { maxVal += num; minVal = Math.max(minVal, num); } - while (minVal < maxVal) { int midVal = minVal + (maxVal - minVal) / 2; // if we can split, try to reduce the midVal so decrease maxVal @@ -62,7 +60,6 @@ public class Solution { minVal = midVal + 1; } } - return minVal; } diff --git a/src/main/java/g0401_0500/s0437_path_sum_iii/readme.md b/src/main/java/g0401_0500/s0437_path_sum_iii/readme.md index 0bb819f4..d22e081b 100644 --- a/src/main/java/g0401_0500/s0437_path_sum_iii/readme.md +++ b/src/main/java/g0401_0500/s0437_path_sum_iii/readme.md @@ -35,8 +35,6 @@ The path does not need to start or end at the root or a leaf, but it must go dow ```java import com_github_leetcode.TreeNode; -import java.util.HashMap; -import java.util.Map; /* * Definition for a binary tree node. @@ -54,25 +52,29 @@ import java.util.Map; * } */ public class Solution { - private int count(TreeNode root, int targetSum, Map hashMap, int currentSum) { + private int count = 0; + + public int pathSum(TreeNode root, int targetSum) { if (root == null) { return 0; } - int count = 0; - if (hashMap.containsKey(currentSum + root.val - targetSum)) { - count = count + hashMap.get(currentSum + root.val - targetSum); - } - hashMap.put(currentSum + root.val, hashMap.getOrDefault(currentSum + root.val, 0) + 1); - int l1 = count(root.left, targetSum, hashMap, currentSum + root.val); - int l2 = count(root.right, targetSum, hashMap, currentSum + root.val); - hashMap.put(currentSum + root.val, hashMap.getOrDefault(currentSum + root.val, 0) - 1); - return l1 + l2 + count; + helper(root, targetSum, 0); + pathSum(root.left, targetSum); + pathSum(root.right, targetSum); + return count; } - public int pathSum(TreeNode root, int targetSum) { - Map map = new HashMap<>(); - map.put(0, 1); - return count(root, targetSum, map, 0); + public void helper(TreeNode node, int targetSum, long currSum) { + currSum += node.val; + if (targetSum == currSum) { + count++; + } + if (node.left != null) { + helper(node.left, targetSum, currSum); + } + if (node.right != null) { + helper(node.right, targetSum, currSum); + } } } ``` \ No newline at end of file diff --git a/src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements/readme.md b/src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements/readme.md index 70e2cd36..71f1b166 100644 --- a/src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements/readme.md +++ b/src/main/java/g0401_0500/s0453_minimum_moves_to_equal_array_elements/readme.md @@ -37,7 +37,6 @@ public class Solution { public int minMoves(int[] nums) { int min = nums[0]; int sum = nums[0]; - // determining the total sum and smallest element of the input array for (int i = 1; i <= nums.length - 1; i++) { sum += nums[i]; diff --git a/src/main/java/g0401_0500/s0488_zuma_game/readme.md b/src/main/java/g0401_0500/s0488_zuma_game/readme.md index 583a5c85..d4c1dab9 100644 --- a/src/main/java/g0401_0500/s0488_zuma_game/readme.md +++ b/src/main/java/g0401_0500/s0488_zuma_game/readme.md @@ -71,14 +71,15 @@ There are still balls remaining on the board, and you are out of balls to insert ## Solution ```java +import java.util.ArrayDeque; +import java.util.Deque; import java.util.HashMap; -import java.util.Stack; public class Solution { private HashMap map = new HashMap<>(); private String removeConsecutiveThreeOrMoreBalls(String board) { - Stack st = new Stack<>(); + Deque st = new ArrayDeque<>(); int n = board.length(); for (int i = 0; i < n; i++) { char ch = board.charAt(i); @@ -115,7 +116,9 @@ public class Solution { return map.get(key); } board = removeConsecutiveThreeOrMoreBalls(board); - int ans = 100, n = board.length(), m = hand.length(); + int ans = 100; + int n = board.length(); + int m = hand.length(); if (n == 0 || m == 0) { map.put(key, n == 0 ? 0 : 100); return n == 0 ? 0 : 100; diff --git a/src/main/java/g0801_0900/s0828_count_unique_characters_of_all_substrings_of_a_given_string/readme.md b/src/main/java/g0801_0900/s0828_count_unique_characters_of_all_substrings_of_a_given_string/readme.md index a4061857..22986d55 100644 --- a/src/main/java/g0801_0900/s0828_count_unique_characters_of_all_substrings_of_a_given_string/readme.md +++ b/src/main/java/g0801_0900/s0828_count_unique_characters_of_all_substrings_of_a_given_string/readme.md @@ -66,7 +66,7 @@ public class Solution { prevLastCharIdx[s.charAt(0) - 'A'] = 0; for (int i = 1; i < len; i++) { char ch = s.charAt(i); - int chIdx = (int) (ch - 'A'); + int chIdx = ch - 'A'; int lastSeenIdx = lastCharIdx[chIdx]; int prevLastIdx = prevLastCharIdx[chIdx]; dp[i] = dp[i - 1] + 1; diff --git a/src/main/java/g0901_1000/s0914_x_of_a_kind_in_a_deck_of_cards/readme.md b/src/main/java/g0901_1000/s0914_x_of_a_kind_in_a_deck_of_cards/readme.md index 6a473982..05644a56 100644 --- a/src/main/java/g0901_1000/s0914_x_of_a_kind_in_a_deck_of_cards/readme.md +++ b/src/main/java/g0901_1000/s0914_x_of_a_kind_in_a_deck_of_cards/readme.md @@ -37,20 +37,21 @@ Return `true` if and only if you can choose `X >= 2` such that it is possible to ```java import java.util.HashMap; +import java.util.Map; public class Solution { public boolean hasGroupsSizeX(int[] deck) { HashMap hmap = new HashMap<>(); - for (int i = 0; i < deck.length; i++) { - if (hmap.containsKey(deck[i])) { - hmap.put(deck[i], hmap.get(deck[i]) + 1); + for (int j : deck) { + if (hmap.containsKey(j)) { + hmap.put(j, hmap.get(j) + 1); } else { - hmap.put(deck[i], 1); + hmap.put(j, 1); } } int x = hmap.get(deck[0]); - for (Integer i : hmap.keySet()) { - x = gcd(x, hmap.get(i)); + for (Map.Entry entry : hmap.entrySet()) { + x = gcd(x, entry.getValue()); } return x >= 2; } diff --git a/src/main/java/g1101_1200/s1110_delete_nodes_and_return_forest/readme.md b/src/main/java/g1101_1200/s1110_delete_nodes_and_return_forest/readme.md index 3d33e570..337fc89d 100644 --- a/src/main/java/g1101_1200/s1110_delete_nodes_and_return_forest/readme.md +++ b/src/main/java/g1101_1200/s1110_delete_nodes_and_return_forest/readme.md @@ -87,7 +87,7 @@ public class Solution { } nodes.add(root); List forests = new ArrayList<>(); - while (nodes.size() > 0) { + while (!nodes.isEmpty()) { TreeNode node = nodes.poll(); node = deleteAndSplit(node); if (node != null) { diff --git a/src/main/java/g1201_1300/s1260_shift_2d_grid/readme.md b/src/main/java/g1201_1300/s1260_shift_2d_grid/readme.md index 0067e98f..4b91376d 100644 --- a/src/main/java/g1201_1300/s1260_shift_2d_grid/readme.md +++ b/src/main/java/g1201_1300/s1260_shift_2d_grid/readme.md @@ -50,18 +50,19 @@ Return the _2D grid_ after applying shift operation `k` times. ```java import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class Solution { public List> shiftGrid(int[][] grid, int k) { if (grid == null) { - return null; + return Collections.emptyList(); } int[] flat = new int[grid.length * grid[0].length]; int index = 0; - for (int i = 0; i < grid.length; ++i) { + for (int[] ints : grid) { for (int j = 0; j < grid[0].length; ++j) { - flat[index++] = grid[i][j]; + flat[index++] = ints[j]; } } int mode = k % flat.length; @@ -69,9 +70,9 @@ public class Solution { if (readingIndex == flat.length) { readingIndex = 0; } - List> result = new ArrayList>(); + List> result = new ArrayList<>(); for (int i = 0; i < grid.length; ++i) { - List eachRow = new ArrayList(); + List eachRow = new ArrayList<>(); for (int j = 0; j < grid[0].length; ++j) { eachRow.add(flat[readingIndex++]); if (readingIndex == flat.length) { diff --git a/src/main/java/g1401_1500/s1417_reformat_the_string/readme.md b/src/main/java/g1401_1500/s1417_reformat_the_string/readme.md index 3cfe1bdb..5010739b 100644 --- a/src/main/java/g1401_1500/s1417_reformat_the_string/readme.md +++ b/src/main/java/g1401_1500/s1417_reformat_the_string/readme.md @@ -46,41 +46,32 @@ Return _the reformatted string_ or return **an empty string** if it is impossibl import java.util.ArrayList; import java.util.List; +@SuppressWarnings("java:S5413") public class Solution { public String reformat(String s) { - List characterList = new ArrayList<>(); - List numberList = new ArrayList<>(); + List chars = new ArrayList<>(); + List digits = new ArrayList<>(); for (char c : s.toCharArray()) { - if (Character.isAlphabetic(c)) { - characterList.add(c); + if (c >= '0' && c <= '9') { + digits.add(c); } else { - numberList.add(c); + chars.add(c); } } - if (Math.abs(characterList.size() - numberList.size()) > 1) { + if (Math.abs(digits.size() - chars.size()) > 1) { return ""; - } else { - StringBuilder sb = new StringBuilder(); - if (characterList.size() > numberList.size()) { - for (int i = 0; i < characterList.size() - 1; i++) { - sb.append(characterList.get(i)); - sb.append(numberList.get(i)); - } - sb.append(characterList.get(characterList.size() - 1)); - } else if (characterList.size() == numberList.size()) { - for (int i = 0; i < numberList.size(); i++) { - sb.append(numberList.get(i)); - sb.append(characterList.get(i)); - } + } + boolean isDigit = digits.size() > chars.size(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.length(); i++) { + if (isDigit) { + sb.append(digits.remove(0)); } else { - for (int i = 0; i < numberList.size() - 1; i++) { - sb.append(numberList.get(i)); - sb.append(characterList.get(i)); - } - sb.append(numberList.get(numberList.size() - 1)); + sb.append(chars.remove(0)); } - return sb.toString(); + isDigit = !isDigit; } + return sb.toString(); } } ``` \ No newline at end of file