├── .DS_Store ├── .gitignore ├── README.md ├── contest_double_week ├── question1 │ └── Solution.java ├── question2 │ └── Solution.java ├── question3 │ └── Solution.java └── question4 │ └── Solution.java ├── contest_single_week ├── question1 │ └── Solution.java ├── question2 │ └── Solution.java ├── question3 │ └── Solution.java └── question4 │ └── Solution.java ├── lcci0101_is_unique └── Solution.java ├── lcci0102_check_permutation └── Solution.java ├── lcci0103_string_to_url └── Solution.java ├── lcci0104_palindrome_permutation └── Solution.java ├── lcci0105_one_away └── Solution.java ├── lcci0106_compress_string └── Solution.java ├── lcci0107_rotate_matrix └── Solution.java ├── lcci0108_zero_matrix └── Solution.java ├── lcci0109_string_rotation └── Solution.java ├── lcci0201_remove_duplicate_node ├── ListNode.java ├── Solution1.java └── Solution2.java ├── lcci0202_kth_node_from_end_of_list ├── ListNode.java └── Solution.java ├── lcci0203_delete_middle_node ├── ListNode.java └── Solution.java ├── lcci0204_partition_list ├── ListNode.java └── Solution.java ├── lcci0205_sum_lists ├── ListNode.java ├── Solution1.java ├── Solution2.java └── Solution3.java ├── lcci0206_palindrome_linked_list ├── ListNode.java └── Solution.java ├── lcci0207_intersection_of_two_linked_lists ├── ListNode.java └── Solution.java ├── lcci0208_linked_list_cycle ├── ListNode.java └── Solution.java ├── lcci0301_three_in_one └── TripleInOne.java ├── lcci0302_min_stack └── MinStack.java ├── lcci0303_stack_of_plates └── StackOfPlates.java ├── lcci0304_implement_queue_using_stacks └── MyQueue.java ├── lcci0305_sort_of_stacks └── SortedStack.java ├── lcci0306_animal_shelter └── AnimalShelf.java ├── lcci0401_route_between_nodes ├── Solution1.java └── Solution2.java ├── lcci0402_minimum_height_tree ├── Solution.java └── TreeNode.java ├── lcci0403_list_of_depth ├── ListNode.java ├── Solution.java └── TreeNode.java ├── lcci0404_check_balance ├── Solution.java └── TreeNode.java ├── lcci0405_legal_binary_search_tree ├── Solution.java └── TreeNode.java ├── lcci0406_successor ├── Solution.java └── TreeNode.java ├── lcci0408_first_common_ancestor ├── Solution.java └── TreeNode.java ├── lcci0409_bst_sequences ├── Solution.java └── TreeNode.java ├── lcci0410_check_subtree ├── Solution.java └── TreeNode.java ├── lcci0412_paths_with_sum ├── Solution.java └── TreeNode.java ├── lcci0501_insert_into_bits └── Solution.java ├── lcci0502_bianry_number_to_string └── Solution.java ├── lcci0503_reverse_bits └── Solution.java ├── lcci0504_closed_number └── Solution.java ├── lcci0506_convert_integer └── Solution.java ├── lcci0507_exchange └── Solution.java ├── lcci0508_draw_line └── Solution.java ├── lcci0801_three_steps_problem └── Solution.java ├── lcci0802_robot_in_a_grid └── Solution.java ├── lcci0803_magic_index └── Solution.java ├── lcci0804_power_set └── Solution.java ├── lcci0805_recursive_mulitply └── Solution.java ├── lcci0806_hanota └── Solution.java ├── lcci0807_permutation_i └── Solution.java ├── lcci0808_permutation_ii └── Solution.java ├── lcci0809_bracket └── Solution.java ├── lcci0810_color_fill └── Solution.java ├── lcci0811_coin └── Solution.java ├── lcci0813_pile_box └── Solution.java ├── lcci0814_boolean_evaluation └── Solution.java ├── lcci1001_sorted_merge ├── Solution.java └── 合并排序的数组.md ├── lcci1002_group_anagrams └── Solution.java ├── lcci1003_search_rotate_array └── Solution.java ├── lcci1005_sparse_array_search └── Solution.java ├── lcci1010_rank_from_stream └── StreamRank.java ├── lcci1011_peaks_and_valleys └── Solution.java ├── lcci1601_swap_numbers └── Solution.java ├── lcci1603_intersection └── Solution.java ├── lcci1605_factorial_zeros └── Solution.java ├── lcci1607_maximum └── Solution.java ├── lcci1608_english_int └── Solution.java ├── lcci1611_diving_board └── Solution.java ├── lcci1615_master_mind └── Solution.java ├── lcci1617_contiguous_sequence ├── Solution1.java └── Solution2.java ├── lcci1618_pattern_matching └── Solution.java ├── lcci1622_langtons_ant └── Solution.java ├── lcci1625_lru_cache └── LRUCache.java ├── lcci1701_add_without_plus └── Solution.java ├── lcci1704_missing_number └── Solution.java ├── lcci1706_number_of_2s_in_range └── Solution.java ├── lcci1708_circus_tower └── Solution.java ├── lcci1710_find_majority_element └── Solution.java ├── lcci1712_binode ├── Solution.java └── TreeNode.java ├── lcci1713_re_space ├── Solution1.java ├── Solution2.java └── Solution3.java ├── lcci1714_smallest_k └── Solution.java ├── lcci1716_the_masseuse └── Solution.java ├── lcci1717_multi_search ├── Solution1.java └── Solution2.java ├── lcci1718_shortest_supersequence └── Solution.java ├── lcci1721_volume_of_histogram └── Solution.java ├── lcci1722_word_transformer └── Solution.java ├── lcci1723_max_black_square └── Solution.java ├── lcci1724_max_submatrix └── Solution.java ├── lcci1725_word_rectangle └── Solution.java ├── lcci1726_sparse_similarity └── Solution.java ├── lcof03_shu_zu_zhong_zhong_fu_de_shu_zi └── Solution.java ├── lcof04_er_wei_shu_zu_zhong_de_cha_zhao └── Solution.java ├── lcof05_ti_huan_kong_ge └── Solution.java ├── lcof06_cong_wei_dao_tou_da_yin_lian_biao ├── ListNode.java └── Solution.java ├── lcof07_zhong_jian_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof09_yong_liang_ge_zhan_shi_xian_dui_lie └── CQueue.java ├── lcof10_i_fei_bo_na_qi_shu_lie └── Solution.java ├── lcof10_ii_qing_wa_tiao_tai_jie_wen_ti └── Solution.java ├── lcof11_xuan_zhuan_shu_zu_de_zui_xiao_shu_zi └── Solution.java ├── lcof12_ju_zhen_zhong_de_lu_jing └── Solution.java ├── lcof13_ji_qi_ren_de_yun_dong_fan_wei └── Solution.java ├── lcof14_i_jian_sheng_zi ├── Solution1.java └── Solution2.java ├── lcof14_ii_jian_sheng_zi └── Solution.java ├── lcof15_er_jin_zhi_zhong_1de_ge_shu └── Solution.java ├── lcof16_shu_zhi_de_zheng_shu_ci_fang └── Solution.java ├── lcof17_da_yin_cong_1dao_zui_da_de_nwei_shu └── Solution.java ├── lcof18_shan_chu_lian_biao_de_jie_dian ├── ListNode.java └── Solution.java ├── lcof19_zheng_ze_biao_da_shi_pi_pei └── Solution.java ├── lcof20_biao_shi_shu_zhi_de_zi_fu_chuan └── Solution.java ├── lcof21_diao_zheng_shu_zu_shun_xu_shi_qi_shu_wei_yu_ou_shu_qian_mian └── Solution.java ├── lcof22_lian_biao_zhong_dao_shu_di_kge_jie_dian ├── ListNode.java └── Solution.java ├── lcof24_fan_zhuan_lian_biao ├── ListNode.java ├── Solution1.java └── Solution2.java ├── lcof25_he_bing_liang_ge_pai_xu_de_lian_biao ├── ListNode.java └── Solution.java ├── lcof26_shu_de_zi_jie_gou ├── Solution.java └── TreeNode.java ├── lcof27_er_cha_shu_de_jing_xiang ├── Solution.java └── TreeNode.java ├── lcof28_dui_cheng_de_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof29_shun_shi_zhen_da_yin_ju_zhen └── Solution.java ├── lcof30_bao_han_minhan_shu_de_zhan └── MinStack.java ├── lcof31_zhan_de_ya_ru_dan_chu_xu_lie └── Solution.java ├── lcof32_i_cong_shang_dao_xia_da_yin_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof32_ii_cong_shang_dao_xia_da_yin_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof32_iii_cong_shang_dao_xia_da_yin_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof33_er_cha_sou_suo_shu_de_hou_xu_bian_li_xu_lie └── Solution.java ├── lcof34_er_cha_shu_zhong_he_wei_mou_yi_zhi_de_lu_jing ├── Solution.java └── TreeNode.java ├── lcof35_fu_za_lian_biao_de_fu_zhi ├── Node.java └── Solution.java ├── lcof36_er_cha_sou_suo_shu_yu_shuang_xiang_lian_biao ├── Node.java ├── Solution1.java └── Solution2.java ├── lcof37_xu_lie_hua_er_cha_shu ├── Codec.java └── TreeNode.java ├── lcof38_zi_fu_chuan_de_pai_lie └── Solution.java ├── lcof39_shu_zu_zhong_chu_xian_ci_shu_chao_guo_yi_ban_de_shu_zi └── Solution.java ├── lcof40_zui_xiao_de_kge_shu ├── Solution1.java └── Solution2.java ├── lcof41_shu_ju_liu_zhong_de_zhong_wei_shu └── MedianFinder.java ├── lcof42_lian_xu_zi_shu_zu_de_zui_da_he └── Solution.java ├── lcof43_1nzheng_shu_zhong_1chu_xian_de_ci_shu └── Solution.java ├── lcof44_shu_zi_xu_lie_zhong_mou_yi_wei_de_shu_zi └── Solution.java ├── lcof45_ba_shu_zu_pai_cheng_zui_xiao_de_shu └── Solution.java ├── lcof46_ba_shu_zi_fan_yi_cheng_zi_fu_chuan └── Solution.java ├── lcof47_li_wu_de_zui_da_jie_zhi └── Solution.java ├── lcof48_zui_chang_bu_han_zhong_fu_zi_fu_de_zi_zi_fu_chuan └── Solution.java ├── lcof49_chou_shu └── Solution.java ├── lcof50_di_yi_ge_zhi_chu_xian_yi_ci_de_zi_fu └── Solution.java ├── lcof51_shu_zu_zhong_de_ni_xu_dui ├── Solution1.java └── Solution2.java ├── lcof52_liang_ge_lian_biao_de_di_yi_ge_gong_gong_jie_dian ├── ListNode.java └── Solution.java ├── lcof53_i_zai_pai_xu_shu_zu_zhong_cha_zhao_shu_zi └── Solution.java ├── lcof53_ii_que_shi_de_shu_zi └── Solution.java ├── lcof55_er_cha_shu_de_shen_du ├── Solution.java └── TreeNode.java ├── lcof55_ii_ping_heng_er_cha_shu ├── Solution.java └── TreeNode.java ├── lcof56_i_shu_zu_zhong_shu_zi_chu_xian_de_ci_shu └── Solution.java ├── lcof56_ii_shu_zu_zhong_shu_zi_chu_xian_de_ci_shu └── Solution.java ├── lcof57_he_wei_sde_liang_ge_shu_zi └── Solution.java ├── lcof57_ii_he_wei_sde_lian_xu_zheng_shu_xu_lie ├── Solution1.java └── Solution2.java ├── lcof58_i_fan_zhuan_dan_ci_shun_xu └── Solution.java ├── lcof58_ii_zuo_xuan_zhuan_zi_fu_chuan └── Solution.java ├── lcof59_i_hua_dong_chuang_kou_de_zui_da_zhi └── Solution.java ├── lcof59_ii_dui_lie_de_zui_da_zhi ├── MaxQueue.java └── 队列的最大值.md ├── lcof60_nge_tou_zi_de_dian_shu └── Solution.java ├── lcof61_bu_ke_pai_zhong_de_shun_zi └── Solution.java ├── lcof62_yuan_quan_zhong_zui_hou_sheng_xia_de_shu_zi └── Solution.java ├── lcof63_gu_piao_de_zui_da_li_run ├── Solution1.java └── Solution2.java ├── lcof64_qiu_12n └── Solution.java ├── lcof65_bu_yong_jia_jian_cheng_chu_zuo_jia_fa └── Solution.java ├── lcof66_gou_jian_cheng_ji_shu_zu └── Solution.java ├── lcof67_ba_zi_fu_chuan_zhuan_huan_cheng_zheng_shu └── Solution.java ├── lcof68_i_er_cha_sou_suo_shu_de_zui_jin_gong_gong_zu_xian ├── Solution.java └── TreeNode.java ├── lcof68_ii_er_cha_shu_de_zui_jin_gong_gong_zu_xian ├── Solution.java └── TreeNode.java ├── lcof_er_cha_sou_suo_shu_de_di_kda_jie_dian ├── Solution.java └── TreeNode.java ├── lcp01_guess_numbers └── Solution.java ├── lcp02_deep_dark_fraction └── Solution.java ├── lcp03_programmable_robot └── Solution.java ├── lcp04 └── Solution.java ├── lcp05 └── Solution.java ├── lcp06_na_ying_bi └── Solution.java ├── lcp07_chuan_di_xin_xi └── Solution.java ├── lcp08_ju_qing_hong_fa_shi_jian └── Solution.java ├── lcp09_zui_xiao_tiao_yue_ci_shu └── Solution.java ├── lcp10 ├── Solution.java └── TreeNode.java ├── lcp12_xiao_zhang_shua_ti_ji_hua └── Solution.java ├── lcp13 └── Solution.java ├── lcp14 └── Solution.java ├── lcp15 └── Solution.java ├── lcp16 └── Solution.java ├── lcp17_nGK0Fy └── Solution.java ├── lcp18_2vYnGI └── Solution.java ├── lcp19_UlBDOe └── Solution.java ├── lcp20 └── Solution.java ├── lcp21 └── Solution.java ├── lcp22_ccw6C7 └── Solution.java ├── lcp23_er94lq └── Solution.java ├── lcp24 └── Solution.java ├── lcp25 └── Solution.java ├── lcp26 ├── Solution.java └── TreeNode.java ├── lcp27 ├── BlackBox1.java └── BlackBox2.java ├── lcp28_4xy4Wx └── Solution.java ├── lcp29_SNJvJP └── Solution.java ├── lcp30_p0NxJO └── Solution.java ├── lcp31 └── Solution.java ├── lcp33_o8SXZn └── Solution.java ├── lcp34_er_cha_shu_ran_se_UGC ├── Solution.java └── TreeNode.java ├── lcp39_0jQkd0 └── Solution.java ├── lcp40_uOAnQW └── Solution.java ├── lcp41_fHi6rV └── Solution.java ├── lcp44_sZ59z6 ├── Solution.java └── TreeNode.java ├── lcp45 └── Solution.java ├── lcp46 └── Solution.java ├── lcs01_Ju9Xwi └── Solution.java ├── lcs02_WqXACV └── Solution.java ├── lcs03_YesdPw └── Solution.java ├── question0001_two_sum ├── Solution1.java ├── Solution2.java ├── Solution3.java └── 两数之和.md ├── question0002_add_two_numbers ├── ListNode.java ├── Solution1.java ├── Solution2.java ├── Solution3.java └── 两数相加.md ├── question0003_longest_substring_without_repeating_characters ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── 无重复字符的最长子串.md ├── question0004_median_of_two_sorted_arrays └── Solution.java ├── question0005_longest_palindromic_substring ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java ├── Solution5.java ├── Solution6.java └── 最长回文子串.md ├── question0006_zigzag_conversion ├── Solution.java └── Z字形变换.md ├── question0007_reverse_integer ├── Solution1.java ├── Solution2.java └── 整数反转.md ├── question0008_string_to_integer_atoi ├── Solution.java └── 字符串转换整数(atoi).md ├── question0009_palindrome_number ├── Solution1.java ├── Solution2.java ├── Solution3.java └── 回文数.md ├── question0010_regular_expression_matching ├── Solution1.java ├── Solution2.java └── 正则表达式匹配.md ├── question0011_container_with_most_water ├── Solution1.java ├── Solution2.java └── 盛最多水的容器.md ├── question0012_integer_to_roman ├── Solution.java └── 整数转罗马数字.md ├── question0013_roman_to_integer ├── Solution.java └── 罗马数字转整数.md ├── question0014_longest_common_prefix ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── Solution5.java ├── question0015_3sum └── Solution.java ├── question0016_3sum_closest ├── Solution1.java └── Solution2.java ├── question0017_letter_combinations_of_a_phone_number └── Solution.java ├── question0018_4sum ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── Solution5.java ├── question0019_remove_nth_node_from_end_of_list ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0020_valid_parentheses └── Solution.java ├── question0021_merge_two_sorted_lists ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0022_generate_parentheses ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0023_merge_k_sorted_lists ├── ListNode.java ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0024_swap_nodes_in_pairs ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0025_reverse_nodes_in_k_group ├── ListNode.java └── Solution.java ├── question0026_remove_duplicates_from_sorted_array └── Solution.java ├── question0027_remove_element └── Solution.java ├── question0028_implement_strstr ├── Solution1.java └── Solution2.java ├── question0029_divide_two_integers └── Solution.java ├── question0030_substring_with_concatenation_of_all_words ├── Solution1.java └── Solution2.java ├── question0031_next_permutation └── Solution.java ├── question0032_longest_valid_parentheses ├── Solution1.java └── Solution2.java ├── question0033_search_in_rotated_sorted_array └── Solution.java ├── question0034_find_first_and_last_position_of_element_in_sorted_array └── Solution.java ├── question0035_search_insert_position ├── Solution1.java └── Solution2.java ├── question0036_valid_sudoku └── Solution.java ├── question0037_sudoku_solver └── Solution.java ├── question0038_count_and_say └── Solution.java ├── question0039_combination_sum └── Solution.java ├── question0040_combination_sum_ii └── Solution.java ├── question0041_first_missing_positive └── Solution.java ├── question0042_trapping_rain_water ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0043_multiply_strings └── Solution.java ├── question0044_wildcard_matching └── Solution.java ├── question0045_jump_game_ii └── Solution.java ├── question0046_permutations ├── Solution1.java └── Solution2.java ├── question0047_permutations_ii └── Solution.java ├── question0048_rotate_image └── Solution.java ├── question0049_group_anagrams └── Solution.java ├── question0050_powx_n ├── Solution1.java └── Solution2.java ├── question0051_n_queens ├── Solution1.java └── Solution2.java ├── question0052_n_queens_ii ├── Solution1.java └── Solution2.java ├── question0053_maximum_subarray ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0054_spiral_matrix └── Solution.java ├── question0055_jump_game ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0056_merge_intervals ├── Solution1.java └── Solution2.java ├── question0057_insert_interval └── Solution.java ├── question0058_length_of_last_word └── Solution.java ├── question0059_spiral_matrix_ii └── Solution.java ├── question0060_permutation_sequence └── Solution.java ├── question0061_rotate_list ├── ListNode.java └── Solution.java ├── question0062_unique_paths └── Solution.java ├── question0063_unique_paths_ii └── Solution.java ├── question0064_minimum_path_sum └── Solution.java ├── question0065_valid_number └── Solution.java ├── question0066_plus_one └── Solution.java ├── question0067_add_binary └── Solution.java ├── question0068_text_justification └── Solution.java ├── question0069_sqrtx ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0070_climbing_stairs ├── Solution1.java └── Solution2.java ├── question0071_simplify_path └── Solution.java ├── question0072_edit_distance ├── Solution1.java └── Solution2.java ├── question0073_set_matrix_zeroes ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0074_search_a_2d_matrix ├── Solution1.java └── Solution2.java ├── question0075_sort_colors └── Solution.java ├── question0076_minimum_window_substring └── Solution.java ├── question0077_combinations ├── Solution1.java └── Solution2.java ├── question0078_subsets └── Solution.java ├── question0079_word_search └── Solution.java ├── question0080_remove_duplicates_from_sorted_array_ii └── Solution.java ├── question0081_search_in_rotated_sorted_array_ii └── Solution.java ├── question0082_remove_duplicates_from_sorted_list_ii ├── ListNode.java └── Solution.java ├── question0083 ├── ListNode.java └── Solution.java ├── question0084_largest_rectangle_in_histogram ├── Solution1.java └── Solution2.java ├── question0085_maximal_rectangle └── Solution.java ├── question0086_partition_list ├── ListNode.java └── Solution.java ├── question0087_scramble_string └── Solution.java ├── question0088_merge_sorted_array └── Solution.java ├── question0089_gray_code └── Solution.java ├── question0090_subsets_ii └── Solution.java ├── question0091_decode_ways └── Solution.java ├── question0092_reverse_linked_list_ii ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0093_restore_ip_addresses └── Solution.java ├── question0094_binary_tree_inorder_traversal ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── TreeNode.java ├── question0095 ├── Solution.java └── TreeNode.java ├── question0098_validate_binary_search_tree ├── Solution.java └── TreeNode.java ├── question0099_recover_binary_search_tree ├── Solution1.java ├── Solution2.java ├── Solution3.java └── TreeNode.java ├── question0100_same_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0101_symmetric_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0102_binary_tree_level_order_traversal ├── Solution.java └── TreeNode.java ├── question0103_binary_tree_zigzag_level_order_traversal ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0104 ├── Solution.java └── TreeNode.java ├── question0105 ├── Solution.java └── TreeNode.java ├── question0106_construct_binary_tree_from_inorder_and_postorder_traversal ├── Solution.java └── TreeNode.java ├── question0107_binary_tree_level_order_traversal_ii ├── Solution.java └── TreeNode.java ├── question0108_convert_sorted_array_to_binary_search_tree ├── Solution.java └── TreeNode.java ├── question0109_convert_sorted_list_to_binary_search_tree ├── ListNode.java ├── Solution.java └── TreeNode.java ├── question0110_balanced_binary_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0111_minimum_depth_of_binary_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0113_path_sum_ii ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0114_flatten_binary_tree_to_linked_list ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── TreeNode.java ├── question0115_distinct_subsequences └── Solution.java ├── question0116_populating_next_right_pointers_in_each_node ├── Node.java ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0117_populating_next_right_pointers_in_each_node_ii ├── Node.java ├── Solution1.java └── Solution2.java ├── question0119_pascals_triangle_ii └── Solution.java ├── question0120_triangle └── Solution.java ├── question0121_best_time_to_buy_and_sell_stock ├── Solution1.java ├── Solution2.java └── 买卖股票的最佳时机.md ├── question0122_best_time_to_buy_and_sell_stock_ii ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0123_best_time_to_buy_and_sell_stock_iii ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0124_binary_tree_maximum_path_sum ├── Solution.java └── TreeNode.java ├── question0125_valid_palindrome └── Solution.java ├── question0126_word_ladder_ii ├── Solution1.java └── Solution2.java ├── question0128_longest_consecutive_sequence └── Solution.java ├── question0129_sum_root_to_leaf_numbers ├── Solution.java └── TreeNode.java ├── question0130_surrounded_regions ├── Solution1.java └── Solution2.java ├── question0131_palindrome_partitioning └── Solution.java ├── question0132_palindrome_partitioning_ii └── Solution.java ├── question0133_clone_graph ├── Node.java ├── Solution1.java └── Solution2.java ├── question0134_gas_station ├── Solution1.java └── Solution2.java ├── question0135_candy └── Solution.java ├── question0136_single_number └── Solution.java ├── question0137 ├── Solution1.java └── Solution2.java ├── question0138 ├── Node.java ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0139_word_break ├── Solution1.java └── Solution2.java ├── question0140_word_break_ii ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0141_linked_list_cycle ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0142_linked_list_cycle_ii ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0143_reorder_list ├── ListNode.java └── Solution.java ├── question0144_binary_tree_preorder_traversal ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java └── TreeNode.java ├── question0145_binary_tree_postorder_traversal ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java ├── Solution5.java ├── Solution6.java ├── Solution7.java └── TreeNode.java ├── question0146_lru_cache ├── LRUCache1.java └── LRUCache2.java ├── question0148_sort_list ├── ListNode.java ├── Solution1.java └── Solution2.java ├── question0149_max_points_on_a_line └── Solution.java ├── question0150_evaluate_reverse_polish_notation └── Solution.java ├── question0151_reverse_words_in_a_string └── Solution.java ├── question0152_maximum_product_subarray ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0153_find_minimum_in_rotated_sorted_array ├── Solution1.java └── Solution2.java ├── question0154_find_minimum_in_rotated_sorted_array_ii ├── Solution1.java └── Solution2.java ├── question0155_min_stack └── MinStack.java ├── question0156 ├── Solution.java └── TreeNode.java ├── question0157_read_n_characters_given_read4 ├── Reader4.java └── Solution.java ├── question0158_read_n_characters_given_read4_ii_call_multiple_times ├── Reader4.java └── Solution.java ├── question0159_longest_substring_with_at_most_two_distinct_characters └── Solution.java ├── question0160_intersection_of_two_linked_lists ├── ListNode.java ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0161_one_edit_distance └── Solution.java ├── question0162_find_peak_element └── Solution.java ├── question0163 └── Solution.java ├── question0165_compare_version_numbers └── Solution.java ├── question0168_excel_sheet_column_title └── Solution.java ├── question0169_majority_element ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java ├── Solution5.java ├── Solution6.java ├── Solution7.java └── 多数元素.md ├── question0170_two_sum_iii_data_structure_design └── TwoSum.java ├── question0171_excel_sheet_column_number └── Solution.java ├── question0173_binary_search_tree_iterator ├── BSTIterator.java └── TreeNode.java ├── question0175_combine_two_tables └── Solution.sql ├── question0176_second_highest_salary ├── Solution1.sql └── Solution2.sql ├── question0177_nth_highest_salary └── Solution.sql ├── question0179_largest_number └── Solution.java ├── question0186_reverse_words_in_a_string_ii └── Solution.java ├── question0187_repeated_dna_sequences └── Solution.java ├── question0188_best_time_to_buy_and_sell_stock_iv └── Solution.java ├── question0189_rotate_array ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0190_reverse_bits ├── Solution1.java └── Solution2.java ├── question0191_number_of_1_bits ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0198_house_robber └── Solution.java ├── question0199_binary_tree_right_side_view ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0200_number_of_islands ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0201_bitwise_and_of_numbers_range ├── Solution1.java └── Solution2.java ├── question0202_happy_number └── Solution.java ├── question0203_remove_linked_list_elements ├── ListNode.java └── Solution.java ├── question0205_isomorphic_strings └── Solution.java ├── question0206_reverse_linked_list ├── ListNode.java ├── Solution1.java ├── Solution2.java └── 反转链表.md ├── question0207_course_schedule ├── Solution1.java └── Solution2.java ├── question0208_implement_trie_prefix_tree └── Trie.java ├── question0209_minimum_size_subarray_sum ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0210_course_schedule_ii ├── Solution1.java └── Solution2.java ├── question0211_add_and_search_word_data_structure_design └── WordDictionary.java ├── question0212_word_search_ii └── Solution.java ├── question0213_house_robber_ii └── Solution.java ├── question0214_shortest_palindrome ├── Solution1.java └── Solution2.java ├── question0215_kth_largest_element_in_an_array └── Solution.java ├── question0216_combination_sum_iii └── Solution.java ├── question0218_the_skyline_problem └── Solution.java ├── question0219 └── Solution.java ├── question0220_contains_duplicate_iii ├── Solution1.java └── Solution2.java ├── question0221_maximal_square └── Solution.java ├── question0222_count_complete_tree_nodes ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0224_basic_calculator ├── Solution1.java └── Solution2.java ├── question0225_implement_stack_using_queues ├── MyStack.java └── 用队列实现栈.md ├── question0226_invert_binary_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0227_basic_calculator_ii └── Solution.java ├── question0228_summary_ranges └── Solution.java ├── question0230 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0231_power_of_two ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0232_implement_queue_using_stacks └── MyQueue.java ├── question0233_number_of_digit_one └── Solution.java ├── question0234_palindrome_linked_list ├── ListNode.java └── Solution.java ├── question0235_lowest_common_ancestor_of_a_binary_search_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0236_lowest_common_ancestor_of_a_binary_tree ├── Solution.java └── TreeNode.java ├── question0238_product_of_array_except_self ├── Solution1.java └── Solution2.java ├── question0239_sliding_window_maximum └── Solution.java ├── question0242_valid_anagram ├── Solution1.java └── Solution2.java ├── question0243 ├── Solution1.java └── Solution2.java ├── question0244 ├── WordDistance1.java └── WordDistance2.java ├── question0245 └── Solution.java ├── question0246 └── Solution.java ├── question0247_strobogrammatic_number_ii └── Solution.java ├── question0249_group_shifted_strings └── Solution.java ├── question0250_count_univalue_subtrees ├── Solution1.java ├── Solution2.java ├── Solution3.java └── TreeNode.java ├── question0251_flatten_2d_vector └── Vector2D.java ├── question0252 └── Solution.java ├── question0253 ├── Solution1.java └── Solution2.java ├── question0254_factor_combinations ├── Solution1.java └── Solution2.java ├── question0255 ├── Solution1.java └── Solution2.java ├── question0256 ├── Solution1.java └── Solution2.java ├── question0257_binary_tree_paths ├── Solution1.java ├── Solution2.java ├── Solution3.java └── TreeNode.java ├── question0258 └── Solution.java ├── question0259 └── Solution.java ├── question0260_single_number_iii └── Solution.java ├── question0261 └── Solution.java ├── question0263_ugly_number └── Solution.java ├── question0264_ugly_number_ii └── Solution.java ├── question0265 ├── Solution1.java └── Solution2.java ├── question0266 └── Solution.java ├── question0267_palindrome_permutation_ii └── Solution.java ├── question0268_missing_number └── Solution.java ├── question0270_closest_binary_search_tree_value ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0271_encode_and_decode_strings └── Codec.java ├── question0272_closest_binary_search_tree_value_ii ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0274_h_index └── Solution.java ├── question0275_h_index_ii └── Solution.java ├── question0276 └── Solution.java ├── question0277_find_the_celebrity ├── Relation.java ├── Solution1.java └── Solution2.java ├── question0278_first_bad_version ├── Solution.java └── VersionControl.java ├── question0279_perfect_squares └── Solution.java ├── question0280_wiggle_sort ├── Solution1.java └── Solution2.java ├── question0281_zigzag_iterator └── ZigzagIterator.java ├── question0282_expression_add_operators └── Solution.java ├── question0283_move_zeroes └── Solution.java ├── question0284 └── PeekingIterator.java ├── question0285_inorder_successor_in_bst ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0286_walls_and_gates └── Solution.java ├── question0287_find_the_duplicate_number └── Solution.java ├── question0288_unique_word_abbreviation └── ValidWordAbbr.java ├── question0289_game_of_life ├── Solution1.java └── Solution2.java ├── question0291 └── Solution.java ├── question0292_nim_game └── Solution.java ├── question0293_flip_game └── Solution.java ├── question0294_flip_game_ii └── Solution.java ├── question0295_find_median_from_data_stream └── MedianFinder.java ├── question0297_serialize_and_deserialize_binary_tree ├── Codec.java └── TreeNode.java ├── question0298 ├── Solution.java └── TreeNode.java ├── question0299_bulls_and_cows └── Solution.java ├── question0300_longest_increasing_subsequence ├── Solution1.java ├── Solution2.java └── 最长上升子序列.md ├── question0303_range_sum_query_immutable ├── NumArray1.java └── NumArray2.java ├── question0304_range_sum_query_2d_immutable └── NumMatrix.java ├── question0306 └── Solution.java ├── question0307_range_sum_query_mutable └── NumArray.java ├── question0309_best_time_to_buy_and_sell_stock_with_cooldown ├── Solution1.java └── Solution2.java ├── question0310_minimum_height_trees └── Solution.java ├── question0311_sparse_matrix_multiplication └── Solution.java ├── question0312_burst_balloons ├── Solution1.java └── Solution2.java ├── question0313_super_ugly_number └── Solution.java ├── question0314 ├── Solution.java └── TreeNode.java ├── question0315_count_of_smaller_numbers_after_self └── Solution.java ├── question0316_remove_duplicate_letters └── Solution.java ├── question0318_maximum_product_of_word_lengths └── Solution.java ├── question0319_bulb_switcher └── Solution.java ├── question0320_generalized_abbreviation └── Solution.java ├── question0321 └── Solution.java ├── question0322_coin_change ├── Solution1.java ├── Solution2.java └── 零钱兑换.md ├── question0323_number_of_connected_components_in_an_undirected_graph ├── Solution1.java └── Solution2.java ├── question0324_wiggle_sort_ii ├── Solution1.java └── Solution2.java ├── question0325_maximum_size_subarray_sum_equals_k └── Solution.java ├── question0326_power_of_three ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0327_count_of_range_sum ├── Solution1.java └── Solution2.java ├── question0328_odd_even_linked_list ├── ListNode.java └── Solution.java ├── question0329 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0330_patching_array └── Solution.java ├── question0331_verify_preorder_serialization_of_a_binary_tree ├── Solution1.java └── Solution2.java ├── question0332_reconstruct_itinerary └── Solution.java ├── question0333 ├── Solution.java └── TreeNode.java ├── question0334 └── Solution.java ├── question0335_self_crossing └── Solution.java ├── question0336_palindrome_pairs ├── Solution1.java └── Solution2.java ├── question0337_house_robber_iii ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0338_counting_bits └── Solution.java ├── question0339_nested_list_weight_sum ├── NestedInteger.java ├── Solution1.java └── Solution2.java ├── question0340 └── Solution.java ├── question0341_flatten_nested_list_iterator ├── NestedInteger.java └── NestedIterator.java ├── question0342_power_of_four └── Solution.java ├── question0343_integer_break ├── Solution1.java └── Solution2.java ├── question0344_reverse_string └── Solution.java ├── question0346_moving_average_from_data_stream └── MovingAverage.java ├── question0347_top_k_frequent_elements └── Solution.java ├── question0348_design_tic_tac_toe └── TicTacToe.java ├── question0349_intersection_of_two_arrays └── Solution.java ├── question0351_android_unlock_patterns └── Solution.java ├── question0352_data_stream_as_disjoint_intervals └── SummaryRanges.java ├── question0353_design_snake_game └── SnakeGame.java ├── question0354_russian_doll_envelopes ├── Solution1.java └── Solution2.java ├── question0355_design_twitter ├── Twitter1.java └── Twitter2.java ├── question0356_line_reflection └── Solution.java ├── question0357 └── Solution.java ├── question0359_logger_rate_limiter ├── Logger.java └── 日志速率限制器.md ├── question0360 └── Solution.java ├── question0361 └── Solution.java ├── question0362_design_hit_counter └── HitCounter.java ├── question0363_max_sum_of_rectangle_no_larger_than_k ├── Solution.java └── 矩形区域不超过K的最大数值和.md ├── question0364_nested_list_weight_sum_ii ├── NestedInteger.java └── Solution.java ├── question0365_water_and_jug_problem ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0366 ├── Solution.java └── TreeNode.java ├── question0367 ├── Solution1.java └── Solution2.java ├── question0368_largest_divisible_subset └── Solution.java ├── question0369_plus_one_linked_list ├── ListNode.java └── Solution.java ├── question0370 ├── Solution1.java └── Solution2.java ├── question0371_sum_of_two_integers └── Solution.java ├── question0372_super_pow └── Solution.java ├── question0373_find_k_pairs_with_smallest_sums ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0374_guess_number_higher_or_lower ├── GuessGame.java └── Solution.java ├── question0375_guess_number_higher_or_lower_ii ├── Solution.java └── 猜数字大小II.md ├── question0377_combination_sum_iv └── Solution.java ├── question0378 └── Solution.java ├── question0379_design_phone_directory └── PhoneDirectory.java ├── question0380 └── RandomizedSet.java ├── question0381_insert_delete_getrandom_o1_duplicates_allowed └── RandomizedCollection.java ├── question0382_linked_list_random_node ├── ListNode.java └── Solution.java ├── question0383_ransom_note └── Solution.java ├── question0384_shuffle_an_array └── Solution.java ├── question0385_mini_parser ├── NestedInteger.java └── Solution.java ├── question0386_lexicographical_numbers └── Solution.java ├── question0387 ├── Solution1.java └── Solution2.java ├── question0387_first_unique_character_in_a_string └── Solution.java ├── question0388_longest_absolute_file_path └── Solution.java ├── question0389 └── Solution.java ├── question0390_elimination_game └── Solution.java ├── question0391_perfect_rectangle └── Solution.java ├── question0392_is_subsequence ├── Solution1.java └── Solution2.java ├── question0393_utf_8_validation └── Solution.java ├── question0394_decode_string ├── Solution1.java └── Solution2.java ├── question0395_longest_substring_with_at_least_k_repeating_characters └── Solution.java ├── question0396_rotate_function └── Solution.java ├── question0397_integer_replacement ├── Solution1.java └── Solution2.java ├── question0398_random_pick_index └── Solution.java ├── question0399_evaluate_division └── Solution.java ├── question0400_nth_digit └── Solution.java ├── question0401_binary_watch └── Solution.java ├── question0402_remove_k_digits └── Solution.java ├── question0403_frog_jump └── Solution.java ├── question0404_sum_of_left_leaves ├── Solution.java └── TreeNode.java ├── question0405_convert_a_number_to_hexadecimal └── Solution.java ├── question0406 └── Solution.java ├── question0407_trapping_rain_water_ii └── Solution.java ├── question0408_valid_word_abbreviation └── Solution.java ├── question0409_longest_palindrome └── Solution.java ├── question0410_split_array_largest_sum ├── Solution1.java └── Solution2.java ├── question0412 └── Solution.java ├── question0413_arithmetic_slices ├── Solution1.java └── Solution2.java ├── question0415_add_strings └── Solution.java ├── question0416_partition_equal_subset_sum └── Solution.java ├── question0418_sentence_screen_fitting └── Solution.java ├── question0419_battleships_in_a_board ├── Solution1.java ├── Solution2.java └── 甲板上的战舰.md ├── question0420_strong_password_checker └── Solution.java ├── question0421_maximum_xor_of_two_numbers_in_an_array ├── Solution1.java ├── Solution2.java └── 数组中两个数的最大异或值.md ├── question0422_valid_word_square └── Solution.java ├── question0423_reconstruct_original_digits_from_english ├── Solution.java └── 从英文中重建数字.md ├── question0424_longest_repeating_character_replacement └── Solution.java ├── question0426_convert_binary_search_tree_to_sorted_doubly_linked_list ├── Node.java ├── Solution.java └── 将二叉搜索树转化为排序的双向链表.md ├── question0427_construct_quad_tree ├── Node.java ├── Solution.java └── 建立四叉树.md ├── question0428_serialize_and_deserialize_n_ary_tree ├── Codec.java └── Node.java ├── question0430_flatten_a_multilevel_doubly_linked_list ├── Node.java ├── Solution1.java └── Solution2.java ├── question0431_encode_n_ary_tree_to_binary_tree ├── Codec.java ├── Node.java └── TreeNode.java ├── question0432_all_oone_data_structure └── AllOne.java ├── question0433_minimum_genetic_mutation ├── Solution1.java ├── Solution2.java └── 最小基因变化.md ├── question0434_number_of_segments_in_a_string └── Solution.java ├── question0435_non_overlapping_intervals ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0436_find_right_interval ├── Solution.java └── 寻找右区间.md ├── question0437_path_sum_iii ├── Solution.java └── TreeNode.java ├── question0438_find_all_anagrams_in_a_string └── Solution.java ├── question0439_ternary_expression_parser ├── Solution1.java ├── Solution2.java └── 三元表达式解析器.md ├── question0440_k_th_smallest_in_lexicographical_order └── Solution.java ├── question0441_arranging_coins ├── Solution1.java └── Solution2.java ├── question0443 └── Solution.java ├── question0444 └── Solution.java ├── question0445_add_two_numbers_ii ├── ListNode.java └── Solution.java ├── question0446_arithmetic_slices_ii_subsequence └── Solution.java ├── question0447_number_of_boomerangs └── Solution.java ├── question0448_find_all_numbers_disappeared_in_an_array └── Solution.java ├── question0449_serialize_and_deserialize_bst ├── Codec.java └── TreeNode.java ├── question0451_sort_characters_by_frequency └── Solution.java ├── question0452_minimum_number_of_arrows_to_burst_balloons ├── Solution.java └── 用最少数量的箭引爆气球.md ├── question0453 └── Solution.java ├── question0454_4sum_ii └── Solution.java ├── question0455_assign_cookies └── Solution.java ├── question0456_132_pattern └── Solution.java ├── question0457_circular_array_loop └── Solution.java ├── question0458_poor_pigs └── Solution.java ├── question0459_repeated_substring_pattern ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0460_lfu_cache └── LFUCache.java ├── question0461_hamming_distance └── Solution.java ├── question0462_minimum_moves_to_equal_array_elements_ii ├── Solution.java └── 最少移动次数使数组元素相等II.md ├── question0463_island_perimeter └── Solution.java ├── question0464 └── Solution.java ├── question0466_count_the_repetitions ├── Solution1.java └── Solution2.java ├── question0467 ├── Solution1.java └── Solution2.java ├── question0468_validate_ip_address ├── Solution.java └── 验证IP地址.md ├── question0469_convex_polygon ├── Solution.java └── 凸多边形.md ├── question0470_implement_rand10_using_rand7 ├── SolBase.java ├── Solution.java └── 用Rand7()实现Rand10().md ├── question0471_encode_string_with_shortest_length ├── Solution1.java └── Solution2.java ├── question0472_concatenated_words └── Solution.java ├── question0473_matchsticks_to_square └── Solution.java ├── question0474_ones_and_zeroes └── Solution.java ├── question0475_heaters └── Solution.java ├── question0476_number_complement └── Solution.java ├── question0477_total_hamming_distance └── Solution.java ├── question0478_generate_random_point_in_a_circle └── Solution.java ├── question0479_largest_palindrome_product └── Solution.java ├── question0480_sliding_window_median └── Solution.java ├── question0481_magical_string └── Solution.java ├── question0482 └── Solution.java ├── question0483_smallest_good_base └── Solution.java ├── question0484_find_permutation └── Solution.java ├── question0485 └── Solution.java ├── question0486_predict_the_winner ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0487 └── Solution.java ├── question0488_zuma_game └── Solution.java ├── question0490_the_maze └── Solution.java ├── question0491_increasing_subsequences └── Solution.java ├── question0492_construct_the_rectangle └── Solution.java ├── question0493_reverse_pairs ├── Solution1.java └── Solution2.java ├── question0494_target_sum └── Solution.java ├── question0495_teemo_attacking └── Solution.java ├── question0496 ├── Solution1.java └── Solution2.java ├── question0497_random_point_in_non_overlapping_rectangles └── Solution.java ├── question0499_the_maze_iii └── Solution.java ├── question0500_keyboard_row └── Solution.java ├── question0502_ipo └── Solution.java ├── question0503_next_greater_element_ii ├── Solution1.java └── Solution2.java ├── question0504_base_7 └── Solution.java ├── question0505_the_maze_ii ├── Solution1.java └── Solution2.java ├── question0506_relative_ranks └── Solution.java ├── question0507_perfect_number └── Solution.java ├── question0508 ├── Solution.java └── TreeNode.java ├── question0509_fibonacci_number ├── Solution1.java └── Solution2.java ├── question0510_inorder_successor_in_bst_ii ├── Node.java └── Solution.java ├── question0513 ├── Solution.java └── TreeNode.java ├── question0514_freedom_trail └── Solution.java ├── question0515 ├── Solution.java └── TreeNode.java ├── question0516_longest_palindromic_subsequence └── Solution.java ├── question0517_super_washing_machines ├── Solution1.java └── Solution2.java ├── question0518_coin_change_2 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0519_random_flip_matrix └── Solution.java ├── question0520_detect_capital └── Solution.java ├── question0521_longest_uncommon_subsequence_i └── Solution.java ├── question0522_longest_uncommon_subsequence_ii ├── Solution1.java └── Solution2.java ├── question0523_continuous_subarray_sum ├── Solution1.java └── Solution2.java ├── question0524_longest_word_in_dictionary_through_deleting └── Solution.java ├── question0525_contiguous_array ├── Solution1.java └── Solution2.java ├── question0526_beautiful_arrangement └── Solution.java ├── question0528_random_pick_with_weight └── Solution.java ├── question0529_minesweeper └── Solution.java ├── question0530_minimum_absolute_difference_in_bst ├── Solution.java └── TreeNode.java ├── question0531 └── Solution.java ├── question0532 └── Solution.java ├── question0535_encode_and_decode_tinyurl └── Codec.java ├── question0536_construct_binary_tree_from_string ├── Solution.java └── TreeNode.java ├── question0537_complex_number_multiplication └── Solution.java ├── question0538_convert_bst_to_greater_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0539_minimum_time_difference └── Solution.java ├── question0540_single_element_in_a_sorted_array └── Solution.java ├── question0541 └── Solution.java ├── question0542_01_matrix └── Solution.java ├── question0543_diameter_of_binary_tree ├── Solution.java ├── TreeNode.java └── 二叉树的直径.md ├── question0544 └── Solution.java ├── question0545_boundary_of_binary_tree ├── Solution.java └── TreeNode.java ├── question0546_remove_boxes └── Solution.java ├── question0547_number_of_provinces └── Solution.java ├── question0549_binary_tree_longest_consecutive_sequence_ii ├── Solution.java └── TreeNode.java ├── question0551_student_attendance_record_i └── Solution.java ├── question0552_student_attendance_record_ii ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0553_optimal_division └── Solution.java ├── question0554_brick_wall └── Solution.java ├── question0555 └── Solution.java ├── question0556 └── Solution.java ├── question0557_reverse_words_in_a_string_iii └── Solution.java ├── question0558_quad_tree_intersection ├── Node.java └── Solution.java ├── question0559_maximum_depth_of_n_ary_tree ├── Node.java └── Solution.java ├── question0560_subarray_sum_equals_k ├── Solution1.java └── Solution2.java ├── question0561_array_partition_i └── Solution.java ├── question0562 └── Solution.java ├── question0563_binary_tree_tilt ├── Solution.java └── TreeNode.java ├── question0564_find_the_closest_palindrome └── Solution.java ├── question0565_array_nesting └── Solution.java ├── question0566_reshape_the_matrix └── Solution.java ├── question0567_permutation_in_string └── Solution.java ├── question0568_maximum_vacation_days ├── Solution1.java └── Solution2.java ├── question0572_subtree_of_another_tree ├── Solution.java └── TreeNode.java ├── question0573 └── Solution.java ├── question0575_distribute_candies └── Solution.java ├── question0576_out_of_boundary_paths └── Solution.java ├── question0581_shortest_unsorted_continuous_subarray └── Solution.java ├── question0582_kill_process └── Solution.java ├── question0583_delete_operation_for_two_strings └── Solution.java ├── question0587_erect_the_fence └── Solution.java ├── question0589_n_ary_tree_preorder_traversal ├── Node.java ├── Solution1.java └── Solution2.java ├── question0590 ├── Node.java ├── Solution1.java └── Solution2.java ├── question0592_fraction_addition_and_subtraction └── Solution.java ├── question0593_valid_square └── Solution.java ├── question0594_longest_harmonious_subsequence └── Solution.java ├── question0598 ├── Node.java ├── Solution1.java └── Solution2.java ├── question0598_range_addition_ii └── Solution.java ├── question0599_minimum_index_sum_of_two_lists └── Solution.java ├── question0600_non_negative_integers_without_consecutive_ones ├── Solution1.java └── Solution2.java ├── question0604_design_compressed_string_iterator ├── StringIterator.java └── 迭代压缩字符串.md ├── question0605_can_place_flowers └── Solution.java ├── question0606 ├── Solution.java └── TreeNode.java ├── question0609_find_duplicate_file_in_system └── Solution.java ├── question0611_valid_triangle_number └── Solution.java ├── question0617_merge_two_binary_trees ├── Solution.java └── TreeNode.java ├── question0622_design_circular_queue └── MyCircularQueue.java ├── question0623 ├── Solution.java └── TreeNode.java ├── question0624_maximum_distance_in_arrays ├── Solution.java └── 数组列表中的最大距离.md ├── question0628 └── Solution.java ├── question0629_k_inverse_pairs_array └── Solution.java ├── question0630_course_schedule_iii └── Solution.java ├── question0631_design_excel_sum_formula └── Excel.java ├── question0632_smallest_range_covering_elements_from_k_lists ├── Solution1.java └── Solution2.java ├── question0633_sum_of_square_numbers ├── Solution1.java └── Solution2.java ├── question0635 └── LogSystem.java ├── question0636_exclusive_time_of_functions └── Solution.java ├── question0637_average_of_levels_in_binary_tree ├── Solution.java └── TreeNode.java ├── question0638_shopping_offers ├── Solution1.java └── Solution2.java ├── question0639_decode_ways_ii ├── Solution1.java └── Solution2.java ├── question0640_solve_the_equation └── Solution.java ├── question0641_design_circular_deque └── MyCircularDeque.java ├── question0643_maximum_average_subarray_i └── Solution.java ├── question0645_set_mismatch └── Solution.java ├── question0646_maximum_length_of_pair_chain └── Solution.java ├── question0647_palindromic_substrings ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0648_replace_words └── Solution.java ├── question0649_dota2_senate └── Solution.java ├── question0650_2_keys_keyboard └── Solution.java ├── question0651_4_keys_keyboard └── Solution.java ├── question0652 ├── Solution.java └── TreeNode.java ├── question0653 ├── Solution1.java ├── Solution2.java ├── Solution3.java └── TreeNode.java ├── question0656_coin_path ├── Solution1.java └── Solution2.java ├── question0657_robot_return_to_origin └── Solution.java ├── question0658_find_k_closest_elements ├── Solution1.java └── Solution2.java ├── question0659_split_array_into_consecutive_subsequences └── Solution.java ├── question0661_image_smoother ├── Solution1.java └── Solution2.java ├── question0662 ├── Solution.java └── TreeNode.java ├── question0663_equal_tree_partition ├── Solution.java └── TreeNode.java ├── question0664 └── Solution.java ├── question0665_non_decreasing_array └── Solution.java ├── question0666_path_sum_iv └── Solution.java ├── question0667_beautiful_arrangement_ii └── Solution.java ├── question0668_kth_smallest_number_in_multiplication_table └── Solution.java ├── question0669 ├── Solution.java └── TreeNode.java ├── question0670_maximum_swap └── Solution.java ├── question0671_second_minimum_node_in_a_binary_tree ├── Solution.java └── TreeNode.java ├── question0672_bulb_switcher_ii └── Solution.java ├── question0673_number_of_longest_increasing_subsequence └── Solution.java ├── question0674_longest_continuous_increasing_subsequence └── Solution.java ├── question0675_cut_off_trees_for_golf_event └── Solution.java ├── question0676_implement_magic_dictionary └── MagicDictionary.java ├── question0677_map_sum_pairs └── MapSum.java ├── question0678_valid_parenthesis_string └── Solution.java ├── question0679_24_game └── Solution.java ├── question0680_valid_palindrome_ii └── Solution.java ├── question0681 └── Solution.java ├── question0684_redundant_connection ├── Solution1.java └── Solution2.java ├── question0685_redundant_connection_ii └── Solution.java ├── question0686_repeated_string_match ├── Solution1.java └── Solution2.java ├── question0687 ├── Solution.java └── TreeNode.java ├── question0688_knight_probability_in_chessboard └── Solution.java ├── question0689_maximum_sum_of_3_non_overlapping_subarrays ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0690 ├── Employee.java ├── Solution1.java └── Solution2.java ├── question0691_stickers_to_spell_word ├── Solution1.java └── Solution2.java ├── question0692_top_k_frequent_words └── Solution.java ├── question0693_binary_number_with_alternating_bits └── Solution.java ├── question0694 └── Solution.java ├── question0695_max_area_of_island └── Solution.java ├── question0696_count_binary_substrings └── Solution.java ├── question0697_degree_of_an_array └── Solution.java ├── question0698_partition_to_k_equal_sum_subsets └── Solution.java ├── question0699_falling_squares ├── Solution1.java └── Solution2.java ├── question0700_search_in_a_binary_search_tree ├── Solution.java └── TreeNode.java ├── question0701_insert_into_a_binary_search_tree ├── Solution.java └── TreeNode.java ├── question0703_kth_largest_element_in_a_stream └── KthLargest.java ├── question0704_binary_search └── Solution.java ├── question0705_design_hashset └── MyHashSet.java ├── question0706_design_hashmap └── MyHashMap.java ├── question0707_design_linked_list └── MyLinkedList.java ├── question0708_insert_into_a_cyclic_sorted_list ├── Node.java └── Solution.java ├── question0709_to_lower_case └── Solution.java ├── question0710_random_pick_with_blacklist ├── Solution1.java └── Solution2.java ├── question0712 └── Solution.java ├── question0713 └── Solution.java ├── question0714_best_time_to_buy_and_sell_stock_with_transaction_fee ├── Solution1.java └── Solution2.java ├── question0715_range_module └── RangeModule.java ├── question0716_max_stack ├── MaxStack1.java └── MaxStack2.java ├── question0717_1_bit_and_2_bit_characters └── Solution.java ├── question0718_maximum_length_of_repeated_subarray ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0719_find_k_th_smallest_pair_distance ├── Solution1.java └── Solution2.java ├── question0721_accounts_merge └── Solution.java ├── question0722_remove_comments └── Solution.java ├── question0724_find_pivot_index └── Solution.java ├── question0725_split_linked_list_in_parts ├── ListNode.java └── Solution.java ├── question0726_number_of_atoms └── Solution.java ├── question0727_minimum_window_subsequence ├── Solution1.java └── Solution2.java ├── question0728_self_dividing_numbers └── Solution.java ├── question0729_my_calendar_i ├── MyCalendar1.java ├── MyCalendar2.java └── MyCalendar3.java ├── question0730_count_different_palindromic_subsequences └── Solution.java ├── question0731_my_calendar_ii └── MyCalendarTwo.java ├── question0732_my_calendar_iii └── MyCalendarThree.java ├── question0733_flood_fill └── Solution.java ├── question0734_sentence_similarity ├── Solution.java └── 句子相似性.md ├── question0735_asteroid_collision └── Solution.java ├── question0736_parse_lisp_expression └── Solution.java ├── question0737_sentence_similarity_ii └── Solution.java ├── question0738_monotone_increasing_digits ├── Solution1.java └── Solution2.java ├── question0739_daily_temperatures ├── Solution1.java └── Solution2.java ├── question0740_delete_and_earn └── Solution.java ├── question0741_cherry_pickup └── Solution.java ├── question0742_closest_leaf_in_a_binary_tree ├── Solution.java └── TreeNode.java ├── question0743_network_delay_time ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0744 └── Solution.java ├── question0745_prefix_and_suffix_search └── WordFilter.java ├── question0746_min_cost_climbing_stairs └── Solution.java ├── question0747_largest_number_at_least_twice_of_others └── Solution.java ├── question0748_shortest_completing_word └── Solution.java ├── question0749_contain_virus └── Solution.java ├── question0750_number_of_corner_rectangles └── Solution.java ├── question0751_ip_to_cidr ├── IP到CIDR.md └── Solution.java ├── question0752_open_the_lock ├── Solution1.java └── Solution2.java ├── question0753_cracking_the_safe └── Solution.java ├── question0754 └── Solution.java ├── question0756_pyramid_transition_matrix └── Solution.java ├── question0757_set_intersection_size_at_least_two └── Solution.java ├── question0758_bold_words_in_string ├── Solution.java └── 字符串中的加粗单词.md ├── question0760_find_anagram_mappings ├── Solution1.java ├── Solution2.java └── 找出变位映射.md ├── question0761_special_binary_string └── Solution.java ├── question0762_prime_number_of_set_bits_in_binary_representation └── Solution.java ├── question0763_partition_labels └── Solution.java ├── question0764_largest_plus_sign ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0765_couples_holding_hands └── Solution.java ├── question0766_toeplitz_matrix └── Solution.java ├── question0767_reorganize_string └── Solution.java ├── question0768_max_chunks_to_make_sorted_ii └── Solution.java ├── question0769_max_chunks_to_make_sorted └── Solution.java ├── question0770_basic_calculator_iv └── Solution.java ├── question0771_jewels_and_stones └── Solution.java ├── question0773_sliding_puzzle └── Solution.java ├── question0775_global_and_local_inversions └── Solution.java ├── question0776_split_bst ├── Solution.java └── TreeNode.java ├── question0777_swap_adjacent_in_lr_stringD └── Solution.java ├── question0778_swim_in_rising_water └── Solution.java ├── question0779_k_th_symbol_in_grammark_th_symbol_in_grammar └── Solution.java ├── question0780_reaching_points └── Solution.java ├── question0781_rabbits_in_forest └── Solution.java ├── question0782_transform_to_chessboard └── Solution.java ├── question0783_minimum_distance_between_bst_nodes ├── Solution.java └── TreeNode.java ├── question0785_is_graph_bipartite └── Solution.java ├── question0786_k_th_smallest_prime_fraction ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0787_cheapest_flights_within_k_stops └── Solution.java ├── question0788_rotated_digits └── Solution.java ├── question0789_escape_the_ghosts └── Solution.java ├── question0790_domino_and_tromino_tiling └── Solution.java ├── question0791_custom_sort_string └── Solution.java ├── question0792_number_of_matching_subsequences └── Solution.java ├── question0793_preimage_size_of_factorial_zeroes_function └── Solution.java ├── question0794_valid_tic_tac_toe_state └── Solution.java ├── question0795 ├── Solution1.java └── Solution2.java ├── question0796 ├── Solution1.java └── Solution2.java ├── question0797_all_paths_from_source_to_target └── Solution.java ├── question0798_smallest_rotation_with_highest_score ├── Solution1.java └── Solution2.java ├── question0799 └── Solution.java ├── question0800_similar_rgb_color ├── Solution1.java └── Solution2.java ├── question0801_minimum_swaps_to_make_sequences_increasing ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0802_find_eventual_safe_states └── Solution.java ├── question0803_bricks_falling_when_hit └── Solution.java ├── question0805_split_array_with_same_average └── Solution.java ├── question0806_number_of_lines_to_write_string └── Solution.java ├── question0807_max_increase_to_keep_city_skyline └── Solution.java ├── question0808_soup_servings ├── Solution1.java └── Solution2.java ├── question0809_expressive_words └── Solution.java ├── question0810_chalkboard_xor_game └── Solution.java ├── question0811_subdomain_visit_count └── Solution.java ├── question0812_largest_triangle_area └── Solution.java ├── question0813_largest_sum_of_averages ├── Solution1.java └── Solution2.java ├── question0815_bus_routes └── Solution.java ├── question0816_ambiguous_coordinates └── Solution.java ├── question0817_linked_list_components ├── ListNode.java └── Solution.java ├── question0818_race_car ├── Solution1.java └── Solution2.java ├── question0819_most_common_word └── Solution.java ├── question0820_short_encoding_of_words └── Solution.java ├── question0821_shortest_distance_to_a_character ├── Solution1.java └── Solution2.java ├── question0822_card_flipping_game ├── Solution1.java └── Solution2.java ├── question0823_binary_trees_with_factors └── Solution.java ├── question0824_goat_latin └── Solution.java ├── question0825_friends_of_appropriate_ages ├── Solution1.java └── Solution2.java ├── question0826 └── Solution.java ├── question0827_making_a_large_island └── Solution.java ├── question0828_count_unique_characters_of_all_substrings_of_a_given_string └── Solution.java ├── question0829_consecutive_numbers_sum └── Solution.java ├── question0830_positions_of_large_groups └── Solution.java ├── question0831_masking_personal_information └── Solution.java ├── question0832_flipping_an_image └── Solution.java ├── question0833_find_and_replace_in_string └── Solution.java ├── question0834_sum_of_distances_in_tree └── Solution.java ├── question0835_image_overlap └── Solution.java ├── question0836_rectangle_overlap └── Solution.java ├── question0837_new_21_game ├── Solution1.java └── Solution2.java ├── question0838_push_dominoes └── Solution.java ├── question0839_similar_string_groups └── Solution.java ├── question0840_magic_squares_in_grid └── Solution.java ├── question0841_keys_and_rooms └── Solution.java ├── question0842_split_array_into_fibonacci_sequence └── Solution.java ├── question0843_guess_the_word ├── Master.java └── Solution.java ├── question0844_backspace_string_compare ├── Solution1.java └── Solution2.java ├── question0845_longest_mountain_in_array └── Solution.java ├── question0846_hand_of_straights ├── Solution1.java └── Solution2.java ├── question0847_shortest_path_visiting_all_nodes ├── Solution1.java └── Solution2.java ├── question0848_shifting_letters └── Solution.java ├── question0849_maximize_distance_to_closest_person └── Solution.java ├── question0850_rectangle_area_ii ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0851_loud_and_rich └── Solution.java ├── question0852_peak_index_in_a_mountain_array └── Solution.java ├── question0853_car_fleet └── Solution.java ├── question0854_k_similar_strings └── Solution.java ├── question0855_exam_room └── ExamRoom.java ├── question0856_score_of_parentheses └── Solution.java ├── question0857_minimum_cost_to_hire_k_workers └── Solution.java ├── question0858_mirror_reflection └── Solution.java ├── question0859_buddy_strings └── Solution.java ├── question0860_lemonade_change └── Solution.java ├── question0861_score_after_flipping_matrix └── Solution.java ├── question0862_shortest_subarray_with_sum_at_least_k └── Solution.java ├── question0863_all_nodes_distance_k_in_binary_tree ├── Solution.java └── TreeNode.java ├── question0864_shortest_path_to_get_all_keys └── Solution.java ├── question0865 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0866_prime_palindrome └── Solution.java ├── question0867_transpose_matrix └── Solution.java ├── question0868_binary_gap └── Solution.java ├── question0869_reordered_power_of_2 └── Solution.java ├── question0870_advantage_shuffle └── Solution.java ├── question0871_minimum_number_of_refueling_stops └── Solution.java ├── question0872 ├── Solution.java └── TreeNode.java ├── question0873 ├── Solution1.java └── Solution2.java ├── question0874_walking_robot_simulation └── Solution.java ├── question0875_koko_eating_bananas └── Solution.java ├── question0876_middle_of_the_linked_list ├── ListNode.java └── Solution.java ├── question0877_stone_game ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0878 ├── Solution1.java └── Solution2.java ├── question0879_profitable_schemes └── Solution.java ├── question0880_decoded_string_at_index └── Solution.java ├── question0881 └── Solution.java ├── question0882_reachable_nodes_in_subdivided_graph └── Solution.java ├── question0883_projection_area_of_3d_shapes └── Solution.java ├── question0884_uncommon_words_from_two_sentences └── Solution.java ├── question0885_spiral_matrix_iii └── Solution.java ├── question0886_possible_bipartition └── Solution.java ├── question0887_super_egg_drop ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question0888_fair_candy_swap └── Solution.java ├── question0889 ├── Solution.java └── TreeNode.java ├── question0890_find_and_replace_pattern └── Solution.java ├── question0891_sum_of_subsequence_widths └── Solution.java ├── question0892_surface_area_of_3d_shapes └── Solution.java ├── question0893_groups_of_special_equivalent_strings └── Solution.java ├── question0894 ├── Solution.java └── TreeNode.java ├── question0895_maximum_frequency_stack └── FreqStack.java ├── question0896_monotonic_array └── Solution.java ├── question0897_increasing_order_search_tree ├── Solution.java └── TreeNode.java ├── question0898_bitwise_ors_of_subarrays ├── Solution1.java └── Solution2.java ├── question0899_orderly_queue └── Solution.java ├── question0900_rle_iterator └── RLEIterator.java ├── question0901_online_stock_span └── StockSpanner.java ├── question0902_numbers_at_most_n_given_digit_set └── Solution.java ├── question0903_valid_permutations_for_di_sequence ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0904_fruit_into_baskets └── Solution.java ├── question0905 └── Solution.java ├── question0906_super_palindromes └── Solution.java ├── question0907_sum_of_subarray_minimums └── Solution.java ├── question0908_smallest_range_i └── Solution.java ├── question0909_snakes_and_ladders └── Solution.java ├── question0910_smallest_range_ii └── Solution.java ├── question0911_online_election └── TopVotedCandidate.java ├── question0912_sort_an_array └── Solution.java ├── question0913_cat_and_mouse ├── Solution.java └── Solution1.java ├── question0914_x_of_a_kind_in_a_deck_of_cards └── Solution.java ├── question0915_partition_array_into_disjoint_intervals └── Solution.java ├── question0916 └── Solution.java ├── question0917_reverse_only_letters └── Solution.java ├── question0918_maximum_sum_circular_subarray ├── Solution1.java └── Solution2.java ├── question0919 ├── CBTInserter.java └── TreeNode.java ├── question0920_number_of_music_playlists └── Solution.java ├── question0921_minimum_add_to_make_parentheses_valid └── Solution.java ├── question0922_sort_array_by_parity_ii └── Solution.java ├── question0923 └── Solution.java ├── question0924_minimize_malware_spread └── Solution.java ├── question0925_long_pressed_name └── Solution.java ├── question0926_flip_string_to_monotone_increasing └── Solution.java ├── question0927_three_equal_parts └── Solution.java ├── question0928_minimize_malware_spread_ii └── Solution.java ├── question0929_unique_email_addresses └── Solution.java ├── question0930_binary_subarrays_with_sum ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0931_minimum_falling_path_sum ├── Solution1.java └── Solution2.java ├── question0932_beautiful_array └── Solution.java ├── question0933_number_of_recent_calls └── RecentCounter.java ├── question0934_shortest_bridge └── Solution.java ├── question0935_knight_dialer ├── Solution1.java └── Solution2.java ├── question0936_stamping_the_sequence └── Solution.java ├── question0937_reorder_data_in_log_files └── Solution.java ├── question0938_range_sum_of_bst ├── Solution.java └── TreeNode.java ├── question0939_minimum_area_rectangle ├── Solution1.java └── Solution2.java ├── question0940_distinct_subsequences_ii └── Solution.java ├── question0941_valid_mountain_array └── Solution.java ├── question0942_di_string_match └── Solution.java ├── question0943_find_the_shortest_superstring ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0944_delete_columns_to_make_sorted └── Solution.java ├── question0945_minimum_increment_to_make_array_unique └── Solution.java ├── question0946_validate_stack_sequences └── Solution.java ├── question0947_most_stones_removed_with_same_row_or_column └── Solution.java ├── question0948_bag_of_tokens └── Solution.java ├── question0949_largest_time_for_given_digits └── Solution.java ├── question0950_reveal_cards_in_increasing_order └── Solution.java ├── question0951 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0952_largest_component_size_by_common_factor └── Solution.java ├── question0953_verifying_an_alien_dictionary └── Solution.java ├── question0954_array_of_doubled_pairs └── Solution.java ├── question0955_delete_columns_to_make_sorted_ii └── Solution.java ├── question0956_tallest_billboard └── Solution.java ├── question0957_prison_cells_after_n_days └── Solution.java ├── question0958 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question0959_regions_cut_by_slashes └── Solution.java ├── question096 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question0960_delete_columns_to_make_sorted_iii └── Solution.java ├── question0961_n_repeated_element_in_size_2n_array ├── Solution1.java └── Solution2.java ├── question0962_maximum_width_ramp └── Solution.java ├── question0963_minimum_area_rectangle_ii ├── Solution1.java └── Solution2.java ├── question0964_least_operators_to_express_number └── Solution.java ├── question0965 ├── Solution.java └── TreeNode.java ├── question0966_vowel_spellchecker └── Solution.java ├── question0967 └── Solution.java ├── question0968_binary_tree_cameras ├── Solution.java └── TreeNode.java ├── question0969_pancake_sorting └── Solution.java ├── question097 ├── Solution1.java └── Solution2.java ├── question0970_powerful_integers └── Solution.java ├── question0971 ├── Solution.java └── TreeNode.java ├── question0972_equal_rational_numbers └── Solution.java ├── question0973_k_closest_points_to_origin ├── Solution1.java └── Solution2.java ├── question0974_subarray_sums_divisible_by_k └── Solution.java ├── question0975_odd_even_jump ├── Solution1.java └── Solution2.java ├── question0976_largest_perimeter_triangle └── Solution.java ├── question0977_squares_of_a_sorted_array └── Solution.java ├── question0978_longest_turbulent_subarray └── Solution.java ├── question0979 ├── Solution.java └── TreeNode.java ├── question0980_unique_paths_iii └── Solution.java ├── question0981_time_based_key_value_store └── TimeMap.java ├── question0982_triples_with_bitwise_and_equal_to_zero ├── Solution1.java └── Solution2.java ├── question0983_minimum_cost_for_tickets └── Solution.java ├── question0984_string_without_aaa_or_bbb └── Solution.java ├── question0985_sum_of_even_numbers_after_queries └── Solution.java ├── question0986 └── Solution.java ├── question0987_vertical_order_traversal_of_a_binary_tree ├── Solution.java └── TreeNode.java ├── question0988 ├── Solution.java └── TreeNode.java ├── question0989_add_to_array_form_of_integer └── Solution.java ├── question0990_satisfiability_of_equality_equations └── Solution.java ├── question0991 ├── Solution.java └── TreeNode.java ├── question0991_broken_calculator └── Solution.java ├── question0992_subarrays_with_k_different_integers └── Solution.java ├── question0993_cousins_in_binary_tree ├── Solution.java └── TreeNode.java ├── question0994_rotting_oranges ├── Solution.java └── 腐烂的橘子.md ├── question0995_minimum_number_of_k_consecutive_bit_flips ├── Solution1.java └── Solution2.java ├── question0996_number_of_squareful_arrays └── Solution.java ├── question0997_find_the_town_judge └── Solution.java ├── question0998 ├── Solution.java └── TreeNode.java ├── question0999_available_captures_for_rook ├── Solution.java └── 车的可用捕获量.md ├── question1000_minimum_cost_to_merge_stones ├── Solution1.java └── Solution2.java ├── question1001_grid_illumination └── Solution.java ├── question1002_find_common_characters ├── Solution.java └── 查找常用字符.md ├── question1003_check_if_word_is_valid_after_substitutions └── Solution.java ├── question1004_max_consecutive_ones_iii └── Solution.java ├── question1005_maximize_sum_of_array_after_k_negations └── Solution.java ├── question1006_clumsy_factorial └── Solution.java ├── question1007_minimum_domino_rotations_for_equal_row └── Solution.java ├── question1008 ├── Solution.java └── TreeNode.java ├── question1009_complement_of_base_10_integer └── Solution.java ├── question1010_pairs_of_songs_with_total_durations_divisible_by_60 ├── Solution.java └── 总持续时间可被60整除的歌曲.md ├── question1011_capacity_to_ship_packages_within_d_days └── Solution.java ├── question1012_numbers_with_repeated_digits └── Solution.java ├── question1013_partition_array_into_three_parts_with_equal_sum ├── Solution.java └── 将数组分成和相等的三个部分.md ├── question1014_best_sightseeing_pair └── Solution.java ├── question1015_smallest_integer_divisible_by_k └── Solution.java ├── question1016_binary_string_with_substrings_representing_1_to_n └── Solution.java ├── question1017 └── Solution.java ├── question1018_binary_prefix_divisible_by_5 ├── Solution.java └── 可被5整除的二进制前缀.md ├── question1019_next_greater_node_in_linked_list ├── ListNode.java └── Solution.java ├── question1020_number_of_enclaves └── Solution.java ├── question1021_remove_outermost_parentheses └── Solution.java ├── question1022 ├── Solution.java └── TreeNode.java ├── question1023_camelcase_matching └── Solution.java ├── question1024_video_stitching └── Solution.java ├── question1025_divisor_game └── Solution.java ├── question1026 ├── Solution.java └── TreeNode.java ├── question1027_longest_arithmetic_sequence ├── Solution1.java └── Solution2.java ├── question1028_recover_a_tree_from_preorder_traversal ├── Solution.java └── TreeNode.java ├── question1029_two_city_scheduling └── Solution.java ├── question1030_matrix_cells_in_distance_order └── Solution.java ├── question1031_maximum_sum_of_two_non_overlapping_subarrays └── Solution.java ├── question1032_stream_of_characters └── StreamChecker.java ├── question1033_moving_stones_until_consecutive └── Solution.java ├── question1034_coloring_a_border └── Solution.java ├── question1035_uncrossed_lines └── Solution.java ├── question1036_escape_a_large_maze └── Solution.java ├── question1037_valid_boomerang └── Solution.java ├── question1038_binary_search_tree_to_greater_sum_tree ├── Solution.java └── TreeNode.java ├── question1039_minimum_score_triangulation_of_polygon └── Solution.java ├── question1040_moving_stones_until_consecutive_ii └── Solution.java ├── question1041_robot_bounded_in_circle └── Solution.java ├── question1042_flower_planting_with_no_adjacent └── Solution.java ├── question1043_partition_array_for_maximum_sum └── Solution.java ├── question1044_longest_duplicate_substring ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question1046_last_stone_weight ├── Solution1.java └── Solution2.java ├── question1047_remove_all_adjacent_duplicates_in_string ├── Solution.java └── 删除字符串中的所有相邻重复项.md ├── question1048 └── Solution.java ├── question1049_last_stone_weight_ii └── Solution.java ├── question1051_height_checker ├── Solution.java └── 高度检查器.md ├── question1052_grumpy_bookstore_owner └── Solution.java ├── question1053_previous_permutation_with_one_swap └── Solution.java ├── question1054_distant_barcodes └── Solution.java ├── question1055_shortest_way_to_form_string └── Solution.java ├── question1056_confusing_number └── Solution.java ├── question1058_minimize_rounding_error_to_meet_target └── Solution.java ├── question1059_all_paths_from_source_lead_to_destination └── Solution.java ├── question1064_fixed_point └── Solution.java ├── question1065_index_pairs_of_a_string └── Solution.java ├── question1066_campus_bikes_ii └── Solution.java ├── question1067_digit_count_in_range └── Solution.java ├── question1071_greatest_common_divisor_of_strings ├── Solution1.java ├── Solution2.java ├── Solution3.java └── 字符串的最大公因子.md ├── question1072_flip_columns_for_maximum_number_of_equal_rows └── Solution.java ├── question1073_adding_two_negabinary_numbers └── Solution.java ├── question1074_number_of_submatrices_that_sum_to_target ├── Solution1.java └── Solution2.java ├── question1078_occurrences_after_bigram └── Solution.java ├── question1079_letter_tile_possibilities └── Solution.java ├── question1080_insufficient_nodes_in_root_to_leaf_paths ├── Solution.java └── TreeNode.java ├── question1081_smallest_subsequence_of_distinct_characters └── Solution.java ├── question1085_sum_of_digits_in_the_minimum_number └── Solution.java ├── question1086_high_five └── Solution.java ├── question1087_brace_expansion └── Solution.java ├── question1089_duplicate_zeros └── Solution.java ├── question1090_largest_values_from_labels └── Solution.java ├── question1091_shortest_path_in_binary_matrix └── Solution.java ├── question1092_shortest_common_supersequence └── Solution.java ├── question1093 └── Solution.java ├── question1094_car_pooling └── Solution.java ├── question1095_find_in_mountain_array ├── MountainArray.java └── Solution.java ├── question1096_brace_expansion_ii └── Solution.java ├── question1099_two_sum_less_than_k ├── Solution1.java └── Solution2.java ├── question1103_distribute_candies_to_people ├── Solution1.java ├── Solution2.java └── 分糖果II.md ├── question1104_path_in_zigzag_labelled_binary_tree └── Solution.java ├── question1105_filling_bookcase_shelves └── Solution.java ├── question1106_parsing_a_boolean_expression └── Solution.java ├── question1108_defanging_an_ip_address └── Solution.java ├── question1109_corporate_flight_bookings └── Solution.java ├── question1110_delete_nodes_and_return_forest ├── Solution.java └── TreeNode.java ├── question1111_maximum_nesting_depth_of_two_valid_parentheses_strings ├── Solution1.java └── Solution2.java ├── question1114 ├── Foo1.java └── Foo2.java ├── question1115 └── FooBar.java ├── question1118_number_of_days_in_a_month └── Solution.java ├── question1119_remove_vowels_from_a_string └── Solution.java ├── question112 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question1120_maximum_average_subtree ├── Solution.java └── TreeNode.java ├── question1122_relative_sort_array └── Solution.java ├── question1123 ├── Solution.java └── TreeNode.java ├── question1124_longest_well_performing_interval ├── Solution1.java └── Solution2.java ├── question1125_smallest_sufficient_team └── Solution.java ├── question1128_number_of_equivalent_domino_pairs ├── Solution1.java └── Solution2.java ├── question1129_shortest_path_with_alternating_colors └── Solution.java ├── question1130_minimum_cost_tree_from_leaf_values ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question1131_maximum_of_absolute_value_expression └── Solution.java ├── question1133_largest_unique_number └── Solution.java ├── question1134_armstrong_number └── Solution.java ├── question1136_parallel_courses └── Solution.java ├── question1137_n_th_tribonacci_number └── Solution.java ├── question1138_alphabet_board_path └── Solution.java ├── question1139_largest_1_bordered_square └── Solution.java ├── question1140_stone_game_ii ├── Solution1.java └── Solution2.java ├── question1143_longest_common_subsequence ├── Solution1.java └── Solution2.java ├── question1144_decrease_elements_to_make_array_zigzag └── Solution.java ├── question1145_binary_tree_coloring_game ├── Solution.java └── TreeNode.java ├── question1146_snapshot_array └── SnapshotArray.java ├── question1147_longest_chunked_palindrome_decomposition └── Solution.java ├── question1150_check_if_a_number_is_majority_element_in_a_sorted_array └── Solution.java ├── question1154_day_of_the_year └── Solution.java ├── question1155_number_of_dice_rolls_with_target_sum └── Solution.java ├── question1156_swap_for_longest_repeated_character_substring └── Solution.java ├── question1157_online_majority_element_in_subarray ├── MajorityChecker1.java └── MajorityChecker2.java ├── question1160_find_words_that_can_be_formed_by_characters └── Solution.java ├── question1161_maximum_level_sum_of_a_binary_tree ├── Solution.java └── TreeNode.java ├── question1162_as_far_from_land_as_possible └── Solution.java ├── question1163_last_substring_in_lexicographical_order └── Solution.java ├── question1165_single_row_keyboard └── Solution.java ├── question1169_invalid_transactions └── Solution.java ├── question1170_compare_strings_by_frequency_of_the_smallest_character └── Solution.java ├── question1171_remove_zero_sum_consecutive_nodes_from_linked_list ├── ListNode.java └── Solution.java ├── question1172_dinner_plate_stacks └── DinnerPlates.java ├── question1175_prime_arrangements └── Solution.java ├── question1176_diet_plan_performance └── Solution.java ├── question1177_can_make_palindrome_from_substring └── Solution.java ├── question1178_number_of_valid_words_for_each_puzzle └── Solution.java ├── question118 └── Solution.java ├── question1180_count_substrings_with_only_one_distinct_letter └── Solution.java ├── question1184_distance_between_bus_stops └── Solution.java ├── question1185_day_of_the_week └── Solution.java ├── question1186_maximum_subarray_sum_with_one_deletion └── Solution.java ├── question1187_make_array_strictly_increasing └── Solution.java ├── question1189_maximum_number_of_balloons └── Solution.java ├── question1190_reverse_substrings_between_each_pair_of_parentheses └── Solution.java ├── question1191_k_concatenation_maximum_sum └── Solution.java ├── question1192_critical_connections_in_a_network └── Solution.java ├── question1196_how_many_apples_can_you_put_into_the_basket └── Solution.java ├── question1199_minimum_time_to_build_blocks └── Solution.java ├── question1200_minimum_absolute_difference └── Solution.java ├── question1201_ugly_number_iii └── Solution.java ├── question1202_smallest_string_with_swaps └── Solution.java ├── question1203_sort_items_by_groups_respecting_dependencies └── Solution.java ├── question1206_design_skiplist └── Skiplist.java ├── question1207_unique_number_of_occurrences └── Solution.java ├── question1208_get_equal_substrings_within_budget └── Solution.java ├── question1209_remove_all_adjacent_duplicates_in_string_ii └── Solution.java ├── question1210_minimum_moves_to_reach_target_with_rotations └── Solution.java ├── question1213_intersection_of_three_sorted_arrays └── Solution.java ├── question1215_stepping_numbers └── Solution.java ├── question1216_valid_palindrome_iii └── Solution.java ├── question1217_play_with_chips ├── Solution1.java └── Solution2.java ├── question1218_longest_arithmetic_subsequence_of_given_difference ├── Solution1.java └── Solution2.java ├── question1219_path_with_maximum_gold └── Solution.java ├── question1220_count_vowels_permutation └── Solution.java ├── question1221_split_a_string_in_balanced_strings └── Solution.java ├── question1222_queens_that_can_attack_the_king └── Solution.java ├── question1223_dice_roll_simulation ├── Solution1.java └── Solution2.java ├── question1224_maximum_equal_frequency └── Solution.java ├── question1227_airplane_seat_assignment_probability └── Solution.java ├── question1228_missing_number_in_arithmetic_progression └── Solution.java ├── question1230_toss_strange_coins └── Solution.java ├── question1232_check_if_it_is_a_straight_line └── Solution.java ├── question1233_remove_sub_folders_from_the_filesystem └── Solution.java ├── question1234_replace_the_substring_for_balanced_string └── Solution.java ├── question1235_maximum_profit_in_job_scheduling └── Solution.java ├── question1237_find_positive_integer_solution_for_a_given_equation ├── CustomFunction.java └── Solution.java ├── question1238_circular_permutation_in_binary_representation └── Solution.java ├── question1239_maximum_length_of_a_concatenated_string_with_unique_characters └── Solution.java ├── question1240_tiling_a_rectangle_with_the_fewest_squares └── Solution.java ├── question1243_array_transformation └── Solution.java ├── question1245_tree_diameter └── Solution.java ├── question1246_palindrome_removal └── Solution.java ├── question1247_minimum_swaps_to_make_strings_equal └── Solution.java ├── question1248_count_number_of_nice_subarrays ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question1249_minimum_remove_to_make_valid_parentheses └── Solution.java ├── question1250_check_if_it_is_a_good_array └── Solution.java ├── question1252_cells_with_odd_values_in_a_matrix ├── Solution1.java ├── Solution2.java └── 奇数值单元格的数目.md ├── question1253_reconstruct_a_2_row_binary_matrix └── Solution.java ├── question1254_number_of_closed_islands └── Solution.java ├── question1255_maximum_score_words_formed_by_letters └── Solution.java ├── question1257_smallest_common_region └── Solution.java ├── question1258_synonymous_sentences └── Solution.java ├── question1259_handshakes_that_dont_cross ├── Solution1.java └── Solution2.java ├── question1260_shift_2d_grid └── Solution.java ├── question1261_find_elements_in_a_contaminated_binary_tree ├── FindElements.java └── TreeNode.java ├── question1262_greatest_sum_divisible_by_three └── Solution.java ├── question1263_minimum_moves_to_move_a_box_to_their_target_location └── Solution.java ├── question1266_minimum_time_visiting_all_points ├── Solution.java └── 访问所有点的最小时间.md ├── question1267_count_servers_that_communicate └── Solution.java ├── question1268_search_suggestions_system └── Solution.java ├── question1269_number_of_ways_to_stay_in_the_same_place_after_some_steps └── Solution.java ├── question127 ├── Solution1.java └── Solution2.java ├── question1271_hexspeak └── Solution.java ├── question1273_delete_tree_nodes └── Solution.java ├── question1275_find_winner_on_a_tic_tac_toe_game └── Solution.java ├── question1276_number_of_burgers_with_no_waste_of_ingredients └── Solution.java ├── question1277_count_square_submatrices_with_all_ones └── Solution.java ├── question1278_palindrome_partitioning_iii └── Solution.java ├── question1281_subtract_the_product_and_sum_of_digits_of_an_integer └── Solution.java ├── question1282_group_the_people_given_the_group_size_they_belong_to └── Solution.java ├── question1283_find_the_smallest_divisor_given_a_threshold └── Solution.java ├── question1284_minimum_number_of_flips_to_convert_binary_matrix_to_zero_matrix └── Solution.java ├── question1286_iterator_for_combination └── CombinationIterator.java ├── question1287_element_appearing_more_than_25_in_sorted_array └── Solution.java ├── question1288_remove_covered_intervals └── Solution.java ├── question1289_minimum_falling_path_sum_ii ├── Solution1.java └── Solution2.java ├── question1290_convert_binary_number_in_a_linked_list_to_integer ├── ListNode.java └── Solution.java ├── question1291_sequential_digits └── Solution.java ├── question1292_maximum_side_length_of_a_square_with_sum_less_than_or_equal_to_threshold └── Solution.java ├── question1293_shortest_path_in_a_grid_with_obstacles_elimination └── Solution.java ├── question1296_divide_array_in_sets_of_k_consecutive_numbers └── Solution.java ├── question1297_maximum_number_of_occurrences_of_a_substring └── Solution.java ├── question1298_maximum_candies_you_can_get_from_boxes └── Solution.java ├── question1299_replace_elements_with_greatest_element_on_right_side └── Solution.java ├── question1300_sum_of_mutated_array_closest_to_target └── Solution.java ├── question1301_number_of_paths_with_max_score └── Solution.java ├── question1302_deepest_leaves_sum ├── Solution.java └── TreeNode.java ├── question1306_jump_game_iii └── Solution.java ├── question1309_decrypt_string_from_alphabet_to_integer_mapping └── Solution.java ├── question1310_xor_queries_of_a_subarray └── Solution.java ├── question1311_get_watched_videos_by_your_friends └── Solution.java ├── question1312_minimum_insertion_steps_to_make_a_string_palindrome └── Solution.java ├── question1313_decompress_run_length_encoded_list └── Solution.java ├── question1314_matrix_block_sum ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question1315_sum_of_nodes_with_even_valued_grandparent ├── Solution.java └── TreeNode.java ├── question1316_distinct_echo_substrings └── Solution.java ├── question1317_convert_integer_to_the_sum_of_two_no_zero_integers └── Solution.java ├── question1318_minimum_flips_to_make_a_or_b_equal_to_c └── Solution.java ├── question1319_number_of_operations_to_make_network_connected └── Solution.java ├── question1320_minimum_distance_to_type_a_word_using_two_fingers └── Solution.java ├── question1323_maximum_69_number └── Solution.java ├── question1324_print_words_vertically └── Solution.java ├── question1325_delete_leaves_with_a_given_value ├── Solution.java └── TreeNode.java ├── question1326_minimum_number_of_taps_to_open_to_water_a_garden ├── Solution1.java └── Solution2.java ├── question1328_break_a_palindrome └── Solution.java ├── question1329_sort_the_matrix_diagonally └── Solution.java ├── question1330_reverse_subarray_to_maximize_array_value └── Solution.java ├── question1331_rank_transform_of_an_array └── Solution.java ├── question1332_remove_palindromic_subsequences └── Solution.java ├── question1333_filter_restaurants_by_vegan_friendly_price_and_distance └── Solution.java ├── question1334_find_the_city_with_the_smallest_number_of_neighbors_at_a_threshold_distance └── Solution.java ├── question1335_minimum_difficulty_of_a_job_schedule └── Solution.java ├── question1337_the_k_weakest_rows_in_a_matrix └── Solution.java ├── question1338_reduce_array_size_to_the_half └── Solution.java ├── question1339_maximum_product_of_splitted_binary_tree ├── Solution.java └── TreeNode.java ├── question1340_jump_game_v └── Solution.java ├── question1342_number_of_steps_to_reduce_a_number_to_zero └── Solution.java ├── question1343_number_of_sub_arrays_of_size_k_and_average_greater_than_or_equal_to_threshold └── Solution.java ├── question1344_angle_between_hands_of_a_clock └── Solution.java ├── question1345_jump_game_iv └── Solution.java ├── question1346_check_if_n_and_its_double_exist └── Solution.java ├── question1347_minimum_number_of_steps_to_make_two_strings_anagram └── Solution.java ├── question1348_tweet_counts_per_frequency └── TweetCounts.java ├── question1349_maximum_students_taking_exam └── Solution.java ├── question1351_count_negative_numbers_in_a_sorted_matrix ├── Solution1.java ├── Solution2.java ├── Solution3.java └── 统计有序矩阵中的负数.md ├── question1352_product_of_the_last_k_numbers └── ProductOfNumbers.java ├── question1353_maximum_number_of_events_that_can_be_attended └── Solution.java ├── question1354_construct_target_array_with_multiple_sums └── Solution.java ├── question1356_sort_integers_by_the_number_of_1_bits └── Solution.java ├── question1357_apply_discount_every_n_orders └── Cashier.java ├── question1358_number_of_substrings_containing_all_three_characters ├── Solution1.java └── Solution2.java ├── question1359_count_all_valid_pickup_and_delivery_options └── Solution.java ├── question1360_number_of_days_between_two_dates ├── Solution.java └── 日期之间隔几天.md ├── question1361_validate_binary_tree_nodes └── Solution.java ├── question1362_closest_divisors ├── Solution.java └── 最接近的因数.md ├── question1363_largest_multiple_of_three ├── Solution.java └── 形成三的最大倍数.md ├── question1365_how_many_numbers_are_smaller_than_the_current_number └── Solution.java ├── question1366_rank_teams_by_votes ├── Solution.java └── 通过投票对团队排名.md ├── question1367_linked_list_in_binary_tree ├── ListNode.java ├── Solution.java ├── TreeNode.java └── 二叉树中的列表.md ├── question1368_minimum_cost_to_make_at_least_one_valid_path_in_a_grid ├── Solution.java └── 使网格图至少有一条有效路径的最小代价.md ├── question1371_find_the_longest_substring_containing_vowels_in_even_counts ├── Solution.java └── 每个元音包含偶数次的最长子字符串.md ├── question1372_longest_zigzag_path_in_a_binary_tree ├── Solution1.java ├── Solution2.java ├── TreeNode.java └── 二叉树中的最长交错路径.md ├── question1373_maximum_sum_bst_in_binary_tree ├── Solution.java ├── TreeNode.java └── 二叉搜索子树的最大键值和.md ├── question1374_generate_a_string_with_characters_that_have_odd_counts ├── Solution.java └── 生成每种字符都是奇数个的字符串.md ├── question1375_bulb_switcher_iii ├── Solution1.java ├── Solution2.java └── 灯泡开关III.md ├── question1376_time_needed_to_inform_all_employees └── Solution.java ├── question1377_frog_position_after_t_seconds └── Solution.java ├── question1379_find_a_corresponding_node_of_a_binary_tree_in_a_clone_of_that_tree ├── Solution.java └── TreeNode.java ├── question1380_lucky_numbers_in_a_matrix └── Solution.java ├── question1381_design_a_stack_with_increment_operation └── CustomStack.java ├── question1382_balance_a_binary_search_tree ├── Solution.java └── TreeNode.java ├── question1383_maximum_performance_of_a_team └── Solution.java ├── question1385_find_the_distance_value_between_two_arrays └── Solution.java ├── question1386_cinema_seat_allocation └── Solution.java ├── question1387_sort_integers_by_the_power_value └── Solution.java ├── question1388_pizza_with_3n_slices └── Solution.java ├── question1389_create_target_array_in_the_given_order └── Solution.java ├── question1390_four_divisors └── Solution.java ├── question1391_check_if_there_is_a_valid_path_in_a_grid └── Solution.java ├── question1392_longest_happy_prefix ├── Solution1.java └── Solution2.java ├── question1394_find_lucky_integer_in_an_array └── Solution.java ├── question1395_count_number_of_teams └── Solution.java ├── question1396_design_underground_system └── UndergroundSystem.java ├── question1397_find_all_good_strings └── Solution.java ├── question1399_count_largest_group └── Solution.java ├── question1400_construct_k_palindrome_strings └── Solution.java ├── question1401_circle_and_rectangle_overlapping └── Solution.java ├── question1402_reducing_dishes └── Solution.java ├── question1403_minimum_subsequence_in_non_increasing_order └── Solution.java ├── question1404_number_of_steps_to_reduce_a_number_in_binary_representation_to_one └── Solution.java ├── question1405_longest_happy_string └── Solution.java ├── question1406_stone_game_iii └── Solution.java ├── question1408_string_matching_in_an_array └── Solution.java ├── question1409_queries_on_a_permutation_with_key └── Solution.java ├── question1410_html_entity_parser └── Solution.java ├── question1411_number_of_ways_to_paint_n_x_3_grid └── Solution.java ├── question1414_find_the_minimum_number_of_fibonacci_numbers_whose_sum_is_k └── Solution.java ├── question1415_the_k_th_lexicographical_string_of_all_happy_strings_of_length_n └── Solution.java ├── question1416_restore_the_array └── Solution.java ├── question1418_display_table_of_food_orders_in_a_restaurant └── Solution.java ├── question1420_build_array_where_you_can_find_the_maximum_exactly_k_comparisons └── Solution.java ├── question1422_maximum_score_after_splitting_a_string └── Solution.java ├── question1423_maximum_points_you_can_obtain_from_cards ├── Solution1.java └── Solution2.java ├── question1424_diagonal_traverse_ii └── Solution.java ├── question1425_constrained_subsequence_sum └── Solution.java ├── question1426_counting_elements └── Solution.java ├── question1427_perform_string_shifts └── Solution.java ├── question1430_check_if_a_string_is_a_valid_sequence_from_root_to_leaves_path_in_a_binary_tree ├── Solution.java └── TreeNode.java ├── question1431_kids_with_the_greatest_number_of_candies └── Solution.java ├── question1432_max_difference_you_can_get_from_changing_an_integer └── Solution.java ├── question1433_check_if_a_string_can_break_another_string └── Solution.java ├── question1434_number_of_ways_to_wear_different_hats_to_each_other └── Solution.java ├── question1436_destination_city └── Solution.java ├── question1437_check_if_all_1s_are_at_least_length_k_places_away └── Solution.java ├── question1438_longest_continuous_subarray_with_absolute_diff_less_than_or_equal_to_limit ├── Solution1.java └── Solution2.java ├── question1439_find_the_kth_smallest_sum_of_a_matrix_with_sorted_rows └── Solution.java ├── question1441_build_an_array_with_stack_operations └── Solution.java ├── question1442_count_triplets_that_can_form_two_arrays_of_equal_xor └── Solution.java ├── question1443_minimum_time_to_collect_all_apples_in_a_tree └── Solution.java ├── question1444_number_of_ways_of_cutting_a_pizza └── Solution.java ├── question1446_consecutive_characters └── Solution.java ├── question1447_simplified_fractions └── Solution.java ├── question1448_count_good_nodes_in_binary_tree ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question1449_form_largest_integer_with_digits_that_add_up_to_target └── Solution.java ├── question1450_number_of_students_doing_homework_at_a_given_time └── Solution.java ├── question1451_rearrange_words_in_a_sentence └── Solution.java ├── question1452_people_whose_list_of_favorite_companies_is_not_a_subset_of_another_list └── Solution.java ├── question1453_maximum_number_of_darts_inside_of_a_circular_dartboard └── Solution.java ├── question1455_check_if_a_word_occurs_as_a_prefix_of_any_word_in_a_sentence └── Solution.java ├── question1456_maximum_number_of_vowels_in_a_substring_of_given_length └── Solution.java ├── question1457_pseudo_palindromic_paths_in_a_binary_tree ├── Solution.java └── TreeNode.java ├── question1458_max_dot_product_of_two_subsequences └── Solution.java ├── question1460_make_two_arrays_equal_by_reversing_sub_arrays └── Solution.java ├── question1461_check_if_a_string_contains_all_binary_codes_of_size_k └── Solution.java ├── question1462_course_schedule_iv └── Solution.java ├── question1463_cherry_pick_ii └── Solution.java ├── question1464_maximum_product_of_two_elements_in_an_array └── Solution.java ├── question1465_maximum_area_of_a_piece_of_cake_after_horizontal_and_vertical_cuts └── Solution.java ├── question1466_reorder_routes_to_make_all_paths_lead_to_the_city_zero └── Solution.java ├── question1467 └── Solution.java ├── question1469_find_all_the_lonely_nodes ├── Solution.java └── TreeNode.java ├── question147 ├── ListNode.java └── Solution.java ├── question1471_the_k_strongest_values_in_an_array ├── Solution1.java └── Solution2.java ├── question1472_design_browser_history └── BrowserHistory.java ├── question1473_paint_house_iii └── Solution.java ├── question1474 ├── ListNode.java └── Solution.java ├── question1475_final_prices_with_a_special_discount_in_a_shop ├── Solution1.java └── Solution2.java ├── question1476_subrectangle_queries └── SubrectangleQueries.java ├── question1477_find_two_non_overlapping_sub_arrays_each_with_target_sum └── Solution.java ├── question1478_allocate_mailboxes └── Solution.java ├── question1480_running_sum_of_1d_array └── Solution.java ├── question1481_least_number_of_unique_integers_after_k_removals └── Solution.java ├── question1482_minimum_number_of_days_to_make_m_bouquets └── Solution.java ├── question1483_kth_ancestor_of_a_tree_node └── TreeAncestor.java ├── question1484_clone_binary_tree_with_random_pointer ├── Node.java ├── NodeCopy.java └── Solution.java ├── question1486_xor_operation_in_an_array └── Solution.java ├── question1487_making_file_names_unique └── Solution.java ├── question1488_avoid_flood_in_the_city └── Solution.java ├── question1489_find_critical_and_pseudo_critical_edges_in_minimum_spanning_tree └── Solution.java ├── question1490_clone_n_ary_tree ├── Node.java └── Solution.java ├── question1491_average_salary_excluding_the_minimum_and_maximum_salary └── Solution.java ├── question1492_the_kth_factor_of_n └── Solution.java ├── question1493_longest_subarray_of_1s_after_deleting_one_element └── Solution.java ├── question1494 └── Solution.java ├── question1496_path_crossing └── Solution.java ├── question1497_check_if_array_pairs_are_divisible_by_k └── Solution.java ├── question1498_number_of_subsequences_that_satisfy_the_given_sum_condition └── Solution.java ├── question1499 └── Solution.java ├── question1502_can_make_arithmetic_progression_from_sequence └── Solution.java ├── question1503_last_moment_before_all_ants_fall_out_of_a_plank └── Solution.java ├── question1504_count_submatrices_with_all_ones ├── Solution1.java └── Solution2.java ├── question1505 └── Solution.java ├── question1507_reformat_date └── Solution.java ├── question1508_range_sum_of_sorted_subarray_sums └── Solution.java ├── question1509_minimum_difference_between_largest_and_smallest_value_in_three_moves └── Solution.java ├── question1510_stone_game_iv └── Solution.java ├── question1512_number_of_good_pairs └── Solution.java ├── question1513_number_of_substrings_with_only_1s └── Solution.java ├── question1514_path_with_maximum_probability ├── Solution1.java └── Solution2.java ├── question1515_best_position_for_a_service_centre └── Solution.java ├── question1516_move_sub_tree_of_n_ary_tree ├── Node.java └── Solution.java ├── question1518_water_bottles └── Solution.java ├── question1519_number_of_nodes_in_the_sub_tree_with_the_same_label └── Solution.java ├── question1520_maximum_number_of_non_overlapping_substrings └── Solution.java ├── question1521_find_a_value_of_a_mysterious_function_closest_to_target └── Solution.java ├── question1523_count_odd_numbers_in_an_interval_range └── Solution.java ├── question1524_number_of_sub_arrays_with_odd_sum └── Solution.java ├── question1525_number_of_good_ways_to_split_a_string └── Solution.java ├── question1526_minimum_number_of_increments_on_subarrays_to_form_a_target_array └── Solution.java ├── question1528_shuffle_string └── Solution.java ├── question1529_bulb_switcher_iv └── Solution.java ├── question1530_number_of_good_leaf_nodes_pairs ├── Solution.java └── TreeNode.java ├── question1531_string_compression_ii ├── Solution1.java └── Solution2.java ├── question1534_count_good_triplets └── Solution.java ├── question1535_find_the_winner_of_an_array_game └── Solution.java ├── question1536_minimum_swaps_to_arrange_a_binary_grid └── Solution.java ├── question1537_get_the_maximum_score └── Solution.java ├── question1539_kth_missing_positive_number └── Solution.java ├── question1540_can_convert_string_in_k_moves └── Solution.java ├── question1541_minimum_insertions_to_balance_a_parentheses_string └── Solution.java ├── question1542 └── Solution.java ├── question1544_make_the_string_great └── Solution.java ├── question1545_find_kth_bit_in_nth_binary_string └── Solution.java ├── question1546_maximum_number_of_non_overlapping_subarrays_with_sum_equals_target └── Solution.java ├── question1547_minimum_cost_to_cut_a_stick └── Solution.java ├── question1548_the_most_similar_path_in_a_graph └── Solution.java ├── question1550_three_consecutive_odds └── Solution.java ├── question1551_minimum_operations_to_make_array_equal └── Solution.java ├── question1552_magnetic_force_between_two_balls └── Solution.java ├── question1553_minimum_number_of_days_to_eat_n_oranges └── Solution.java ├── question1556_thousand_separator └── Solution.java ├── question1557_minimum_number_of_vertices_to_reach_all_nodes └── Solution.java ├── question1558_minimum_numbers_of_function_calls_to_make_target_array └── Solution.java ├── question1559_detect_cycles_in_2d_grid └── Solution.java ├── question1560_most_visited_sector_in_a_circular_track └── Solution.java ├── question1561_maximum_number_of_coins_you_can_get └── Solution.java ├── question1562_find_latest_group_of_size_m └── Solution.java ├── question1563_stone_game_v └── Solution.java ├── question1566_detect_pattern_of_length_m_repeated_k_or_more_times └── Solution.java ├── question1567_maximum_length_of_subarray_with_positive_product └── Solution.java ├── question1568 └── Solution.java ├── question1569_number_of_ways_to_reorder_array_to_get_same_bst └── Solution.java ├── question1573_number_of_ways_to_split_a_string └── Solution.java ├── question1574_shortest_subarray_to_be_removed_to_make_array_sorted └── Solution.java ├── question1575_count_all_possible_routes └── Solution.java ├── question1576_replace_all_s_to_avoid_consecutive_repeating_characters └── Solution.java ├── question1577_number_of_ways_where_square_of_number_is_equal_to_product_of_two_numbers └── Solution.java ├── question1578_minimum_deletion_cost_to_avoid_repeating_letters └── Solution.java ├── question1579_remove_max_number_of_edges_to_keep_graph_fully_traversable └── Solution.java ├── question1582_special_positions_in_a_binary_matrix └── Solution.java ├── question1583_count_unhappy_friends └── Solution.java ├── question1584_min_cost_to_connect_all_points ├── Solution1.java └── Solution2.java ├── question1585 └── Solution.java ├── question1586_binary_search_tree_iterator_ii ├── BSTIterator.java └── TreeNode.java ├── question1588_sum_of_all_odd_length_subarrays └── Solution.java ├── question1589_maximum_sum_obtained_of_any_permutation └── Solution.java ├── question1590_make_sum_divisible_by_p └── Solution.java ├── question1591 └── Solution.java ├── question1592_rearrange_spaces_between_words └── Solution.java ├── question1593_split_a_string_into_the_max_number_of_unique_substrings └── Solution.java ├── question1594_maximum_non_negative_product_in_a_matrix └── Solution.java ├── question1595_minimum_cost_to_connect_two_groups_of_points └── Solution.java ├── question1598_crawler_log_folder └── Solution.java ├── question1599_maximum_profit_of_operating_a_centennial_wheel └── Solution.java ├── question1600_throne_inheritance └── ThroneInheritance.java ├── question1601_maximum_number_of_achievable_transfer_requests └── Solution.java ├── question1603_design_parking_system └── ParkingSystem.java ├── question1604_alert_using_same_key_card_three_or_more_times_in_a_one_hour_period └── Solution.java ├── question1605_find_valid_matrix_given_row_and_column_sums └── Solution.java ├── question1606 └── Solution.java ├── question1608_special_array_with_x_elements_greater_than_or_equal_x └── Solution.java ├── question1609_even_odd_tree ├── Solution.java └── TreeNode.java ├── question1610_maximum_number_of_visible_points └── Solution.java ├── question1611_minimum_one_bit_operations_to_make_integers_zero └── Solution.java ├── question1614 └── Solution.java ├── question1615_maximal_network_rank └── Solution.java ├── question1616_split_two_strings_to_make_palindrome └── Solution.java ├── question1617_count_subtrees_with_max_distance_between_cities └── Solution.java ├── question1620_coordinate_with_maximum_network_quality └── Solution.java ├── question1621_number_of_sets_of_k_non_overlapping_line_segments ├── Solution1.java ├── Solution2.java ├── Solution3.java ├── Solution4.java ├── Solution5.java └── Solution6.java ├── question1622_fancy_sequence ├── Fancy1.java └── Fancy2.java ├── question1624_largest_substring_between_two_equal_characters └── Solution.java ├── question1625_lexicographically_smallest_string_after_applying_operations └── Solution.java ├── question1626_best_team_with_no_conflicts └── Solution.java ├── question1627_graph_connectivity_with_threshold └── Solution.java ├── question1629_slowest_key └── Solution.java ├── question1630_arithmetic_subarrays └── Solution.java ├── question1631_path_with_minimum_effort └── Solution.java ├── question1632_rank_transform_of_a_matrix └── Solution.java ├── question1637_widest_vertical_area_between_two_points_containing_no_points └── Solution.java ├── question1638_count_substrings_that_differ_by_one_character ├── Solution1.java └── Solution2.java ├── question1639_number_of_ways_to_form_a_target_string_given_a_dictionary └── Solution.java ├── question164 └── Solution.java ├── question1641_count_sorted_vowel_strings └── Solution.java ├── question1642_furthest_building_you_can_reach ├── Solution1.java └── Solution2.java ├── question1643_kth_smallest_instructions └── Solution.java ├── question1646_get_maximum_in_generated_array └── Solution.java ├── question1647_minimum_deletions_to_make_character_frequencies_unique └── Solution.java ├── question1648_sell_diminishing_valued_colored_balls └── Solution.java ├── question1649_create_sorted_array_through_instructions └── Solution.java ├── question1653_minimum_deletions_to_make_string_balanced └── Solution.java ├── question1654_minimum_jumps_to_reach_home └── Solution.java ├── question1655_distribute_repeating_integers └── Solution.java ├── question1658_minimum_operations_to_reduce_x_to_zero └── Solution.java ├── question1659_maximize_grid_happiness └── Solution.java ├── question166 └── Solution.java ├── question1663_smallest_string_with_a_given_numeric_value └── Solution.java ├── question1664_ways_to_make_a_fair_array └── Solution.java ├── question1665_minimum_initial_energy_to_finish_tasks └── Solution.java ├── question1668_maximum_repeating_substring └── Solution.java ├── question1669_merge_in_between_linked_lists ├── ListNode.java └── Solution.java ├── question167 ├── Solution1.java └── Solution2.java ├── question1670_design_front_middle_back_queue └── FrontMiddleBackQueue.java ├── question1671_minimum_number_of_removals_to_make_mountain_array └── Solution.java ├── question1673_find_the_most_competitive_subsequence └── Solution.java ├── question1674_minimum_moves_to_make_array_complementary └── Solution.java ├── question1675_minimize_deviation_in_array └── Solution.java ├── question1679_max_number_of_k_sum_pairs └── Solution.java ├── question1680_concatenation_of_consecutive_binary_numbers ├── Solution1.java └── Solution2.java ├── question1681_minimum_incompatibility └── Solution.java ├── question1685_sum_of_absolute_differences_in_a_sorted_array └── Solution.java ├── question1686_stone_game_vi └── Solution.java ├── question1687_delivering_boxes_from_storage_to_ports └── Solution.java ├── question1688 └── Solution.java ├── question1691_maximum_height_by_stacking_cuboids └── Solution.java ├── question1694_reformat_phone_number └── Solution.java ├── question1695_maximum_erasure_value └── Solution.java ├── question1696_jump_game_vi └── Solution.java ├── question1697_checking_existence_of_edge_length_limited_paths └── Solution.java ├── question1700_number_of_students_unable_to_eat_lunch └── Solution.java ├── question1701_average_waiting_time └── Solution.java ├── question1702_maximum_binary_string_after_change └── Solution.java ├── question1703_minimum_adjacent_swaps_for_k_consecutive_ones └── Solution.java ├── question1704_determine_if_string_halves_are_alike └── Solution.java ├── question1705_maximum_number_of_eaten_apples └── Solution.java ├── question1706_where_will_the_ball_fall └── Solution.java ├── question1707_maximum_xor_with_an_element_from_array └── Solution.java ├── question1708 └── Solution.java ├── question1710_maximum_units_on_a_truck └── Solution.java ├── question1711_count_good_meals └── Solution.java ├── question1712_ways_to_split_array_into_three_subarrays └── Solution.java ├── question1713_minimum_operations_to_make_a_subsequence └── Solution.java ├── question1716_calculate_money_in_leetcode_bank └── Solution.java ├── question1717_maximum_score_from_removing_substrings └── Solution.java ├── question1718_construct_the_lexicographically_largest_valid_sequence └── Solution.java ├── question1719_number_of_ways_to_reconstruct_a_tree └── Solution.java ├── question172 ├── Solution.java └── Solution1.java ├── question1720_decode_xored_array └── Solution.java ├── question1721_swapping_nodes_in_a_linked_list ├── ListNode.java └── Solution.java ├── question1722_minimize_hamming_distance_after_swap_operations └── Solution.java ├── question1723_find_minimum_time_to_finish_all_jobs ├── Solution1.java └── Solution2.java ├── question1725_number_of_rectangles_that_can_form_the_largest_square └── Solution.java ├── question1726_tuple_with_same_product └── Solution.java ├── question1727_largest_submatrix_with_rearrangements └── Solution.java ├── question1728 └── Solution.java ├── question1732_find_the_highest_altitude └── Solution.java ├── question1733_minimum_number_of_people_to_teach ├── Solution1.java └── Solution2.java ├── question1734_decode_xored_permutation └── Solution.java ├── question1735 └── Solution.java ├── question1736_latest_time_by_replacing_hidden_digits └── Solution.java ├── question1737_change_minimum_characters_to_satisfy_one_of_three_conditions └── Solution.java ├── question1738_find_kth_largest_xor_coordinate_value └── Solution.java ├── question1739 └── Solution.java ├── question174 └── Solution.java ├── question1742_maximum_number_of_balls_in_a_box └── Solution.java ├── question1743_restore_the_array_from_adjacent_pairs └── Solution.java ├── question1744_can_you_eat_your_favorite_candy_on_your_favorite_day └── Solution.java ├── question1745 └── Solution.java ├── question1748_sum_of_unique_elements └── Solution.java ├── question1749_maximum_absolute_sum_of_any_subarray └── Solution.java ├── question1750_minimum_length_of_string_after_deleting_similar_ends └── Solution.java ├── question1751 └── Solution.java ├── question1752_check_if_array_is_sorted_and_rotated └── Solution.java ├── question1753_maximum_score_from_removing_stones └── Solution.java ├── question1754_largest_merge_of_two_strings └── Solution.java ├── question1755_closest_subsequence_sum └── Solution.java ├── question1758_minimum_changes_to_make_alternating_binary_string └── Solution.java ├── question1759_count_number_of_homogenous_substrings └── Solution.java ├── question1760_minimum_limit_of_balls_in_a_bag └── Solution.java ├── question1761 ├── Solution1.java └── Solution2.java ├── question1763_longest_nice_substring └── Solution.java ├── question1764_form_array_by_concatenating_subarrays_of_another_array └── Solution.java ├── question1765_map_of_highest_peak └── Solution.java ├── question1766 └── Solution.java ├── question1768_merge_strings_alternately └── Solution.java ├── question1769_minimum_number_of_operations_to_move_all_balls_to_each_box ├── Solution1.java └── Solution2.java ├── question1770_maximum_score_from_performing_multiplication_operations └── Solution.java ├── question1771 └── Solution.java ├── question1773_count_items_matching_a_rule └── Solution.java ├── question1774_closest_dessert_cost └── Solution.java ├── question1775_equal_sum_arrays_with_minimum_number_of_operations └── Solution.java ├── question1776 └── Solution.java ├── question1779_find_nearest_point_that_has_the_same_x_or_y_coordinate └── Solution.java ├── question178 ├── Solution1.sql ├── Solution2.sql └── Solution3.sql ├── question1780_check_if_number_is_a_sum_of_powers_of_three └── Solution.java ├── question1781_sum_of_beauty_of_all_substrings └── Solution.java ├── question1782 └── Solution.java ├── question1784_check_if_binary_string_has_at_most_one_segment_of_ones └── Solution.java ├── question1785_minimum_elements_to_add_to_form_a_given_sum └── Solution.java ├── question1786_number_of_restricted_paths_from_first_to_last_node └── Solution.java ├── question1787_make_the_xor_of_all_segments_equal_to_zero └── Solution.java ├── question1790_check_if_one_string_swap_can_make_strings_equal └── Solution.java ├── question1791_find_center_of_star_graph └── Solution.java ├── question1792_maximum_average_pass_ratio └── Solution.java ├── question1793_maximum_score_of_a_good_subarray └── Solution.java ├── question1796_second_largest_digit_in_a_string └── Solution.java ├── question1797_design_authentication_manager └── AuthenticationManager.java ├── question1798_maximum_number_of_consecutive_values_you_can_make └── Solution.java ├── question1799_maximize_score_after_n_operations └── Solution.java ├── question180 └── Solution.sql ├── question1800_maximum_ascending_subarray_sum └── Solution.java ├── question1801_number_of_orders_in_the_backlog └── Solution.java ├── question1802_maximum_value_at_a_given_index_in_a_bounded_array └── Solution.java ├── question1803_count_pairs_with_xor_in_a_range └── Solution.java ├── question1805_number_of_different_integers_in_a_string └── Solution.java ├── question1806_minimum_number_of_operations_to_reinitialize_a_permutation └── Solution.java ├── question1807_evaluate_the_bracket_pairs_of_a_string └── Solution.java ├── question1808_maximize_number_of_nice_divisors └── Solution.java ├── question1812_determine_color_of_a_chessboard_square └── Solution.java ├── question1813_sentence_similarity_iii └── Solution.java ├── question1814_count_nice_pairs_in_an_array └── Solution.java ├── question1815 └── Solution.java ├── question1816_truncate_sentence └── Solution.java ├── question1817_finding_the_users_active_minutes └── Solution.java ├── question1818_minimum_absolute_sum_difference └── Solution.java ├── question1819 └── Solution.java ├── question182 ├── Solution1.sql ├── Solution2.sql └── Solution3.sql ├── question1822_sign_of_the_product_of_an_array └── Solution.java ├── question1823_find_the_winner_of_the_circular_game └── Solution.java ├── question1824_minimum_sideway_jumps └── Solution.java ├── question1825_finding_mk_average └── MKAverage.java ├── question1826 └── Solution.java ├── question1827_minimum_operations_to_make_the_array_increasing └── Solution.java ├── question1828_queries_on_number_of_points_inside_a_circle └── Solution.java ├── question1829_maximum_xor_for_each_query ├── .DS_Store ├── Solution1.java └── Solution2.java ├── question183 └── Solution.sql ├── question1830 └── Solution.java ├── question1833_maximum_ice_cream_bars └── Solution.java ├── question1834_single_threaded_cpu └── Solution.java ├── question1835 └── Solution.java ├── question1837_sum_of_digits_in_base_k └── Solution.java ├── question1838_frequency_of_the_most_frequent_element └── Solution.java ├── question1839_longest_substring_of_all_vowels_in_order └── Solution.java ├── question184 └── Solution.sql ├── question1840_maximum_building_height └── Solution.java ├── question1844_replace_all_digits_with_characters └── Solution.java ├── question1845_seat_reservation_manager └── SeatManager.java ├── question1846_maximum_element_after_decreasing_and_rearranging └── Solution.java ├── question1847 └── Solution.java ├── question1848_minimum_distance_to_the_target_element └── Solution.java ├── question1849_splitting_a_string_into_descending_consecutive_values └── Solution.java ├── question185 └── Solution.sql ├── question1850_minimum_adjacent_swaps_to_reach_the_kth_smallest_number └── Solution.java ├── question1851 └── Solution.java ├── question1854_maximum_population_year └── Solution.java ├── question1855_maximum_distance_between_a_pair_of_values └── Solution.java ├── question1856_maximum_subarray_min_product └── Solution.java ├── question1857 └── Solution.java ├── question1859_sorting_the_sentence └── Solution.java ├── question1860_incremental_memory_leak └── Solution.java ├── question1861_rotating_the_box └── Solution.java ├── question1862 └── Solution.java ├── question1863_sum_of_all_subset_xor_totals └── Solution.java ├── question1864_minimum_number_of_swaps_to_make_the_binary_string_alternating └── Solution.java ├── question1865_finding_pairs_with_a_certain_sum └── FindSumPairs.java ├── question1866 └── Solution.java ├── question1869_longer_contiguous_segments_of_ones_than_zeros └── Solution.java ├── question1870_minimum_speed_to_arrive_on_time └── Solution.java ├── question1871_jump_game_vii └── Solution.java ├── question1872 └── Solution.java ├── question1876_substrings_of_size_three_with_distinct_characters └── Solution.java ├── question1877_minimize_maximum_pair_sum_in_array └── Solution.java ├── question1878_get_biggest_three_rhombus_sums_in_a_grid └── Solution.java ├── question1879 └── Solution.java ├── question1880_check_if_word_equals_summation_of_two_words └── Solution.java ├── question1881_maximum_value_after_insertion └── Solution.java ├── question1882_process_tasks_using_servers └── Solution.java ├── question1883 └── Solution.java ├── question1884_egg_drop_with_2_eggs_and_n_floors ├── Solution1.java └── Solution2.java ├── question1886_determine_whether_matrix_can_be_obtained_by_rotation └── Solution.java ├── question1887_reduction_operations_to_make_the_array_elements_equal └── Solution.java ├── question1888_minimum_number_of_flips_to_make_the_binary_string_alternating └── Solution.java ├── question1889 └── Solution.java ├── question1893_check_if_all_the_integers_in_a_range_are_covered └── Solution.java ├── question1894_find_the_student_that_will_replace_the_chalk └── Solution.java ├── question1895_largest_magic_square └── Solution.java ├── question1896 └── Solution.java ├── question1897_redistribute_characters_to_make_all_strings_equal └── Solution.java ├── question1898_maximum_number_of_removable_characters └── Solution.java ├── question1899_merge_triplets_to_form_target_triplet └── Solution.java ├── question1900 └── Solution.java ├── question1901_find_a_peak_element_ii └── Solution.java ├── question1903_largest_odd_number_in_string └── Solution.java ├── question1904_the_number_of_full_rounds_you_have_played └── Solution.java ├── question1905_count_sub_islands └── Solution.java ├── question1906_minimum_absolute_difference_queries └── Solution.java ├── question1909_remove_one_element_to_make_the_array_strictly_increasing └── Solution.java ├── question1910_remove_all_occurrences_of_a_substring └── Solution.java ├── question1911_maximum_alternating_subsequence_sum └── Solution.java ├── question1912 └── MovieRentingSystem.java ├── question1913_maximum_product_difference_between_two_pairs └── Solution.java ├── question1914_cyclically_rotating_a_grid └── Solution.java ├── question1915_number_of_wonderful_substrings └── Solution.java ├── question1916_count_ways_to_build_rooms_in_an_ant_colony └── Solution.java ├── question192 ├── Solution1.sh └── Solution2.sh ├── question1920_build_array_from_permutationD └── Solution.java ├── question1921_eliminate_maximum_number_of_monsters └── Solution.java ├── question1922_count_good_numbers └── Solution.java ├── question1923_longest_common_subpath ├── Solution1.java └── Solution2.java ├── question1925_count_square_sum_triples └── Solution.java ├── question1926_nearest_exit_from_entrance_in_maze └── Solution.java ├── question1927_sum_game └── Solution.java ├── question1928 └── Solution.java ├── question1929_concatenation_of_array └── Solution.java ├── question193 ├── Solution1.sh ├── Solution2.sh └── Solution3.sh ├── question1930_unique_length_3_palindromic_subsequences └── Solution.java ├── question1931_painting_a_grid_with_three_different_colors └── Solution.java ├── question1932 ├── Solution.java └── TreeNode.java ├── question1933 └── Solution.java ├── question1935_maximum_number_of_words_you_can_type └── Solution.java ├── question1936_add_minimum_number_of_rungs └── Solution.java ├── question1937_maximum_number_of_points_with_cost └── Solution.java ├── question1938 └── Solution.java ├── question194 └── Solution.sh ├── question1941_check_if_all_characters_have_equal_number_of_occurrences └── Solution.java ├── question1942_the_number_of_the_smallest_unoccupied_chair └── Solution.java ├── question1943_describe_the_painting └── Solution.java ├── question1944 └── Solution.java ├── question1945_sum_of_digits_of_string_after_convert └── Solution.java ├── question1946_largest_number_after_mutating_substring └── Solution.java ├── question1947_maximum_compatibility_score_sum └── Solution.java ├── question1948 └── Solution.java ├── question195 ├── Solution1.sh ├── Solution2.sh ├── Solution3.sh └── Solution4.sh ├── question1952_three_divisors └── Solution.java ├── question1953_maximum_number_of_weeks_for_which_you_can_work └── Solution.java ├── question1954_minimum_garden_perimeter_to_collect_enough_apples └── Solution.java ├── question1955_count_number_of_special_subsequences └── Solution.java ├── question1957_delete_characters_to_make_fancy_string └── Solution.java ├── question1958_check_if_move_is_legal └── Solution.java ├── question1959_minimum_total_space_wasted_with_k_resizing_operations └── Solution.java ├── question196 └── Solution.sql ├── question1960 └── Solution.java ├── question1961_check_if_string_is_a_prefix_of_array └── Solution.java ├── question1962_remove_stones_to_minimize_the_total └── Solution.java ├── question1963_minimum_number_of_swaps_to_make_the_string_balanced └── Solution.java ├── question1964 └── Solution.java ├── question1967_number_of_strings_that_appear_as_substrings_in_word └── Solution.java ├── question1968_array_with_elements_not_equal_to_average_of_neighbors └── Solution.java ├── question1969_minimum_non_zero_product_of_the_array_elements └── Solution.java ├── question197 ├── Solution1.sql └── Solution2.sql ├── question1970 └── Solution.java ├── question1971_find_if_path_exists_in_graph └── Solution.java ├── question1974_minimum_time_to_type_word_using_special_typewriter └── Solution.java ├── question1975_maximum_matrix_sum └── Solution.java ├── question1976_number_of_ways_to_arrive_at_destination └── Solution.java ├── question1977 └── Solution.java ├── question1979_find_greatest_common_divisor_of_array └── Solution.java ├── question1980_find_unique_binary_string └── Solution.java ├── question1981_minimize_the_difference_between_target_and_chosen_elements └── Solution.java ├── question1982 └── Solution.java ├── question1984_minimum_difference_between_highest_and_lowest_of_k_scores └── Solution.java ├── question1985_find_the_kth_largest_integer_in_the_array └── Solution.java ├── question1986_minimum_number_of_work_sessions_to_finish_the_tasks └── Solution.java ├── question1987_number_of_unique_good_subsequences └── Solution.java ├── question1991_find_the_middle_index_in_array └── Solution.java ├── question1992_find_all_groups_of_farmland └── Solution.java ├── question1993_operations_on_tree └── LockingTree.java ├── question1994 └── Solution.java ├── question1995_count_special_quadruplets └── Solution.java ├── question1996 └── Solution.java ├── question1997_first_day_where_you_have_been_in_all_the_rooms └── Solution.java ├── question1998 └── Solution.java ├── question2000_reverse_prefix_of_word └── Solution.java ├── question2001_number_of_pairs_of_interchangeable_rectangles └── Solution.java ├── question2002_maximum_product_of_the_length_of_two_palindromic_subsequences └── Solution.java ├── question2003_smallest_missing_genetic_value_in_each_subtree └── Solution.java ├── question2006_count_number_of_pairs_with_absolute_difference_k └── Solution.java ├── question2007_find_original_array_from_doubled_array └── Solution.java ├── question2008_maximum_earnings_from_taxi └── Solution.java ├── question2009_minimum_number_of_operations_to_make_array_continuous └── Solution.java ├── question2011_final_value_of_variable_after_performing_operations └── Solution.java ├── question2012_sum_of_beauty_in_the_array └── Solution.java ├── question2013_detect_squares └── DetectSquares.java ├── question2014_longest_subsequence_repeated_k_times └── Solution.java ├── question2016_maximum_difference_between_increasing_elements └── Solution.java ├── question2017_grid_game └── Solution.java ├── question2018_check_if_word_can_be_placed_in_crossword └── Solution.java ├── question2019 └── Solution.java ├── question2022_convert_1d_array_into_2d_array └── Solution.java ├── question2023_number_of_pairs_of_strings_with_concatenation_equal_to_target └── Solution.java ├── question2024_maximize_the_confusion_of_an_exam └── Solution.java ├── question2025 └── Solution.java ├── question2027_minimum_moves_to_convert_string └── Solution.java ├── question2028_find_missing_observations └── Solution.java ├── question2029_stone_game_ix └── Solution.java ├── question2030 └── Solution.java ├── question2032_two_out_of_three └── Solution.java ├── question2033_minimum_operations_to_make_a_uni_value_grid └── Solution.java ├── question2034_stock_price_fluctuation └── StockPrice.java ├── question2035 └── Solution.java ├── question2037_minimum_number_of_moves_to_seat_everyone └── Solution.java ├── question2038_remove_colored_pieces_if_both_neighbors_are_the_same_color └── Solution.java ├── question2039_the_time_when_the_network_becomes_idle └── Solution.java ├── question204 ├── Solution1.java └── Solution2.java ├── question2040 └── Solution.java ├── question2042_check_if_numbers_are_ascending_in_a_sentence └── Solution.java ├── question2043_simple_bank_system └── Bank.java ├── question2044_count_number_of_maximum_bitwise_or_subsets └── Solution.java ├── question2045_second_minimum_time_to_reach_destination └── Solution.java ├── question2047_number_of_valid_words_in_a_sentence └── Solution.java ├── question2048_next_greater_numerically_balanced_number └── Solution.java ├── question2049_count_nodes_with_the_highest_score └── Solution.java ├── question2050_parallel_courses_iii └── Solution.java ├── question2053_kth_distinct_string_in_an_array └── Solution.java ├── question2054_two_best_non_overlapping_events └── Solution.java ├── question2055_plates_between_candles ├── Solution1.java └── Solution2.java ├── question2056 └── Solution.java ├── question2057_smallest_index_with_equal_value └── Solution.java ├── question2058_find_the_minimum_and_maximum_number_of_nodes_between_critical_points ├── ListNode.java └── Solution.java ├── question2059_minimum_operations_to_convert_number └── Solution.java ├── question2060_check_if_an_original_string_exists_given_two_encoded_strings └── Solution.java ├── question2062_count_vowel_substrings_of_a_string └── Solution.java ├── question2063_vowels_of_all_substrings └── Solution.java ├── question2064_minimized_maximum_of_products_distributed_to_any_store └── Solution.java ├── question2065_maximum_path_quality_of_a_graph └── Solution.java ├── question2068_check_whether_two_strings_are_almost_equivalent └── Solution.java ├── question2069_walking_robot_simulation_ii └── Robot.java ├── question2070_most_beautiful_item_for_each_query └── Solution.java ├── question2071_maximum_number_of_tasks_you_can_assign └── Solution.java ├── question2073_time_needed_to_buy_tickets └── Solution.java ├── question2074_reverse_nodes_in_even_length_groups ├── ListNode.java └── Solution.java ├── question2075_decode_the_slanted_ciphertext └── Solution.java ├── question2076_process_restricted_friend_requests └── Solution.java ├── question2078_two_furthest_houses_with_different_colors └── Solution.java ├── question2079_watering_plants └── Solution.java ├── question2080_range_frequency_queries └── RangeFreqQuery.java ├── question2081_sum_of_k_mirror_numbers └── Solution.java ├── question2085 └── Solution.java ├── question2086 └── Solution.java ├── question2087 └── Solution.java ├── question2088 └── Solution.java ├── question2089 └── Solution.java ├── question2090 └── Solution.java ├── question2091 └── Solution.java ├── question2092 └── Solution.java ├── question2094 └── Solution.java ├── question2095 ├── ListNode.java └── Solution.java ├── question2096 ├── Solution.java └── TreeNode.java ├── question2097 └── Solution.java ├── question2099 └── Solution.java ├── question2100 └── Solution.java ├── question2101 └── Solution.java ├── question2102 └── SORTracker.java ├── question2103 └── Solution.java ├── question2104 └── Solution.java ├── question2105 └── Solution.java ├── question2106 └── Solution.java ├── question2108 └── Solution.java ├── question2109 └── Solution.java ├── question2110 └── Solution.java ├── question2111 └── Solution.java ├── question2114 └── Solution.java ├── question2115 └── Solution.java ├── question2116 └── Solution.java ├── question2117 └── Solution.java ├── question2119 └── Solution.java ├── question2120 └── Solution.java ├── question2121 └── Solution.java ├── question2122 └── Solution.java ├── question2124 └── Solution.java ├── question2125 └── Solution.java ├── question2126 └── Solution.java ├── question2127 └── Solution.java ├── question2129 └── Solution.java ├── question2130 ├── ListNode.java └── Solution.java ├── question2131 └── Solution.java ├── question2132 └── Solution.java ├── question2133 └── Solution.java ├── question2134 └── Solution.java ├── question2135 └── Solution.java ├── question2136 └── Solution.java ├── question2138 └── Solution.java ├── question2139 └── Solution.java ├── question2140 └── Solution.java ├── question2141 └── Solution.java ├── question2144 └── Solution.java ├── question2145 └── Solution.java ├── question2146 └── Solution.java ├── question2147 └── Solution.java ├── question2148 └── Solution.java ├── question2149 └── Solution.java ├── question2150 └── Solution.java ├── question2151 └── Solution.java ├── question2154 └── Solution.java ├── question2155 └── Solution.java ├── question2156 └── Solution.java ├── question2157 └── Solution.java ├── question2160 └── Solution.java ├── question2161 └── Solution.java ├── question2162 └── Solution.java ├── question2163 └── Solution.java ├── question2164 └── Solution.java ├── question2165 └── Solution.java ├── question2166 └── Bitset.java ├── question2167 └── Solution.java ├── question2169 └── Solution.java ├── question217 └── Solution.java ├── question2170 └── Solution.java ├── question2171 └── Solution.java ├── question2172 └── Solution.java ├── question2176 └── Solution.java ├── question2177 └── Solution.java ├── question2178 └── Solution.java ├── question2179 └── Solution.java ├── question2180 └── Solution.java ├── question2181 ├── ListNode.java └── Solution.java ├── question2182 └── Solution.java ├── question2183 └── Solution.java ├── question2185 └── Solution.java ├── question2186 └── Solution.java ├── question2187 └── Solution.java ├── question2188 └── Solution.java ├── question2190 └── Solution.java ├── question2191 └── Solution.java ├── question2192 └── Solution.java ├── question2193 ├── Solution1.java └── Solution2.java ├── question2194 └── Solution.java ├── question2195 └── Solution.java ├── question2196 ├── Solution.java └── TreeNode.java ├── question2197 └── Solution.java ├── question2200 └── Solution.java ├── question2201 └── Solution.java ├── question2202 └── Solution.java ├── question2203 └── Solution.java ├── question2210 └── Solution.java ├── question2211 └── Solution.java ├── question2212 └── Solution.java ├── question2213 └── Solution.java ├── question2215 └── Solution.java ├── question2216 └── Solution.java ├── question2217 └── Solution.java ├── question2218 └── Solution.java ├── question2224 └── Solution.java ├── question2225 └── Solution.java ├── question2226 └── Solution.java ├── question2227 └── Encrypter.java ├── question223 └── Solution.java ├── question2231 └── Solution.java ├── question2232 └── Solution.java ├── question2233 └── Solution.java ├── question2234 └── Solution.java ├── question229 ├── Solution1.java └── Solution2.java ├── question237 ├── ListNode.java └── Solution.java ├── question240 ├── Solution1.java ├── Solution2.java ├── Solution3.java └── Solution4.java ├── question301 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question414 ├── Solution1.java └── Solution2.java ├── question429 ├── Node.java └── Solution.java ├── question442 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question498 └── Solution.java ├── question501 ├── Solution1.java ├── Solution2.java └── TreeNode.java ├── question621 ├── Solution1.java ├── Solution2.java └── Solution3.java ├── question654 ├── Solution.java └── TreeNode.java ├── question655 ├── Solution.java └── TreeNode.java ├── question784 └── Solution.java └── question814 ├── Solution.java └── TreeNode.java /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/617076674/LeetCode/0718538ddb79e71fec9a330ea27524a60eb60259/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 我的力扣代码仓,近乎所有题目都会提供多种解法 :) 2 | 3 | 有关更详细的题解说明请访问我的力扣主页中的题解: 4 | 5 | [钱一辉的力扣主页](https://leetcode-cn.com/u/617076674/) -------------------------------------------------------------------------------- /contest_double_week/question1/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_double_week.question1; 2 | 3 | public class Solution { 4 | 5 | 6 | public static void main(String[] args) { 7 | 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /contest_double_week/question2/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_double_week.question2; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /contest_double_week/question3/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_double_week.question3; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /contest_double_week/question4/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_double_week.question4; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /contest_single_week/question1/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_single_week.question1; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /contest_single_week/question2/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_single_week.question2; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /contest_single_week/question3/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_single_week.question3; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | 8 | 9 | public static void main(String[] args) { 10 | 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /contest_single_week/question4/Solution.java: -------------------------------------------------------------------------------- 1 | package contest_single_week.question4; 2 | 3 | public class Solution { 4 | 5 | 6 | 7 | public static void main(String[] args) { 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /lcci0109_string_rotation/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0109_string_rotation; 2 | 3 | /** 4 | * https://leetcode-cn.com/problems/string-rotation-lcci/ 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:40.1MB,击败100.00%。 7 | */ 8 | public class Solution { 9 | public boolean isFlipedString(String s1, String s2) { 10 | return s1.length() == s2.length() && (s2 + s2).contains(s1); 11 | } 12 | } -------------------------------------------------------------------------------- /lcci0201_remove_duplicate_node/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0201_remove_duplicate_node; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0202_kth_node_from_end_of_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0202_kth_node_from_end_of_list; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0203_delete_middle_node/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0203_delete_middle_node; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0203_delete_middle_node/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0203_delete_middle_node; 2 | 3 | public class Solution { 4 | 5 | public void deleteNode(ListNode node) { 6 | while (node.next.next != null) { 7 | node.val = node.next.val; 8 | node = node.next; 9 | } 10 | node.val = node.next.val; 11 | node.next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /lcci0204_partition_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0204_partition_list; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0205_sum_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0205_sum_lists; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0206_palindrome_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0206_palindrome_linked_list; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0207_intersection_of_two_linked_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0207_intersection_of_two_linked_lists; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0208_linked_list_cycle/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0208_linked_list_cycle; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0402_minimum_height_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0402_minimum_height_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0403_list_of_depth/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcci0403_list_of_depth; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcci0403_list_of_depth/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0403_list_of_depth; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0404_check_balance/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0404_check_balance; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0405_legal_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0405_legal_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0406_successor/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0406_successor; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0408_first_common_ancestor/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0408_first_common_ancestor; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0409_bst_sequences/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0409_bst_sequences; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0410_check_subtree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0410_check_subtree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0412_paths_with_sum/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci0412_paths_with_sum; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcci0501_insert_into_bits/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0501_insert_into_bits; 2 | 3 | /** 4 | * 时间复杂度和空间复杂度均是O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:36.2MB,击败100.00%。 7 | */ 8 | public class Solution { 9 | public int insertBits(int N, int M, int i, int j) { 10 | for (int k = i; k <= j; k++) { 11 | if ((N & (1 << k)) != 0) { 12 | N -= (1 << k); 13 | } 14 | } 15 | return N + (M << i); 16 | } 17 | } -------------------------------------------------------------------------------- /lcci0506_convert_integer/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0506_convert_integer; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:36.4MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int convertInteger(int A, int B) { 8 | int num = A ^ B, result = 0; 9 | for (int i = 0; i < 32; i++) { 10 | if (((num >> i) & 1) == 1) { 11 | result++; 12 | } 13 | } 14 | return result; 15 | } 16 | } -------------------------------------------------------------------------------- /lcci0507_exchange/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0507_exchange; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:36.4MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int exchangeBits(int num) { 8 | int result = 0; 9 | for (int i = 31; i > 0; i -= 2) { 10 | int bit1 = ((num >> i) & 1), bit2 = ((num >> (i - 1)) & 1); 11 | result = result * 2 + bit2; 12 | result = result * 2 + bit1; 13 | } 14 | return result; 15 | } 16 | } -------------------------------------------------------------------------------- /lcci0803_magic_index/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0803_magic_index; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:40.7MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int findMagicIndex(int[] nums) { 8 | for (int i = 0; i < nums.length; i++) { 9 | if (i == nums[i]) { 10 | return i; 11 | } 12 | } 13 | return -1; 14 | } 15 | } -------------------------------------------------------------------------------- /lcci0805_recursive_mulitply/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0805_recursive_mulitply; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:36.6MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int multiply(int A, int B) { 8 | if (B > A) { 9 | return multiply(B, A); 10 | } 11 | if (B == 1) { 12 | return A; 13 | } 14 | int half = multiply(A, B >> 1); 15 | if ((B & 1) == 0) { 16 | return half << 1; 17 | } 18 | return (half << 1) + A; 19 | } 20 | } -------------------------------------------------------------------------------- /lcci0811_coin/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci0811_coin; 2 | 3 | /** 4 | * 执行用时:44ms,击败39.25%。消耗内存:43.7MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int waysToChange(int n) { 8 | int[] coins = {25, 10, 5, 1}, dp = new int[n + 1]; 9 | dp[0] = 1; 10 | for (int i = 0; i < coins.length; i++) { 11 | for (int j = coins[i]; j <= n; j++) { 12 | dp[j] += dp[j - coins[i]]; 13 | dp[j] %= 1000000007; 14 | } 15 | } 16 | return dp[n]; 17 | } 18 | } -------------------------------------------------------------------------------- /lcci1001_sorted_merge/合并排序的数组.md: -------------------------------------------------------------------------------- 1 | [合并排序的数组](https://leetcode-cn.com/problems/sorted-merge-lcci/) 2 | 3 | 给定两个排序后的数组`A`和`B`,其中`A`的末端有足够的缓冲空间容纳`B`。 编写一个方法,将`B`合并入`A`并排序。 4 | 5 | 初始化`A`和`B`的元素数量分别为`m`和`n`。 6 | 7 | 示例: 8 | 9 | ``` 10 | 输入: 11 | A = [1,2,3,0,0,0], m = 3 12 | B = [2,5,6], n = 3 13 | 14 | 输出: [1,2,2,3,5,6] 15 | ``` 16 | 17 | [合并排序的数组](https://leetcode-cn.com/problems/sorted-merge-lcci/solution/he-bing-pai-xu-de-shu-zu-by-617076674/) -------------------------------------------------------------------------------- /lcci1003_search_rotate_array/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci1003_search_rotate_array; 2 | 3 | public class Solution { 4 | 5 | public int search(int[] arr, int target) { 6 | for (int i = 0; i < arr.length; i++) { 7 | if (arr[i] == target) { 8 | return i; 9 | } 10 | } 11 | return -1; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /lcci1601_swap_numbers/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci1601_swap_numbers; 2 | 3 | public class Solution { 4 | public int[] swapNumbers(int[] numbers) { 5 | numbers[0] = numbers[0] ^ numbers[1]; 6 | numbers[1] = numbers[0] ^ numbers[1]; 7 | numbers[0] = numbers[0] ^ numbers[1]; 8 | return numbers; 9 | } 10 | } -------------------------------------------------------------------------------- /lcci1605_factorial_zeros/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci1605_factorial_zeros; 2 | 3 | public class Solution { 4 | 5 | public int trailingZeroes(int n) { 6 | int result = 0; 7 | while (n >= 5) { 8 | n /= 5; 9 | result += n; 10 | } 11 | return result; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /lcci1607_maximum/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci1607_maximum; 2 | 3 | public class Solution { 4 | 5 | public int maximum(int a, int b) { 6 | return (int) (((long) a + b + Math.abs((long) a - b)) / 2); 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /lcci1701_add_without_plus/Solution.java: -------------------------------------------------------------------------------- 1 | package lcci1701_add_without_plus; 2 | 3 | public class Solution { 4 | 5 | public int add(int a, int b) { 6 | while (true) { 7 | int tmp1 = a ^ b, tmp2 = (a & b) << 1; 8 | if (tmp2 == 0) { 9 | return tmp1; 10 | } 11 | a = tmp1; 12 | b = tmp2; 13 | } 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /lcci1712_binode/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcci1712_binode; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof05_ti_huan_kong_ge/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof05_ti_huan_kong_ge; 2 | 3 | public class Solution { 4 | 5 | public String replaceSpace(String s) { 6 | StringBuilder sb = new StringBuilder(); 7 | for (int i = 0; i < s.length(); i++) { 8 | char c = s.charAt(i); 9 | if (c == ' ') { 10 | sb.append("%20"); 11 | } else { 12 | sb.append(c); 13 | } 14 | } 15 | return sb.toString(); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lcof06_cong_wei_dao_tou_da_yin_lian_biao/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof06_cong_wei_dao_tou_da_yin_lian_biao; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /lcof07_zhong_jian_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof07_zhong_jian_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof10_i_fei_bo_na_qi_shu_lie/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof10_i_fei_bo_na_qi_shu_lie; 2 | 3 | public class Solution { 4 | 5 | public int fib(int n) { 6 | if (n <= 1) { 7 | return n; 8 | } 9 | int num1 = 0, num2 = 1, num = 1; 10 | for (int i = 1; i < n; i++) { 11 | num = (num1 + num2) % 1000000007; 12 | num1 = num2; 13 | num2 = num; 14 | } 15 | return num; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lcof10_ii_qing_wa_tiao_tai_jie_wen_ti/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof10_ii_qing_wa_tiao_tai_jie_wen_ti; 2 | 3 | public class Solution { 4 | public int numWays(int n) { 5 | if (n <= 1) { 6 | return 1; 7 | } 8 | int num1 = 1, num2 = 1, num = 1; 9 | for (int i = 1; i < n; i++) { 10 | num = (num1 + num2) % 1000000007; 11 | num1 = num2; 12 | num2 = num; 13 | } 14 | return num; 15 | } 16 | } -------------------------------------------------------------------------------- /lcof14_i_jian_sheng_zi/Solution1.java: -------------------------------------------------------------------------------- 1 | package lcof14_i_jian_sheng_zi; 2 | 3 | /** 4 | * 递归。 5 | * 6 | * 时间复杂度和空间复杂度均是 O(n)。 7 | * 8 | * 执行用时:0ms,击败100.00%。消耗内存:36.7MB,击败100.00%。 9 | */ 10 | public class Solution1 { 11 | public int cuttingRope(int n) { 12 | if (n <= 3) { 13 | return n - 1; 14 | } 15 | return cuttingRopeHelper(n); 16 | } 17 | 18 | private int cuttingRopeHelper(int n) { 19 | if (n <= 4) { 20 | return n; 21 | } 22 | return 3 * cuttingRopeHelper(n - 3); 23 | } 24 | } -------------------------------------------------------------------------------- /lcof15_er_jin_zhi_zhong_1de_ge_shu/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof15_er_jin_zhi_zhong_1de_ge_shu; 2 | 3 | public class Solution { 4 | // you need to treat n as an unsigned value 5 | public int hammingWeight(int n) { 6 | int result = 0; 7 | for (int i = 0; i < 32; i++) { 8 | if ((n & (1 << i)) != 0) { 9 | result++; 10 | } 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /lcof17_da_yin_cong_1dao_zui_da_de_nwei_shu/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof17_da_yin_cong_1dao_zui_da_de_nwei_shu; 2 | 3 | public class Solution { 4 | public int[] printNumbers(int n) { 5 | int max = (int) (Math.pow(10, n) - 1); 6 | int[] result = new int[max]; 7 | for (int i = 0; i < max; i++) { 8 | result[i] = i + 1; 9 | } 10 | return result; 11 | } 12 | } -------------------------------------------------------------------------------- /lcof18_shan_chu_lian_biao_de_jie_dian/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof18_shan_chu_lian_biao_de_jie_dian; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /lcof22_lian_biao_zhong_dao_shu_di_kge_jie_dian/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof22_lian_biao_zhong_dao_shu_di_kge_jie_dian; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /lcof22_lian_biao_zhong_dao_shu_di_kge_jie_dian/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof22_lian_biao_zhong_dao_shu_di_kge_jie_dian; 2 | 3 | public class Solution { 4 | public ListNode getKthFromEnd(ListNode head, int k) { 5 | ListNode cur1 = head, cur2 = head; 6 | while (k-- > 0) { 7 | cur2 = cur2.next; 8 | } 9 | while (cur2 != null) { 10 | cur1 = cur1.next; 11 | cur2 = cur2.next; 12 | } 13 | return cur1; 14 | } 15 | } -------------------------------------------------------------------------------- /lcof24_fan_zhuan_lian_biao/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof24_fan_zhuan_lian_biao; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcof24_fan_zhuan_lian_biao/Solution1.java: -------------------------------------------------------------------------------- 1 | package lcof24_fan_zhuan_lian_biao; 2 | 3 | /** 4 | * 递归实现。 5 | * 6 | * 时间复杂度和空间复杂度均是 O(n),其中 n 为链表中的节点个数。 7 | */ 8 | public class Solution1 { 9 | public ListNode reverseList(ListNode head) { 10 | if (null == head || null == head.next) { 11 | return head; 12 | } 13 | ListNode result = reverseList(head.next); 14 | head.next.next = head; 15 | head.next = null; 16 | return result; 17 | } 18 | } -------------------------------------------------------------------------------- /lcof25_he_bing_liang_ge_pai_xu_de_lian_biao/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof25_he_bing_liang_ge_pai_xu_de_lian_biao; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /lcof26_shu_de_zi_jie_gou/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof26_shu_de_zi_jie_gou; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof27_er_cha_shu_de_jing_xiang/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof27_er_cha_shu_de_jing_xiang; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:37.3MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public TreeNode mirrorTree(TreeNode root) { 8 | if (null == root) { 9 | return root; 10 | } 11 | TreeNode left = root.left, right = root.right; 12 | root.left = mirrorTree(right); 13 | root.right = mirrorTree(left); 14 | return root; 15 | } 16 | } -------------------------------------------------------------------------------- /lcof27_er_cha_shu_de_jing_xiang/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof27_er_cha_shu_de_jing_xiang; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof28_dui_cheng_de_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof28_dui_cheng_de_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof31_zhan_de_ya_ru_dan_chu_xu_lie/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof31_zhan_de_ya_ru_dan_chu_xu_lie; 2 | 3 | import java.util.LinkedList; 4 | 5 | public class Solution { 6 | 7 | public boolean validateStackSequences(int[] pushed, int[] popped) { 8 | LinkedList stack = new LinkedList<>(); 9 | int index = 0; 10 | for (int push : pushed) { 11 | stack.push(push); 12 | while (!stack.isEmpty() && stack.peek() == popped[index]) { 13 | stack.pop(); 14 | index++; 15 | } 16 | } 17 | return stack.isEmpty(); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /lcof32_i_cong_shang_dao_xia_da_yin_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof32_i_cong_shang_dao_xia_da_yin_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode() { 9 | } 10 | 11 | TreeNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | TreeNode(int val, TreeNode left, TreeNode right) { 16 | this.val = val; 17 | this.left = left; 18 | this.right = right; 19 | } 20 | } -------------------------------------------------------------------------------- /lcof32_ii_cong_shang_dao_xia_da_yin_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof32_ii_cong_shang_dao_xia_da_yin_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof32_iii_cong_shang_dao_xia_da_yin_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof32_iii_cong_shang_dao_xia_da_yin_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof34_er_cha_shu_zhong_he_wei_mou_yi_zhi_de_lu_jing/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof34_er_cha_shu_zhong_he_wei_mou_yi_zhi_de_lu_jing; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcof35_fu_za_lian_biao_de_fu_zhi/Node.java: -------------------------------------------------------------------------------- 1 | package lcof35_fu_za_lian_biao_de_fu_zhi; 2 | 3 | public class Node { 4 | 5 | int val; 6 | 7 | Node next; 8 | 9 | Node random; 10 | 11 | public Node(int val) { 12 | this.val = val; 13 | this.next = null; 14 | this.random = null; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /lcof36_er_cha_sou_suo_shu_yu_shuang_xiang_lian_biao/Node.java: -------------------------------------------------------------------------------- 1 | package lcof36_er_cha_sou_suo_shu_yu_shuang_xiang_lian_biao; 2 | 3 | public class Node { 4 | public int val; 5 | 6 | public Node left; 7 | 8 | public Node right; 9 | 10 | public Node() { 11 | } 12 | 13 | public Node(int _val) { 14 | val = _val; 15 | } 16 | 17 | public Node(int _val, Node _left, Node _right) { 18 | val = _val; 19 | left = _left; 20 | right = _right; 21 | } 22 | } -------------------------------------------------------------------------------- /lcof37_xu_lie_hua_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof37_xu_lie_hua_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof50_di_yi_ge_zhi_chu_xian_yi_ci_de_zi_fu/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof50_di_yi_ge_zhi_chu_xian_yi_ci_de_zi_fu; 2 | 3 | public class Solution { 4 | 5 | public char firstUniqChar(String s) { 6 | int[] count = new int[26]; 7 | for (int i = 0; i < s.length(); i++) { 8 | count[s.charAt(i) - 'a']++; 9 | } 10 | for (int i = 0; i < s.length(); i++) { 11 | if (count[s.charAt(i) - 'a'] == 1) { 12 | return s.charAt(i); 13 | } 14 | } 15 | return ' '; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lcof52_liang_ge_lian_biao_de_di_yi_ge_gong_gong_jie_dian/ListNode.java: -------------------------------------------------------------------------------- 1 | package lcof52_liang_ge_lian_biao_de_di_yi_ge_gong_gong_jie_dian; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /lcof55_er_cha_shu_de_shen_du/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof55_er_cha_shu_de_shen_du; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:40MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int maxDepth(TreeNode root) { 8 | if (null == root) { 9 | return 0; 10 | } 11 | return 1 + Math.max(maxDepth(root.left), maxDepth(root.right)); 12 | } 13 | } -------------------------------------------------------------------------------- /lcof55_er_cha_shu_de_shen_du/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof55_er_cha_shu_de_shen_du; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof55_ii_ping_heng_er_cha_shu/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof55_ii_ping_heng_er_cha_shu; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof56_ii_shu_zu_zhong_shu_zi_chu_xian_de_ci_shu/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof56_ii_shu_zu_zhong_shu_zi_chu_xian_de_ci_shu; 2 | 3 | public class Solution { 4 | 5 | public int singleNumber(int[] nums) { 6 | int result = 0; 7 | for (int i = 0; i < 32; i++) { 8 | int count = 0; 9 | for (int num : nums) { 10 | if (((num >> i) & 1) == 1) { 11 | count++; 12 | } 13 | } 14 | if (count % 3 == 1) { 15 | result |= (1 << i); 16 | } 17 | } 18 | return result; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /lcof58_ii_zuo_xuan_zhuan_zi_fu_chuan/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof58_ii_zuo_xuan_zhuan_zi_fu_chuan; 2 | 3 | public class Solution { 4 | 5 | public String reverseLeftWords(String s, int n) { 6 | return (s + s).substring(n, n + s.length()); 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /lcof62_yuan_quan_zhong_zui_hou_sheng_xia_de_shu_zi/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof62_yuan_quan_zhong_zui_hou_sheng_xia_de_shu_zi; 2 | 3 | public class Solution { 4 | 5 | public int lastRemaining(int n, int m) { 6 | if (n == 1) { 7 | return 0; 8 | } 9 | return (lastRemaining(n - 1, m) + m) % n; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /lcof64_qiu_12n/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof64_qiu_12n; 2 | 3 | /** 4 | * 短路与操作。 5 | * 6 | * 时间复杂度和空间复杂度均是 O(n)。 7 | * 8 | * 执行用时:1ms,击败66.05%。消耗内存:36.9MB,击败100.00%。 9 | */ 10 | public class Solution { 11 | public int sumNums(int n) { 12 | boolean flag = n > 0 && (n += sumNums(n - 1)) > 0; 13 | return n; 14 | } 15 | } -------------------------------------------------------------------------------- /lcof65_bu_yong_jia_jian_cheng_chu_zuo_jia_fa/Solution.java: -------------------------------------------------------------------------------- 1 | package lcof65_bu_yong_jia_jian_cheng_chu_zuo_jia_fa; 2 | 3 | public class Solution { 4 | 5 | public int add(int a, int b) { 6 | while (true) { 7 | int tmp1 = a ^ b; 8 | int tmp2 = (a & b) << 1; 9 | if (tmp2 == 0) { 10 | return tmp1; 11 | } 12 | a = tmp1; 13 | b = tmp2; 14 | } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /lcof68_i_er_cha_sou_suo_shu_de_zui_jin_gong_gong_zu_xian/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof68_i_er_cha_sou_suo_shu_de_zui_jin_gong_gong_zu_xian; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof68_ii_er_cha_shu_de_zui_jin_gong_gong_zu_xian/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof68_ii_er_cha_shu_de_zui_jin_gong_gong_zu_xian; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcof_er_cha_sou_suo_shu_de_di_kda_jie_dian/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcof_er_cha_sou_suo_shu_de_di_kda_jie_dian; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /lcp01_guess_numbers/Solution.java: -------------------------------------------------------------------------------- 1 | package lcp01_guess_numbers; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:36.4MB,击败5.58%。 5 | */ 6 | public class Solution { 7 | 8 | public int game(int[] guess, int[] answer) { 9 | int result = 0; 10 | for (int i = 0; i < 3; i++) { 11 | if (guess[i] == answer[i]) { 12 | result++; 13 | } 14 | } 15 | return result; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lcp06_na_ying_bi/Solution.java: -------------------------------------------------------------------------------- 1 | package lcp06_na_ying_bi; 2 | 3 | /** 4 | * 时间复杂度是O(n),其中n为coins数组的长度。空间复杂度是O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:36.9MB,击败100.00%。 7 | */ 8 | public class Solution { 9 | public int minCount(int[] coins) { 10 | int result = 0; 11 | for (int coin : coins) { 12 | result += (coin >> 1); 13 | if ((coin & 1) == 1) { 14 | result++; 15 | } 16 | } 17 | return result; 18 | } 19 | } -------------------------------------------------------------------------------- /lcp10/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcp10; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcp17_nGK0Fy/Solution.java: -------------------------------------------------------------------------------- 1 | package lcp17_nGK0Fy; 2 | 3 | public class Solution { 4 | 5 | public int calculate(String s) { 6 | int x = 1, y = 0; 7 | for (int i = 0; i < s.length(); i++) { 8 | if (s.charAt(i) == 'A') { 9 | x = 2 * x + y; 10 | } else { 11 | y = 2 * y + x; 12 | } 13 | } 14 | return x + y; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /lcp26/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcp26; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /lcp29_SNJvJP/Solution.java: -------------------------------------------------------------------------------- 1 | package lcp29_SNJvJP; 2 | 3 | public class Solution { 4 | 5 | public int orchestraLayout(int num, int xPos, int yPos) { 6 | long x = xPos, y = yPos, n = num; 7 | if (x <= y) { 8 | long k = Math.min(x, n - 1 - y); 9 | return (int) ((4 * k * (n - k) + 1 + (x + y - k * 2) - 1) % 9 + 1); 10 | } 11 | long k = Math.min(y, n - 1 - x) + 1; 12 | return (int) ((4 * k * (n - k) + 1 - (x + y - (k - 1) * 2) - 1) % 9 + 1); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /lcp34_er_cha_shu_ran_se_UGC/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcp34_er_cha_shu_ran_se_UGC; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /lcp44_sZ59z6/Solution.java: -------------------------------------------------------------------------------- 1 | package lcp44_sZ59z6; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class Solution { 7 | 8 | private Set colorSet = new HashSet<>(); 9 | 10 | public int numColor(TreeNode root) { 11 | dfs(root); 12 | return colorSet.size(); 13 | } 14 | 15 | private void dfs(TreeNode treeNode) { 16 | if (null == treeNode) { 17 | return; 18 | } 19 | colorSet.add(treeNode.val); 20 | dfs(treeNode.left); 21 | dfs(treeNode.right); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /lcp44_sZ59z6/TreeNode.java: -------------------------------------------------------------------------------- 1 | package lcp44_sZ59z6; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /lcs01_Ju9Xwi/Solution.java: -------------------------------------------------------------------------------- 1 | package lcs01_Ju9Xwi; 2 | 3 | public class Solution { 4 | 5 | public int leastMinutes(int n) { 6 | int cur = 0, speed = 1, step = 0; 7 | while (cur < n) { 8 | if (cur + speed < n) { 9 | speed *= 2; 10 | } else { 11 | cur += speed; 12 | } 13 | step++; 14 | } 15 | return step; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lcs02_WqXACV/Solution.java: -------------------------------------------------------------------------------- 1 | package lcs02_WqXACV; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int halfQuestions(int[] questions) { 8 | int[] count = new int[1001]; 9 | for (int question : questions) { 10 | count[question]++; 11 | } 12 | Arrays.sort(count); 13 | int index = count.length - 1, n = questions.length / 2; 14 | while (n > 0) { 15 | n -= count[index--]; 16 | } 17 | return count.length - index - 1; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question0001_two_sum/两数之和.md: -------------------------------------------------------------------------------- 1 | [两数之和](https://leetcode-cn.com/problems/two-sum/) 2 | 3 | 给定一个整数数组`nums`和一个目标值`target`,请你在该数组中找出和为目标值的那`两个`整数,并返回他们的数组下标。 4 | 5 | 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 6 | 7 | 示例: 8 | 9 | ``` 10 | 给定 nums = [2, 7, 11, 15], target = 9 11 | 12 | 因为 nums[0] + nums[1] = 2 + 7 = 9 13 | 所以返回 [0, 1] 14 | ``` 15 | 16 | [两数之和-3种解法](https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-3chong-jie-fa-by-617076674/) -------------------------------------------------------------------------------- /question0002_add_two_numbers/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0002_add_two_numbers; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0002_add_two_numbers/两数相加.md: -------------------------------------------------------------------------------- 1 | [两数相加](https://leetcode-cn.com/problems/add-two-numbers/) 2 | 3 | 给出两个`非空`的链表用来表示两个非负的整数。其中,它们各自的位数是按照`逆序`的方式存储的,并且它们的每个节点只能存储`一位`数字。 4 | 5 | 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 6 | 7 | 您可以假设除了数字0之外,这两个数都不会以0开头。 8 | 9 | 示例: 10 | 11 | ``` 12 | 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 13 | 输出:7 -> 0 -> 8 14 | 原因:342 + 465 = 807 15 | ``` 16 | 17 | [两数相加-2种解法](https://leetcode-cn.com/problems/add-two-numbers/solution/liang-shu-xiang-jia-kao-lu-jin-wei-duo-she-zhi-zhe/) -------------------------------------------------------------------------------- /question0005_longest_palindromic_substring/最长回文子串.md: -------------------------------------------------------------------------------- 1 | [最长回文子串](https://leetcode-cn.com/problems/median-of-two-sorted-arrays/) 2 | 3 | 给定一个字符串`s`,找到`s`中最长的回文子串。你可以假设`s`的最大长度为1000。 4 | 5 | 示例 1: 6 | 7 | ``` 8 | 输入: "babad" 9 | 输出: "bab" 10 | 注意: "aba" 也是一个有效答案。 11 | ``` 12 | 13 | 示例 2: 14 | 15 | ``` 16 | 输入: "cbbd" 17 | 输出: "bb" 18 | ``` 19 | 20 | [最长回文子串-3种解法](https://leetcode-cn.com/problems/longest-palindromic-substring/solution/zui-chang-hui-wen-zi-chuan-by-617076674/) -------------------------------------------------------------------------------- /question0007_reverse_integer/整数反转.md: -------------------------------------------------------------------------------- 1 | [整数反转](https://leetcode-cn.com/problems/reverse-integer/) 2 | 3 | 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 4 | 5 | 示例 1: 6 | 7 | ``` 8 | 输入: 123 9 | 输出: 321 10 | ``` 11 | 12 | 示例 2: 13 | 14 | ``` 15 | 输入: -123 16 | 输出: -321 17 | ``` 18 | 19 | 示例 3: 20 | 21 | ``` 22 | 输入: 120 23 | 输出: 21 24 | ``` 25 | 26 | 注意: 27 | 28 | 假设我们的环境只能存储得下`32`位的有符号整数,则其数值范围为`[−2^31,  2^31 − 1]`。请根据这个假设,如果反转后整数溢出那么就返回`0`。 29 | 30 | [整数反转](https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-2chong-jie-fa-by-617076674/) -------------------------------------------------------------------------------- /question0019_remove_nth_node_from_end_of_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0019_remove_nth_node_from_end_of_list; 2 | 3 | public class ListNode { 4 | 5 | public int val; 6 | 7 | public ListNode next; 8 | 9 | public ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0021_merge_two_sorted_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0021_merge_two_sorted_lists; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0023_merge_k_sorted_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0023_merge_k_sorted_lists; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0024_swap_nodes_in_pairs/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0024_swap_nodes_in_pairs; 2 | 3 | public class ListNode { 4 | 5 | public int val; 6 | 7 | public ListNode next; 8 | 9 | public ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0025_reverse_nodes_in_k_group/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0025_reverse_nodes_in_k_group; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0050_powx_n/Solution1.java: -------------------------------------------------------------------------------- 1 | package question0050_powx_n; 2 | 3 | /** 4 | * 递归实现。 5 | * 6 | * 时间复杂度和空间复杂度均是O(logn)。 7 | * 8 | * 执行用时:1ms,击败99.95%。消耗内存:33.4MB,击败75.61%。 9 | */ 10 | public class Solution1 { 11 | public double myPow(double x, int n) { 12 | if (n == 0) { 13 | return 1; 14 | } 15 | if (n > 0) { 16 | double tmp = myPow(x, n / 2); 17 | return (n & 1) == 0 ? tmp * tmp : tmp * tmp * x; 18 | } 19 | double tmp = myPow(x, n / 2); 20 | return (n & 1) == 0 ? tmp * tmp : tmp * tmp / x; 21 | } 22 | } -------------------------------------------------------------------------------- /question0050_powx_n/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0050_powx_n; 2 | 3 | public class Solution2 { 4 | 5 | public double myPow(double x, int n) { 6 | if (n == 0) { 7 | return 1; 8 | } 9 | long nl = n; 10 | if (nl < 0) { 11 | nl = -nl; 12 | } 13 | double result = 1.0; 14 | while (nl > 0) { 15 | if ((nl & 1) == 1) { 16 | result = result * x; 17 | } 18 | x *= x; 19 | nl /= 2; 20 | } 21 | return n < 0 ? 1 / result : result; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question0061_rotate_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0061_rotate_list; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0069_sqrtx/Solution1.java: -------------------------------------------------------------------------------- 1 | package question0069_sqrtx; 2 | 3 | /** 4 | * 暴力破解法。 5 | * 6 | * 时间复杂度是O(x ^ 0.5)。空间复杂度是O(1)。 7 | * 8 | * 执行用时:41ms,击败6.93%。消耗内存:34.1MB,击败75.02%。 9 | */ 10 | public class Solution1 { 11 | public int mySqrt(int x) { 12 | for (long i = 1; i <= x; i++) { 13 | if (i * i > x) { 14 | return (int) (i - 1); 15 | } else if (i * i == x) { 16 | return (int) i; 17 | } 18 | } 19 | return 0; 20 | } 21 | } -------------------------------------------------------------------------------- /question0069_sqrtx/Solution3.java: -------------------------------------------------------------------------------- 1 | package question0069_sqrtx; 2 | 3 | /** 4 | * 牛顿迭代法。 5 | * 6 | * 时间复杂度是O(logx)。空间复杂度是O(1)。 7 | * 8 | * 执行用时:3ms,击败95.13%。消耗内存:34MB,击败75.02%。 9 | */ 10 | public class Solution3 { 11 | public int mySqrt(int x) { 12 | double pre = 0.0, cur = 1.0; 13 | while (Math.abs(pre - cur) >= 0.000001) { 14 | pre = cur; 15 | cur = (x + cur * cur) / (2 * cur); 16 | } 17 | return (int) pre; 18 | } 19 | } -------------------------------------------------------------------------------- /question0080_remove_duplicates_from_sorted_array_ii/Solution.java: -------------------------------------------------------------------------------- 1 | package question0080_remove_duplicates_from_sorted_array_ii; 2 | 3 | public class Solution { 4 | 5 | public int removeDuplicates(int[] nums) { 6 | int n = nums.length; 7 | int index = 0; 8 | for (int i = 0; i < n; i++) { 9 | if (i < 2 || nums[i] != nums[index - 2]) { 10 | nums[index] = nums[i]; 11 | index++; 12 | } 13 | } 14 | return index; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question0082_remove_duplicates_from_sorted_list_ii/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0082_remove_duplicates_from_sorted_list_ii; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /question0083/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0083; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0086_partition_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0086_partition_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0092_reverse_linked_list_ii/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0092_reverse_linked_list_ii; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /question0094_binary_tree_inorder_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0094_binary_tree_inorder_traversal; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0095/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0095; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0098_validate_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0098_validate_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0099_recover_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0099_recover_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0100_same_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0100_same_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0101_symmetric_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0101_symmetric_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0102_binary_tree_level_order_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0102_binary_tree_level_order_traversal; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0103_binary_tree_zigzag_level_order_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0103_binary_tree_zigzag_level_order_traversal; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0104/Solution.java: -------------------------------------------------------------------------------- 1 | package question0104; 2 | 3 | /** 4 | * 递归实现即可。 5 | * 6 | * 时间复杂度是O(n),其中n是二叉树中的节点个数。空间复杂度是O(h),其中h是树的高度。 7 | * 8 | * 执行用时:1ms,击败99.11%。消耗内存:37.5MB,击败44.32%。 9 | */ 10 | public class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if (root == null) { 13 | return 0; 14 | } 15 | return Math.max(maxDepth(root.right), maxDepth(root.left)) + 1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /question0104/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0104; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0105/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0105; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0106_construct_binary_tree_from_inorder_and_postorder_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0106_construct_binary_tree_from_inorder_and_postorder_traversal; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0107_binary_tree_level_order_traversal_ii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0107_binary_tree_level_order_traversal_ii; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0108_convert_sorted_array_to_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0108_convert_sorted_array_to_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0109_convert_sorted_list_to_binary_search_tree/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0109_convert_sorted_list_to_binary_search_tree; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode() { 9 | } 10 | 11 | ListNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | ListNode(int val, ListNode next) { 16 | this.val = val; 17 | this.next = next; 18 | } 19 | } -------------------------------------------------------------------------------- /question0109_convert_sorted_list_to_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0109_convert_sorted_list_to_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode() { 11 | } 12 | 13 | TreeNode(int val) { 14 | this.val = val; 15 | } 16 | 17 | TreeNode(int val, TreeNode left, TreeNode right) { 18 | this.val = val; 19 | this.left = left; 20 | this.right = right; 21 | } 22 | } -------------------------------------------------------------------------------- /question0110_balanced_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0110_balanced_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0111_minimum_depth_of_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0111_minimum_depth_of_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0113_path_sum_ii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0113_path_sum_ii; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0114_flatten_binary_tree_to_linked_list/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0114_flatten_binary_tree_to_linked_list; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0116_populating_next_right_pointers_in_each_node/Node.java: -------------------------------------------------------------------------------- 1 | package question0116_populating_next_right_pointers_in_each_node; 2 | 3 | public class Node { 4 | public int val; 5 | public Node left; 6 | public Node right; 7 | public Node next; 8 | 9 | public Node() {} 10 | 11 | public Node(int _val) { 12 | val = _val; 13 | } 14 | 15 | public Node(int _val, Node _left, Node _right, Node _next) { 16 | val = _val; 17 | left = _left; 18 | right = _right; 19 | next = _next; 20 | } 21 | } -------------------------------------------------------------------------------- /question0124_binary_tree_maximum_path_sum/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0124_binary_tree_maximum_path_sum; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0129_sum_root_to_leaf_numbers/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0129_sum_root_to_leaf_numbers; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0136_single_number/Solution.java: -------------------------------------------------------------------------------- 1 | package question0136_single_number; 2 | 3 | /** 4 | * 异或位运算。 5 | * 6 | * 时间复杂度是O(n),其中n为nums数组的长度。空间复杂度是O(1)。 7 | * 8 | * 执行用时:1ms,击败99.79%。消耗内存:42.3MB,击败26.52%。 9 | */ 10 | public class Solution { 11 | 12 | public int singleNumber(int[] nums) { 13 | int result = 0; 14 | for (int num : nums) { 15 | result ^= num; 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question0138/Node.java: -------------------------------------------------------------------------------- 1 | package question0138; 2 | 3 | public class Node { 4 | public int val; 5 | public Node next; 6 | public Node random; 7 | 8 | public Node(int val) { 9 | this.val = val; 10 | } 11 | 12 | public Node(int _val,Node _next,Node _random) { 13 | val = _val; 14 | next = _next; 15 | random = _random; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /question0141_linked_list_cycle/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0141_linked_list_cycle; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question0142_linked_list_cycle_ii/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0142_linked_list_cycle_ii; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question0143_reorder_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0143_reorder_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question0144_binary_tree_preorder_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0144_binary_tree_preorder_traversal; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0145_binary_tree_postorder_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0145_binary_tree_postorder_traversal; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0148_sort_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0148_sort_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | next = null; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question0156/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0156; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0157_read_n_characters_given_read4/Reader4.java: -------------------------------------------------------------------------------- 1 | package question0157_read_n_characters_given_read4; 2 | 3 | public class Reader4 { 4 | int read4(char[] buf) { 5 | return 0; 6 | } 7 | } -------------------------------------------------------------------------------- /question0158_read_n_characters_given_read4_ii_call_multiple_times/Reader4.java: -------------------------------------------------------------------------------- 1 | package question0158_read_n_characters_given_read4_ii_call_multiple_times; 2 | 3 | public class Reader4 { 4 | int read4(char[] buf) { 5 | return 0; 6 | } 7 | } -------------------------------------------------------------------------------- /question0160_intersection_of_two_linked_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0160_intersection_of_two_linked_lists; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | next = null; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0169_majority_element/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0169_majority_element; 2 | 3 | import java.util.Arrays; 4 | 5 | /** 6 | * 排序后返回中间数。 7 | * 8 | * 时间复杂度是O(nlogn),其中n为nums数组的长度。空间复杂度是O(logn)。 9 | * 10 | * 执行用时:4ms,击败66.65。消耗内存:51.7MB,击败13.69%。 11 | */ 12 | public class Solution2 { 13 | public int majorityElement(int[] nums) { 14 | Arrays.sort(nums); 15 | return nums[nums.length >> 1]; 16 | } 17 | } -------------------------------------------------------------------------------- /question0169_majority_element/多数元素.md: -------------------------------------------------------------------------------- 1 | [多数元素](https://leetcode-cn.com/problems/majority-element/) 2 | 3 | 给定一个大小为`n`的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于`⌊ n/2 ⌋`的元素。 4 | 5 | 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 6 | 7 | 示例 1: 8 | 9 | ``` 10 | 输入: [3,2,3] 11 | 输出: 3 12 | ``` 13 | 14 | 示例 2: 15 | 16 | ``` 17 | 输入: [2,2,1,1,1,2,2] 18 | 输出: 2 19 | ``` 20 | 21 | [多数元素-7种解法](https://leetcode-cn.com/problems/majority-element/solution/duo-shu-yuan-su-7chong-jie-fa-by-617076674/) -------------------------------------------------------------------------------- /question0171_excel_sheet_column_number/Solution.java: -------------------------------------------------------------------------------- 1 | package question0171_excel_sheet_column_number; 2 | 3 | public class Solution { 4 | public int titleToNumber(String s) { 5 | int result = 0; 6 | for (int i = 0; i < s.length(); i++) { 7 | result = result * 26 + s.charAt(i) - 'A' + 1; 8 | } 9 | return result; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0173_binary_search_tree_iterator/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0173_binary_search_tree_iterator; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0175_combine_two_tables/Solution.sql: -------------------------------------------------------------------------------- 1 | -- 执行用时:307ms,击败8.54%。消耗内存:0B,击败100.00%。 2 | SELECT 3 | Person.FirstName, Person.LastName, Address.City, Address.State 4 | FROM 5 | Person 6 | LEFT JOIN 7 | Address 8 | ON 9 | Person.PersonId = Address.PersonId -------------------------------------------------------------------------------- /question0176_second_highest_salary/Solution1.sql: -------------------------------------------------------------------------------- 1 | -- 执行用时:178ms,击败27.61%。消耗内存:0B,击败100.00%。 2 | SELECT 3 | (SELECT 4 | DISTINCT Employee.Salary 5 | FROM 6 | Employee 7 | ORDER BY 8 | Salary DESC 9 | LIMIT 1, 1) 10 | AS SecondHighestSalary -------------------------------------------------------------------------------- /question0176_second_highest_salary/Solution2.sql: -------------------------------------------------------------------------------- 1 | -- 执行用时:223ms,击败13.05%。消耗内存:0B,击败100.00%。 2 | SELECT 3 | IFNULL((SELECT 4 | DISTINCT Employee.Salary 5 | FROM Employee 6 | ORDER BY 7 | Salary DESC 8 | LIMIT 1, 1), NULL) 9 | AS SecondHighestSalary -------------------------------------------------------------------------------- /question0177_nth_highest_salary/Solution.sql: -------------------------------------------------------------------------------- 1 | CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT 2 | BEGIN 3 | DECLARE M INT; 4 | SET M = N - 1; 5 | RETURN ( 6 | # Write your MySQL query statement below. 7 | SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1 8 | ); 9 | END 10 | -------------------------------------------------------------------------------- /question0190_reverse_bits/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0190_reverse_bits; 2 | 3 | public class Solution2 { 4 | 5 | public int reverseBits(int n) { 6 | int result = 0; 7 | for (int i = 0; i < 32; i++) { 8 | result += n & 1; 9 | n >>= 1; 10 | if (i != 31) { 11 | result <<= 1; 12 | } 13 | } 14 | return result; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /question0191_number_of_1_bits/Solution1.java: -------------------------------------------------------------------------------- 1 | package question0191_number_of_1_bits; 2 | 3 | public class Solution1 { 4 | 5 | public int hammingWeight(int n) { 6 | int count = 0; 7 | for (int i = 0; i < 32; i++) { 8 | if (1 == ((n >> i) & 1)) { 9 | count++; 10 | } 11 | } 12 | return count; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /question0191_number_of_1_bits/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0191_number_of_1_bits; 2 | 3 | public class Solution2 { 4 | 5 | public int hammingWeight(int n) { 6 | int result = 0; 7 | while (n != 0) { 8 | n &= n - 1; // n & (n - 1) 的运算结果恰为把 n 的二进制位中的最低位的 1 变为 0 之后的结果 9 | result++; 10 | } 11 | return result; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question0191_number_of_1_bits/Solution3.java: -------------------------------------------------------------------------------- 1 | package question0191_number_of_1_bits; 2 | 3 | public class Solution3 { 4 | 5 | public int hammingWeight(int n) { 6 | return Integer.bitCount(n); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /question0199_binary_tree_right_side_view/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0199_binary_tree_right_side_view; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0201_bitwise_and_of_numbers_range/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0201_bitwise_and_of_numbers_range; 2 | 3 | /** 4 | * 时间复杂度是 O(logn)。空间复杂度是 O(1)。 5 | * 6 | * 执行用时:6ms,击败99.82%。消耗内存:39MB,击败76.01%。 7 | */ 8 | public class Solution2 { 9 | public int rangeBitwiseAnd(int m, int n) { 10 | while (m < n) { 11 | // 抹去最右边的 1 12 | n = n & (n - 1); 13 | } 14 | return n; 15 | } 16 | } -------------------------------------------------------------------------------- /question0203_remove_linked_list_elements/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0203_remove_linked_list_elements; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0206_reverse_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0206_reverse_linked_list; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0206_reverse_linked_list/反转链表.md: -------------------------------------------------------------------------------- 1 | [反转链表](https://leetcode-cn.com/problems/reverse-linked-list/) 2 | 3 | 反转一个单链表。 4 | 5 | 示例: 6 | 7 | ``` 8 | 输入: 1->2->3->4->5->NULL 9 | 输出: 5->4->3->2->1->NULL 10 | ``` 11 | 12 | 进阶: 13 | 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 14 | 15 | [反转链表-2种解法](https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-2chong-jie-fa-by-617076674/) -------------------------------------------------------------------------------- /question0222_count_complete_tree_nodes/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0222_count_complete_tree_nodes; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0226_invert_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0226_invert_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0230/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0230; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question0231_power_of_two/Solution1.java: -------------------------------------------------------------------------------- 1 | package question0231_power_of_two; 2 | 3 | public class Solution1 { 4 | 5 | public boolean isPowerOfTwo(int n) { 6 | while (n > 1) { 7 | if (n % 2 == 1) { 8 | return false; 9 | } 10 | n = n / 2; 11 | } 12 | return n == 1; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0231_power_of_two/Solution3.java: -------------------------------------------------------------------------------- 1 | package question0231_power_of_two; 2 | 3 | public class Solution3 { 4 | 5 | public boolean isPowerOfTwo(int n) { 6 | return n > 0 && Integer.bitCount(n) == 1; 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /question0231_power_of_two/Solution4.java: -------------------------------------------------------------------------------- 1 | package question0231_power_of_two; 2 | 3 | public class Solution4 { 4 | 5 | public boolean isPowerOfTwo(int n) { 6 | return n > 0 && ((n & (n - 1)) == 0); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /question0234_palindrome_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0234_palindrome_linked_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0235_lowest_common_ancestor_of_a_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0235_lowest_common_ancestor_of_a_binary_search_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0236_lowest_common_ancestor_of_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0236_lowest_common_ancestor_of_a_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0250_count_univalue_subtrees/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0250_count_univalue_subtrees; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0257_binary_tree_paths/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0257_binary_tree_paths; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0258/Solution.java: -------------------------------------------------------------------------------- 1 | package question0258; 2 | 3 | public class Solution { 4 | public int addDigits(int num) { 5 | while (num >= 10) { 6 | String numStr = String.valueOf(num); 7 | num = 0; 8 | for (int i = 0; i < numStr.length(); i++) { 9 | num += numStr.charAt(i) - '0'; 10 | } 11 | } 12 | return num; 13 | } 14 | } -------------------------------------------------------------------------------- /question0270_closest_binary_search_tree_value/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0270_closest_binary_search_tree_value; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0272_closest_binary_search_tree_value_ii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0272_closest_binary_search_tree_value_ii; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0277_find_the_celebrity/Relation.java: -------------------------------------------------------------------------------- 1 | package question0277_find_the_celebrity; 2 | 3 | public class Relation { 4 | boolean knows(int a, int b) { 5 | return true; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /question0278_first_bad_version/VersionControl.java: -------------------------------------------------------------------------------- 1 | package question0278_first_bad_version; 2 | 3 | public class VersionControl { 4 | 5 | boolean isBadVersion(int version) { 6 | return true; 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /question0283_move_zeroes/Solution.java: -------------------------------------------------------------------------------- 1 | package question0283_move_zeroes; 2 | 3 | /** 4 | * 双指针。 5 | * 6 | * 时间复杂度是 O(n),其中 n 为 nums 数组的长度。空间复杂度是 O(1)。 7 | */ 8 | public class Solution { 9 | 10 | public void moveZeroes(int[] nums) { 11 | int index = 0; 12 | for (int i = 0; i < nums.length; i++) { 13 | if (nums[i] != 0) { 14 | nums[index++] = nums[i]; 15 | } 16 | } 17 | for (int i = index; i < nums.length; i++) { 18 | nums[i] = 0; 19 | } 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /question0285_inorder_successor_in_bst/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0285_inorder_successor_in_bst; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0292_nim_game/Solution.java: -------------------------------------------------------------------------------- 1 | package question0292_nim_game; 2 | 3 | /** 4 | * 找规律。 5 | * 6 | * 时间复杂度和空间复杂度均为O(1)。 7 | * 8 | * 执行用时:0ms,击败100.00%。消耗内存:34MB,击败11.50%。 9 | */ 10 | public class Solution { 11 | public boolean canWinNim(int n) { 12 | return n % 4 != 0; 13 | } 14 | } -------------------------------------------------------------------------------- /question0297_serialize_and_deserialize_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0297_serialize_and_deserialize_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0298/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0298; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0300_longest_increasing_subsequence/最长上升子序列.md: -------------------------------------------------------------------------------- 1 | [最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/) 2 | 3 | 给定一个无序的整数数组,找到其中最长上升子序列的长度。 4 | 5 | 示例: 6 | 7 | ``` 8 | 输入: [10,9,2,5,3,7,101,18] 9 | 输出: 4 10 | 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 11 | ``` 12 | 13 | 说明: 14 | 15 | 1.可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 16 | 2.你算法的时间复杂度应该为O(n2)。 17 | 18 | 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? 19 | 20 | [最长上升子序列-2种解法](https://leetcode-cn.com/problems/longest-increasing-subsequence/solution/zui-chang-shang-sheng-zi-xu-lie-2chong-jie-fa-by-6/) -------------------------------------------------------------------------------- /question0314/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0314; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0322_coin_change/零钱兑换.md: -------------------------------------------------------------------------------- 1 | [零钱兑换](https://leetcode-cn.com/problems/coin-change/) 2 | 3 | 给定不同面额的硬币`coins`和一个总金额`amount`。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回`-1`。 4 | 5 | 示例 1: 6 | 7 | ``` 8 | 输入: coins = [1, 2, 5], amount = 11 9 | 输出: 3 10 | 解释: 11 = 5 + 5 + 1 11 | ``` 12 | 13 | 示例 2: 14 | 15 | ``` 16 | 输入: coins = [2], amount = 3 17 | 输出: -1 18 | ``` 19 | 20 | 说明: 21 | 你可以认为每种硬币的数量是无限的。 22 | 23 | [零钱兑换](https://leetcode-cn.com/problems/coin-change/solution/ling-qian-dui-huan-by-617076674/) -------------------------------------------------------------------------------- /question0326_power_of_three/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0326_power_of_three; 2 | 3 | /** 4 | * 递归解决。 5 | * 6 | * 时间复杂度是O(log(Ingeger.MAX_VALUE))。空间复杂度是O(1)。 7 | * 8 | * 执行用时:84ms,击败86.16%。消耗内存:40.5MB,击败13.75%。 9 | */ 10 | public class Solution2 { 11 | public boolean isPowerOfThree(int n) { 12 | if (n == 1) { 13 | return true; 14 | } else if (n <= 0 || n % 3 != 0) { //考虑输入n是负数或0的情况 15 | return false; 16 | } 17 | return isPowerOfThree(n / 3); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /question0326_power_of_three/Solution3.java: -------------------------------------------------------------------------------- 1 | package question0326_power_of_three; 2 | 3 | /** 4 | * 纯数学知识:1162261467是int型范围内的3的幂的最大值。 5 | * 6 | * 时间复杂度和空间复杂度均是O(1)。 7 | * 8 | * 执行用时:85ms,击败69.11%。消耗内存:39.8MB,击败15.06%。 9 | */ 10 | public class Solution3 { 11 | public boolean isPowerOfThree(int n) { 12 | return n > 0 && 1162261467 % n == 0; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /question0328_odd_even_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0328_odd_even_linked_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode() { 10 | } 11 | 12 | ListNode(int val) { 13 | this.val = val; 14 | } 15 | 16 | ListNode(int val, ListNode next) { 17 | this.val = val; 18 | this.next = next; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question0333/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0333; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0337_house_robber_iii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0337_house_robber_iii; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0342_power_of_four/Solution.java: -------------------------------------------------------------------------------- 1 | package question0342_power_of_four; 2 | 3 | public class Solution { 4 | 5 | public boolean isPowerOfFour(int num) { 6 | if (0 > num || (num & (num - 1)) != 0) { 7 | return false; 8 | } 9 | return (num & 0x55555555) != 0; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /question0344_reverse_string/Solution.java: -------------------------------------------------------------------------------- 1 | package question0344_reverse_string; 2 | 3 | /** 4 | * 时间复杂度是 O(n),其中 n 为字符串 s 的长度。空间复杂度是 O(1)。 5 | * 6 | * 执行用时:1ms,击败99.98%。消耗内存:45.4MB,击败66.46%。 7 | */ 8 | public class Solution { 9 | public void reverseString(char[] s) { 10 | int left = 0, right = s.length - 1; 11 | while (left < right) { 12 | char tmp = s[left]; 13 | s[left] = s[right]; 14 | s[right] = tmp; 15 | left++; 16 | right--; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /question0366/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0366; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0367/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0367; 2 | 3 | /** 4 | * @author qianyihui 5 | * @date 2019-07-12 6 | * 7 | * 观察规律:1,4,9,16,25,…… 8 | * 9 | * 这些完全平方数的间隔分别为3,5,7,9,…… 10 | * 11 | * 时间复杂度是(num ^ 0.5)。空间复杂度是O(1)。 12 | * 13 | * 执行用时:2ms,击败42.73%。消耗内存:33.3MB,击败11.05%。 14 | */ 15 | public class Solution2 { 16 | public boolean isPerfectSquare(int num) { 17 | int i = 1; 18 | while (num > 0) { 19 | num -= i; 20 | i += 2; 21 | } 22 | return num == 0; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /question0369_plus_one_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0369_plus_one_linked_list; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0371_sum_of_two_integers/Solution.java: -------------------------------------------------------------------------------- 1 | package question0371_sum_of_two_integers; 2 | 3 | /** 4 | * 利用位运算。 5 | */ 6 | public class Solution { 7 | 8 | public int getSum(int a, int b) { 9 | while (b != 0) { 10 | int sum = a ^ b, carry = (a & b) << 1; 11 | a = sum; 12 | b = carry; 13 | } 14 | return a; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question0374_guess_number_higher_or_lower/GuessGame.java: -------------------------------------------------------------------------------- 1 | package question0374_guess_number_higher_or_lower; 2 | 3 | public class GuessGame { 4 | private int pick; 5 | public int guess(int num) { 6 | if (num > pick) { 7 | return 1; 8 | } else if (num < pick) { 9 | return -1; 10 | } 11 | return 0; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /question0382_linked_list_random_node/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0382_linked_list_random_node; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /question0387_first_unique_character_in_a_string/Solution.java: -------------------------------------------------------------------------------- 1 | package question0387_first_unique_character_in_a_string; 2 | 3 | public class Solution { 4 | 5 | public int firstUniqChar(String s) { 6 | int[] count = new int[26]; 7 | for (int i = 0; i < s.length(); i++) { 8 | count[s.charAt(i) - 'a']++; 9 | } 10 | for (int i = 0; i < s.length(); i++) { 11 | if (count[s.charAt(i) - 'a'] == 1) { 12 | return i; 13 | } 14 | } 15 | return -1; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question0404_sum_of_left_leaves/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0404_sum_of_left_leaves; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0421_maximum_xor_of_two_numbers_in_an_array/数组中两个数的最大异或值.md: -------------------------------------------------------------------------------- 1 | [数组中两个数的最大异或值](https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/) 2 | 3 | 给定一个非空数组,数组中元素为a0, a1, a2, … , an-1,其中0 ≤ ai < 231。 4 | 5 | 找到ai和aj最大的异或(XOR)运算结果,其中0 ≤ i,  j < n。 6 | 7 | 你能在O(n)的时间解决这个问题吗? 8 | 9 | 示例: 10 | 11 | ``` 12 | 输入: [3, 10, 5, 25, 2, 8] 13 | 14 | 输出: 28 15 | 16 | 解释: 最大的结果是 5 ^ 25 = 28. 17 | ``` 18 | 19 | [数组中两个数的最大异或值-2种解法](https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/solution/shu-zu-zhong-liang-ge-shu-de-zui-da-yi-huo-zhi-2ch/) -------------------------------------------------------------------------------- /question0426_convert_binary_search_tree_to_sorted_doubly_linked_list/Node.java: -------------------------------------------------------------------------------- 1 | package question0426_convert_binary_search_tree_to_sorted_doubly_linked_list; 2 | 3 | public class Node { 4 | public int val; 5 | 6 | public Node left; 7 | 8 | public Node right; 9 | 10 | public Node() {} 11 | 12 | public Node(int _val) { 13 | val = _val; 14 | } 15 | 16 | public Node(int _val,Node _left,Node _right) { 17 | val = _val; 18 | left = _left; 19 | right = _right; 20 | } 21 | } -------------------------------------------------------------------------------- /question0428_serialize_and_deserialize_n_ary_tree/Node.java: -------------------------------------------------------------------------------- 1 | package question0428_serialize_and_deserialize_n_ary_tree; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | 7 | public int val; 8 | 9 | public List children; 10 | 11 | public Node() {} 12 | 13 | public Node(int _val) { 14 | val = _val; 15 | } 16 | 17 | public Node(int _val, List _children) { 18 | val = _val; 19 | children = _children; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /question0430_flatten_a_multilevel_doubly_linked_list/Node.java: -------------------------------------------------------------------------------- 1 | package question0430_flatten_a_multilevel_doubly_linked_list; 2 | 3 | public class Node { 4 | public int val; 5 | 6 | public Node prev; 7 | 8 | public Node next; 9 | 10 | public Node child; 11 | } -------------------------------------------------------------------------------- /question0431_encode_n_ary_tree_to_binary_tree/Node.java: -------------------------------------------------------------------------------- 1 | package question0431_encode_n_ary_tree_to_binary_tree; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | public int val; 7 | public List children; 8 | 9 | public Node() {} 10 | 11 | public Node(int _val,List _children) { 12 | val = _val; 13 | children = _children; 14 | } 15 | } -------------------------------------------------------------------------------- /question0431_encode_n_ary_tree_to_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0431_encode_n_ary_tree_to_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0437_path_sum_iii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0437_path_sum_iii; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode() { 9 | } 10 | 11 | TreeNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | TreeNode(int val, TreeNode left, TreeNode right) { 16 | this.val = val; 17 | this.left = left; 18 | this.right = right; 19 | } 20 | } -------------------------------------------------------------------------------- /question0441_arranging_coins/Solution1.java: -------------------------------------------------------------------------------- 1 | package question0441_arranging_coins; 2 | 3 | /** 4 | * 暴力破解法。 5 | * 6 | * 时间复杂度是O(n)。空间复杂度是O(1)。 7 | * 8 | * 执行用时:20ms,击败33.03%。消耗内存:33.6MB,击败75.35%。 9 | */ 10 | public class Solution1 { 11 | public int arrangeCoins(int n) { 12 | int height = 0, i = 1; 13 | while (n - i >= 0) { 14 | height++; 15 | n -= i; 16 | i++; 17 | } 18 | return height; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /question0445_add_two_numbers_ii/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0445_add_two_numbers_ii; 2 | 3 | public class ListNode { 4 | public int val; 5 | 6 | public ListNode next; 7 | 8 | public ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0449_serialize_and_deserialize_bst/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0449_serialize_and_deserialize_bst; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0458_poor_pigs/Solution.java: -------------------------------------------------------------------------------- 1 | package question0458_poor_pigs; 2 | 3 | public class Solution { 4 | 5 | public int poorPigs(int buckets, int minutesToDie, int minutesToTest) { 6 | int states = minutesToTest / minutesToDie + 1; 7 | return (int) Math.ceil(Math.log(buckets) / Math.log(states)); 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /question0459_repeated_substring_pattern/Solution2.java: -------------------------------------------------------------------------------- 1 | package question0459_repeated_substring_pattern; 2 | 3 | /** 4 | * 正则表达式。 5 | * 6 | * 时间复杂度是O(n),其中n为字符串s的长度。空间复杂度是O(1)。 7 | * 8 | * 执行用时:527ms,击败5.03%。消耗内存:40.6MB,击败8.29%。 9 | */ 10 | public class Solution2 { 11 | public boolean repeatedSubstringPattern(String s) { 12 | return s.matches("(\\w+)\\1+"); 13 | } 14 | } -------------------------------------------------------------------------------- /question0461_hamming_distance/Solution.java: -------------------------------------------------------------------------------- 1 | package question0461_hamming_distance; 2 | 3 | public class Solution { 4 | 5 | public int hammingDistance(int x, int y) { 6 | int result = 0; 7 | for (int i = 0; i < 32; i++) { 8 | if (((x >> i) & 1) != ((y >> i) & 1)) { 9 | result++; 10 | } 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0470_implement_rand10_using_rand7/SolBase.java: -------------------------------------------------------------------------------- 1 | package question0470_implement_rand10_using_rand7; 2 | 3 | public class SolBase { 4 | public int rand7() { 5 | return 0; 6 | } 7 | } -------------------------------------------------------------------------------- /question0508/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0508; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0510_inorder_successor_in_bst_ii/Node.java: -------------------------------------------------------------------------------- 1 | package question0510_inorder_successor_in_bst_ii; 2 | 3 | public class Node { 4 | public int val; 5 | 6 | public Node left; 7 | 8 | public Node right; 9 | 10 | public Node parent; 11 | } -------------------------------------------------------------------------------- /question0513/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0513; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0515/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0515; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0521_longest_uncommon_subsequence_i/Solution.java: -------------------------------------------------------------------------------- 1 | package question0521_longest_uncommon_subsequence_i; 2 | 3 | /** 4 | * 时间复杂度是O(min(n1, n2)),其中n1为字符串a的长度,n2为字符串b的长度。空间复杂度是O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:33.8MB,击败86.64%。 7 | */ 8 | public class Solution { 9 | public int findLUSlength(String a, String b) { 10 | if (a.equals(b)) { 11 | return -1; 12 | } 13 | return Math.max(a.length(), b.length()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /question0530_minimum_absolute_difference_in_bst/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0530_minimum_absolute_difference_in_bst; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0535_encode_and_decode_tinyurl/Codec.java: -------------------------------------------------------------------------------- 1 | package question0535_encode_and_decode_tinyurl; 2 | 3 | public class Codec { 4 | 5 | // Encodes a URL to a shortened URL. 6 | public String encode(String longUrl) { 7 | return longUrl; 8 | } 9 | 10 | // Decodes a shortened URL to its original URL. 11 | public String decode(String shortUrl) { 12 | return shortUrl; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0536_construct_binary_tree_from_string/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0536_construct_binary_tree_from_string; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0537_complex_number_multiplication/Solution.java: -------------------------------------------------------------------------------- 1 | package question0537_complex_number_multiplication; 2 | 3 | public class Solution { 4 | 5 | public String complexNumberMultiply(String a, String b) { 6 | String nums1[] = a.split("\\+|i"), nums2[] = b.split("\\+|i"); 7 | int real1 = Integer.parseInt(nums1[0]), img1 = Integer.parseInt(nums1[1]), real2 = 8 | Integer.parseInt(nums2[0]), img2 = Integer.parseInt(nums2[1]); 9 | return (real1 * real2 - img1 * img2) + "+" + (real1 * img2 + img1 * real2) + "i"; 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /question0538_convert_bst_to_greater_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0538_convert_bst_to_greater_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0543_diameter_of_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0543_diameter_of_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0543_diameter_of_binary_tree/二叉树的直径.md: -------------------------------------------------------------------------------- 1 | [二叉树的直径](https://leetcode-cn.com/problems/diameter-of-binary-tree/) 2 | 3 | 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 4 | 5 | 示例: 6 | 给定二叉树 7 | ``` 8 | 9 | 1 10 | / \ 11 | 2 3 12 | / \ 13 | 4 5 14 | ``` 15 | 16 | 返回`3`, 它的长度是路径`[4,2,1,3]`或者`[5,2,1,3]`。 17 | 18 | 注意:两结点之间的路径长度是以它们之间边的数目表示。 19 | 20 | [二叉树的直径](https://leetcode-cn.com/problems/diameter-of-binary-tree/solution/er-cha-shu-de-zhi-jing-by-617076674/) -------------------------------------------------------------------------------- /question0545_boundary_of_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0545_boundary_of_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0549_binary_tree_longest_consecutive_sequence_ii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0549_binary_tree_longest_consecutive_sequence_ii; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0559_maximum_depth_of_n_ary_tree/Node.java: -------------------------------------------------------------------------------- 1 | package question0559_maximum_depth_of_n_ary_tree; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | 7 | public int val; 8 | public List children; 9 | 10 | public Node() {} 11 | 12 | public Node(int _val,List _children) { 13 | val = _val; 14 | children = _children; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question0559_maximum_depth_of_n_ary_tree/Solution.java: -------------------------------------------------------------------------------- 1 | package question0559_maximum_depth_of_n_ary_tree; 2 | 3 | /** 4 | * 时间复杂度是O(n),其中n是树中的节点个数。空间复杂度是O(h),其中h是树的高度。 5 | */ 6 | public class Solution { 7 | 8 | public int maxDepth(Node root) { 9 | if (root == null) { 10 | return 0; 11 | } 12 | int max = 0; 13 | for (Node node : root.children) { 14 | max = Math.max(max, maxDepth(node)); 15 | } 16 | return max + 1; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /question0563_binary_tree_tilt/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0563_binary_tree_tilt; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0572_subtree_of_another_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0572_subtree_of_another_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0575_distribute_candies/Solution.java: -------------------------------------------------------------------------------- 1 | package question0575_distribute_candies; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | /** 7 | * 时间复杂度和空间复杂度均是O(n),其中n为candies数组的长度。 8 | * 9 | * 执行用时:60ms,击败89.46%。消耗内存:45.3MB,击败86.73% 10 | */ 11 | public class Solution { 12 | public int distributeCandies(int[] candies) { 13 | Set set = new HashSet<>(); 14 | for (int candy : candies) { 15 | set.add(candy); 16 | } 17 | return Math.min(candies.length / 2, set.size()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /question0589_n_ary_tree_preorder_traversal/Node.java: -------------------------------------------------------------------------------- 1 | package question0589_n_ary_tree_preorder_traversal; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | public int val; 7 | 8 | public List children; 9 | 10 | public Node() {} 11 | 12 | public Node(int _val, List _children) { 13 | val = _val; 14 | children = _children; 15 | } 16 | } -------------------------------------------------------------------------------- /question0590/Node.java: -------------------------------------------------------------------------------- 1 | package question0590; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | public int val; 7 | public List children; 8 | 9 | public Node() { 10 | } 11 | 12 | public Node(int _val, List _children) { 13 | val = _val; 14 | children = _children; 15 | } 16 | } -------------------------------------------------------------------------------- /question0598/Node.java: -------------------------------------------------------------------------------- 1 | package question0598; 2 | 3 | import java.util.List; 4 | 5 | class Node { 6 | public int val; 7 | public List children; 8 | 9 | public Node() {} 10 | 11 | public Node(int _val,List _children) { 12 | val = _val; 13 | children = _children; 14 | } 15 | }; -------------------------------------------------------------------------------- /question0606/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0606; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0617_merge_two_binary_trees/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0617_merge_two_binary_trees; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0623/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0623; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0637_average_of_levels_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0637_average_of_levels_in_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0652/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0652; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0653/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0653; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0662/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0662; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0663_equal_tree_partition/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0663_equal_tree_partition; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0669/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0669; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0671_second_minimum_node_in_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0671_second_minimum_node_in_a_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0672_bulb_switcher_ii/Solution.java: -------------------------------------------------------------------------------- 1 | package question0672_bulb_switcher_ii; 2 | 3 | public class Solution { 4 | 5 | public int flipLights(int n, int m) { 6 | n = Math.min(n, 3); 7 | if (m == 0) { 8 | return 1; 9 | } 10 | if (m == 1) { 11 | return n == 1 ? 2 : n == 2 ? 3 : 4; 12 | } 13 | if (m == 2) { 14 | return n == 1 ? 2 : n == 2 ? 4 : 7; 15 | } 16 | return n == 1 ? 2 : n == 2 ? 4 : 8; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question0687/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0687; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question0690/Employee.java: -------------------------------------------------------------------------------- 1 | package question0690; 2 | 3 | import java.util.List; 4 | 5 | public class Employee { 6 | // It's the unique id of each node; 7 | // unique id of this employee 8 | public int id; 9 | // the importance value of this employee 10 | public int importance; 11 | // the id of direct subordinates 12 | public List subordinates; 13 | }; -------------------------------------------------------------------------------- /question0700_search_in_a_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0700_search_in_a_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0701_insert_into_a_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0701_insert_into_a_binary_search_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question0708_insert_into_a_cyclic_sorted_list/Node.java: -------------------------------------------------------------------------------- 1 | package question0708_insert_into_a_cyclic_sorted_list; 2 | 3 | public class Node { 4 | public int val; 5 | 6 | public Node next; 7 | 8 | public Node() {} 9 | 10 | public Node(int _val,Node _next) { 11 | val = _val; 12 | next = _next; 13 | } 14 | } -------------------------------------------------------------------------------- /question0725_split_linked_list_in_parts/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0725_split_linked_list_in_parts; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /question0742_closest_leaf_in_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0742_closest_leaf_in_a_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0769_max_chunks_to_make_sorted/Solution.java: -------------------------------------------------------------------------------- 1 | package question0769_max_chunks_to_make_sorted; 2 | 3 | public class Solution { 4 | public int maxChunksToSorted(int[] arr) { 5 | int result = 0, max = 0; 6 | for (int i = 0; i < arr.length; ++i) { 7 | max = Math.max(max, arr[i]); 8 | if (max == i) { 9 | result++; 10 | } 11 | } 12 | return result; 13 | } 14 | } -------------------------------------------------------------------------------- /question0775_global_and_local_inversions/Solution.java: -------------------------------------------------------------------------------- 1 | package question0775_global_and_local_inversions; 2 | 3 | public class Solution { 4 | public boolean isIdealPermutation(int[] A) { 5 | for (int i = 0; i < A.length - 1; i++) { 6 | if (A[i] == i) { 7 | continue; 8 | } 9 | if (i + 1 < A.length && !(A[i] == i + 1 && A[i + 1] == i)) { 10 | return false; 11 | } 12 | i++; 13 | } 14 | return true; 15 | } 16 | } -------------------------------------------------------------------------------- /question0776_split_bst/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0776_split_bst; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question0779_k_th_symbol_in_grammark_th_symbol_in_grammar/Solution.java: -------------------------------------------------------------------------------- 1 | package question0779_k_th_symbol_in_grammark_th_symbol_in_grammar; 2 | 3 | public class Solution { 4 | 5 | public int kthGrammar(int N, int K) { 6 | if (N == 1 && K == 1) { 7 | return 0; 8 | } 9 | int half = (int) Math.pow(2, N - 2); 10 | if (K <= half) { 11 | return kthGrammar(N - 1, K); 12 | } 13 | return 1 - kthGrammar(N - 1, K - half); 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question0783_minimum_distance_between_bst_nodes/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0783_minimum_distance_between_bst_nodes; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0810_chalkboard_xor_game/Solution.java: -------------------------------------------------------------------------------- 1 | package question0810_chalkboard_xor_game; 2 | 3 | public class Solution { 4 | 5 | public boolean xorGame(int[] nums) { 6 | if (nums.length % 2 == 0) { 7 | return true; 8 | } 9 | int xor = 0; 10 | for (int num : nums) { 11 | xor ^= num; 12 | } 13 | return xor == 0; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question0817_linked_list_components/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0817_linked_list_components; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question0829_consecutive_numbers_sum/Solution.java: -------------------------------------------------------------------------------- 1 | package question0829_consecutive_numbers_sum; 2 | 3 | public class Solution { 4 | 5 | public int consecutiveNumbersSum(int N) { 6 | // 2N = k(2x + k + 1) => k <= (2N) ^ 0.5 7 | int result = 0; 8 | for (int k = 1; k * k <= 2 * N; ++k) { 9 | if (2 * N % k == 0) { 10 | int y = 2 * N / k - k - 1; 11 | if (y % 2 == 0 && y >= 0) { 12 | result++; 13 | } 14 | } 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question0843_guess_the_word/Master.java: -------------------------------------------------------------------------------- 1 | package question0843_guess_the_word; 2 | 3 | interface Master { 4 | int guess(String word); 5 | } -------------------------------------------------------------------------------- /question0852_peak_index_in_a_mountain_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question0852_peak_index_in_a_mountain_array; 2 | 3 | /** 4 | * 时间复杂度是O(n),其中n为数组A的长度。空间复杂度是O(1)。 5 | * 6 | * 执行用时:1ms,击败62.93%。消耗内存:37.2MB,击败97.71%。 7 | */ 8 | public class Solution { 9 | public int peakIndexInMountainArray(int[] A) { 10 | for (int i = 0; i < A.length - 1; i++) { 11 | if (A[i] > A[i + 1]) { 12 | return i; 13 | } 14 | } 15 | return -1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /question0863_all_nodes_distance_k_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0863_all_nodes_distance_k_in_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0865/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0865; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0867_transpose_matrix/Solution.java: -------------------------------------------------------------------------------- 1 | package question0867_transpose_matrix; 2 | 3 | public class Solution { 4 | 5 | public int[][] transpose(int[][] matrix) { 6 | int m = matrix.length, n = matrix[0].length; 7 | int[][] result = new int[n][m]; 8 | for (int i = 0; i < n; i++) { 9 | for (int j = 0; j < m; j++) { 10 | result[i][j] = matrix[j][i]; 11 | } 12 | } 13 | return result; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question0872/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0872; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0876_middle_of_the_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question0876_middle_of_the_linked_list; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0877_stone_game/Solution4.java: -------------------------------------------------------------------------------- 1 | package question0877_stone_game; 2 | 3 | /** 4 | * 偶数堆石子,石子总数是奇数,故每个人分到的堆数一定相同但石子总数一定不同,一定会有胜负。 5 | * 6 | * 如果把石子堆数做标记分为偶数堆和奇数堆,偶数堆和奇数堆的石子总数一定是不同的。 7 | * 8 | * 先手的人有能力选择获取偶数堆还是奇数堆,因此先手必胜。 9 | * 10 | * 时间复杂度和空间复杂度均是O(1)。 11 | * 12 | * 执行用时:0ms,击败100.00%。消耗内存:37.1MB,击败8.33%。 13 | */ 14 | public class Solution4 { 15 | public boolean stoneGame(int[] piles) { 16 | return true; 17 | } 18 | } -------------------------------------------------------------------------------- /question0889/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0889; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0894/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0894; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0897_increasing_order_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0897_increasing_order_search_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0900_rle_iterator/RLEIterator.java: -------------------------------------------------------------------------------- 1 | package question0900_rle_iterator; 2 | 3 | public class RLEIterator { 4 | 5 | private int[] A; 6 | 7 | private int i, q; 8 | 9 | public RLEIterator(int[] A) { 10 | this.A = A; 11 | } 12 | 13 | public int next(int n) { 14 | while (i < A.length) { 15 | if (q + n > A[i]) { 16 | n -= A[i] - q; 17 | q = 0; 18 | i += 2; 19 | } else { 20 | q += n; 21 | return A[i + 1]; 22 | } 23 | } 24 | return -1; 25 | } 26 | } -------------------------------------------------------------------------------- /question0908_smallest_range_i/Solution.java: -------------------------------------------------------------------------------- 1 | package question0908_smallest_range_i; 2 | 3 | /** 4 | * 时间复杂度是O(n),其中n为数组A的长度。空间复杂度是O(1)。 5 | * 6 | * 执行用时:3ms,击败89.69%。消耗内存:38.6MB,击败93.66%。 7 | */ 8 | public class Solution { 9 | public int smallestRangeI(int[] A, int K) { 10 | int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE; 11 | for (int num : A) { 12 | min = Math.min(min, num); 13 | max = Math.max(max, num); 14 | } 15 | return Math.max(0, max - min - (K << 1)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /question0910_smallest_range_ii/Solution.java: -------------------------------------------------------------------------------- 1 | package question0910_smallest_range_ii; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int smallestRangeII(int[] A, int K) { 8 | int N = A.length; 9 | Arrays.sort(A); 10 | int result = A[N - 1] - A[0]; 11 | 12 | for (int i = 0; i < A.length - 1; ++i) { 13 | int high = Math.max(A[N - 1] - K, A[i] + K); 14 | int low = Math.min(A[0] + K, A[i + 1] - K); 15 | result = Math.min(result, high - low); 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question0919/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0919; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0938_range_sum_of_bst/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0938_range_sum_of_bst; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0951/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0951; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0958/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0958; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0965/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0965; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0968_binary_tree_cameras/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0968_binary_tree_cameras; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question0971/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0971; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0979/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0979; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0987_vertical_order_traversal_of_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0987_vertical_order_traversal_of_a_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0988/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0988; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0991/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0991; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question0991_broken_calculator/Solution.java: -------------------------------------------------------------------------------- 1 | package question0991_broken_calculator; 2 | 3 | public class Solution { 4 | 5 | public int brokenCalc(int X, int Y) { 6 | int step = 0; 7 | while (Y > X) { 8 | step++; 9 | if (Y % 2 == 1) { 10 | Y++; 11 | } else { 12 | Y /= 2; 13 | } 14 | } 15 | return step + X - Y; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question0993_cousins_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0993_cousins_in_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | TreeNode left; 7 | TreeNode right; 8 | 9 | TreeNode() { 10 | } 11 | 12 | TreeNode(int val) { 13 | this.val = val; 14 | } 15 | 16 | TreeNode(int val, TreeNode left, TreeNode right) { 17 | this.val = val; 18 | this.left = left; 19 | this.right = right; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /question0998/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question0998; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1008/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1008; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1016_binary_string_with_substrings_representing_1_to_n/Solution.java: -------------------------------------------------------------------------------- 1 | package question1016_binary_string_with_substrings_representing_1_to_n; 2 | 3 | public class Solution { 4 | 5 | public boolean queryString(String S, int N) { 6 | for (int i = 1; i <= N; i++) { 7 | if (!S.contains(Integer.toBinaryString(i))) { 8 | return false; 9 | } 10 | } 11 | return true; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question1019_next_greater_node_in_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1019_next_greater_node_in_linked_list; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } -------------------------------------------------------------------------------- /question1022/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1022; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1026/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1026; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1028_recover_a_tree_from_preorder_traversal/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1028_recover_a_tree_from_preorder_traversal; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1037_valid_boomerang/Solution.java: -------------------------------------------------------------------------------- 1 | package question1037_valid_boomerang; 2 | 3 | /** 4 | * 斜率。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:34.2MB,击败100.00%。 7 | */ 8 | public class Solution { 9 | public boolean isBoomerang(int[][] points) { 10 | int dx1 = points[1][0] - points[0][0], dy1 = points[1][1] - points[0][1]; 11 | int dx2 = points[2][0] - points[1][0], dy2 = points[2][1] - points[1][1]; 12 | return dx1 * dy2 != dx2 * dy1; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /question1038_binary_search_tree_to_greater_sum_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1038_binary_search_tree_to_greater_sum_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1051_height_checker/高度检查器.md: -------------------------------------------------------------------------------- 1 | [高度检查器](https://leetcode-cn.com/problems/height-checker/) 2 | 3 | 学校在拍年度纪念照时,一般要求学生按照`非递减`的高度顺序排列。 4 | 5 | 请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。 6 | 7 | 示例: 8 | 9 | ``` 10 | 输入:heights = [1,1,4,2,1,3] 11 | 输出:3 12 | ``` 13 |   14 | 提示: 15 | 16 | 1.`1 <= heights.length <= 100` 17 | 2.`1 <= heights[i] <= 100` 18 | 19 | [高度检查器](https://leetcode-cn.com/problems/height-checker/solution/gao-du-jian-cha-qi-by-617076674/) -------------------------------------------------------------------------------- /question1064_fixed_point/Solution.java: -------------------------------------------------------------------------------- 1 | package question1064_fixed_point; 2 | 3 | /** 4 | * 时间复杂度是O(n)。空间复杂度是O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:40.3MB,击败6.06%。 7 | */ 8 | public class Solution { 9 | public int fixedPoint(int[] A) { 10 | for (int i = 0; i < A.length; i++) { 11 | if (i == A[i]) { 12 | return i; 13 | } 14 | } 15 | return -1; 16 | } 17 | } -------------------------------------------------------------------------------- /question1080_insufficient_nodes_in_root_to_leaf_paths/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1080_insufficient_nodes_in_root_to_leaf_paths; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1095_find_in_mountain_array/MountainArray.java: -------------------------------------------------------------------------------- 1 | package question1095_find_in_mountain_array; 2 | 3 | public interface MountainArray { 4 | int get(int index); 5 | 6 | int length(); 7 | } -------------------------------------------------------------------------------- /question1110_delete_nodes_and_return_forest/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1110_delete_nodes_and_return_forest; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1118_number_of_days_in_a_month/Solution.java: -------------------------------------------------------------------------------- 1 | package question1118_number_of_days_in_a_month; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:32.8MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int numberOfDays(int Y, int M) { 8 | int[][] days = {{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; 9 | int index = 1; 10 | if (Y % 400 == 0 || (Y % 4 == 0 && Y % 100 != 0)) { 11 | index--; 12 | } 13 | return days[index][M - 1]; 14 | } 15 | } -------------------------------------------------------------------------------- /question112/Solution1.java: -------------------------------------------------------------------------------- 1 | package question112; 2 | 3 | public class Solution1 { 4 | public boolean hasPathSum(TreeNode root, int sum) { 5 | if (root == null) { 6 | return false; 7 | } 8 | if (root.val == sum && root.left == null && root.right == null) { 9 | return true; 10 | } 11 | sum -= root.val; 12 | return hasPathSum(root.left, sum) || hasPathSum(root.right, sum); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /question112/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question112; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question1120_maximum_average_subtree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1120_maximum_average_subtree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1123/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1123; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1145_binary_tree_coloring_game/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1145_binary_tree_coloring_game; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1161_maximum_level_sum_of_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1161_maximum_level_sum_of_a_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1171_remove_zero_sum_consecutive_nodes_from_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1171_remove_zero_sum_consecutive_nodes_from_linked_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode(int x) { 10 | val = x; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question1237_find_positive_integer_solution_for_a_given_equation/CustomFunction.java: -------------------------------------------------------------------------------- 1 | package question1237_find_positive_integer_solution_for_a_given_equation; 2 | 3 | public interface CustomFunction { 4 | // Returns f(x, y) for any given positive integers x and y. 5 | // Note that f(x, y) is increasing with respect to both x and y. 6 | // i.e. f(x, y) < f(x + 1, y), f(x, y) < f(x, y + 1) 7 | int f(int x, int y); 8 | } -------------------------------------------------------------------------------- /question1250_check_if_it_is_a_good_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1250_check_if_it_is_a_good_array; 2 | 3 | public class Solution { 4 | 5 | public boolean isGoodArray(int[] nums) { 6 | int temp = nums[0]; 7 | for (int i = 1; i < nums.length; i++) { 8 | temp = gcd(temp, nums[i]); 9 | if (temp == 1) { 10 | return true; 11 | } 12 | } 13 | return temp == 1; 14 | } 15 | 16 | private static int gcd(int a, int b) { 17 | if (b == 0) { 18 | return a; 19 | } 20 | return gcd(b, a % b); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /question1261_find_elements_in_a_contaminated_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1261_find_elements_in_a_contaminated_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1290_convert_binary_number_in_a_linked_list_to_integer/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1290_convert_binary_number_in_a_linked_list_to_integer; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1290_convert_binary_number_in_a_linked_list_to_integer/Solution.java: -------------------------------------------------------------------------------- 1 | package question1290_convert_binary_number_in_a_linked_list_to_integer; 2 | 3 | /** 4 | * 执行用时:0ms,击败100.00%。消耗内存:34.2MB,击败61.46%。 5 | */ 6 | public class Solution { 7 | public int getDecimalValue(ListNode head) { 8 | int num = 0; 9 | ListNode cur = head; 10 | while (null != cur) { 11 | num = (num << 1) + cur.val; 12 | cur = cur.next; 13 | } 14 | return num; 15 | } 16 | } -------------------------------------------------------------------------------- /question1302_deepest_leaves_sum/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1302_deepest_leaves_sum; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1315_sum_of_nodes_with_even_valued_grandparent/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1315_sum_of_nodes_with_even_valued_grandparent; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1323_maximum_69_number/Solution.java: -------------------------------------------------------------------------------- 1 | package question1323_maximum_69_number; 2 | 3 | /** 4 | * 执行用时:1ms,击败96.31%。消耗内存:33.2MB,击败100.00%。 5 | */ 6 | public class Solution { 7 | public int maximum69Number (int num) { 8 | char[] digits = String.valueOf(num).toCharArray(); 9 | for (int i = 0; i < digits.length; i++) { 10 | if (digits[i] == '6') { 11 | digits[i] = '9'; 12 | break; 13 | } 14 | } 15 | return Integer.parseInt(String.valueOf(digits)); 16 | } 17 | } -------------------------------------------------------------------------------- /question1325_delete_leaves_with_a_given_value/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1325_delete_leaves_with_a_given_value; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1339_maximum_product_of_splitted_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1339_maximum_product_of_splitted_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1342_number_of_steps_to_reduce_a_number_to_zero/Solution.java: -------------------------------------------------------------------------------- 1 | package question1342_number_of_steps_to_reduce_a_number_to_zero; 2 | 3 | /** 4 | * 时间复杂度和空间复杂度均是O(log(num))。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:39.6MB,击败100.00%。 7 | */ 8 | public class Solution { 9 | public int numberOfSteps (int num) { 10 | if (num == 0) { 11 | return 0; 12 | } 13 | if ((num & 1) == 0) { 14 | return 1 + numberOfSteps(num >> 1); 15 | } 16 | return 1 + numberOfSteps(num - 1); 17 | } 18 | } -------------------------------------------------------------------------------- /question1359_count_all_valid_pickup_and_delivery_options/Solution.java: -------------------------------------------------------------------------------- 1 | package question1359_count_all_valid_pickup_and_delivery_options; 2 | 3 | /** 4 | * 时间复杂度是 O(n)。空间复杂度是 O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:36.5MB,击败48.00%。 7 | */ 8 | public class Solution { 9 | private int mod = 1000000007; 10 | 11 | public int countOrders(int n) { 12 | if (n == 1) { 13 | return 1; 14 | } 15 | return (int) (1L * n * (n * 2 - 1) * countOrders(n - 1) % mod); 16 | } 17 | } -------------------------------------------------------------------------------- /question1367_linked_list_in_binary_tree/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1367_linked_list_in_binary_tree; 2 | 3 | public class ListNode { 4 | int val; 5 | 6 | ListNode next; 7 | 8 | ListNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question1367_linked_list_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1367_linked_list_in_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1372_longest_zigzag_path_in_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1372_longest_zigzag_path_in_a_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1373_maximum_sum_bst_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1373_maximum_sum_bst_in_binary_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1379_find_a_corresponding_node_of_a_binary_tree_in_a_clone_of_that_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1379_find_a_corresponding_node_of_a_binary_tree_in_a_clone_of_that_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode(int x) { 12 | val = x; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1382_balance_a_binary_search_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1382_balance_a_binary_search_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode(int x) { 11 | val = x; 12 | } 13 | } -------------------------------------------------------------------------------- /question1410_html_entity_parser/Solution.java: -------------------------------------------------------------------------------- 1 | package question1410_html_entity_parser; 2 | 3 | public class Solution { 4 | public String entityParser(String text) { 5 | return text.replaceAll(""", "\"").replaceAll("'", "'") 6 | .replaceAll("&", "&").replaceAll(">", ">") 7 | .replaceAll("<", "<").replaceAll("⁄", "/"); 8 | } 9 | } -------------------------------------------------------------------------------- /question1411_number_of_ways_to_paint_n_x_3_grid/Solution.java: -------------------------------------------------------------------------------- 1 | package question1411_number_of_ways_to_paint_n_x_3_grid; 2 | 3 | public class Solution { 4 | public int numOfWays(int n) { 5 | long type3 = 6, type2 = 6; 6 | for (int i = 1; i < n; i++) { 7 | long tmp3 = (2 * type3 + 2 * type2) % 1000000007, tmp2 = (2 * type3 + 3 * type2) % 1000000007; 8 | type3 = tmp3; 9 | type2 = tmp2; 10 | } 11 | return (int) ((type3 + type2) % 1000000007); 12 | } 13 | } -------------------------------------------------------------------------------- /question1430_check_if_a_string_is_a_valid_sequence_from_root_to_leaves_path_in_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1430_check_if_a_string_is_a_valid_sequence_from_root_to_leaves_path_in_a_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1448_count_good_nodes_in_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1448_count_good_nodes_in_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1457_pseudo_palindromic_paths_in_a_binary_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1457_pseudo_palindromic_paths_in_a_binary_tree; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1461_check_if_a_string_contains_all_binary_codes_of_size_k/Solution.java: -------------------------------------------------------------------------------- 1 | package question1461_check_if_a_string_contains_all_binary_codes_of_size_k; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class Solution { 7 | 8 | public boolean hasAllCodes(String s, int k) { 9 | Set set = new HashSet<>(); 10 | for (int i = 0; i + k - 1 < s.length(); i++) { 11 | // [i, i + k - 1] 12 | set.add(s.substring(i, i + k)); 13 | } 14 | return set.size() == Math.pow(2, k); 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question1469_find_all_the_lonely_nodes/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1469_find_all_the_lonely_nodes; 2 | 3 | public class TreeNode { 4 | int val; 5 | 6 | TreeNode left; 7 | 8 | TreeNode right; 9 | 10 | TreeNode() { 11 | } 12 | 13 | TreeNode(int val) { 14 | this.val = val; 15 | } 16 | 17 | TreeNode(int val, TreeNode left, TreeNode right) { 18 | this.val = val; 19 | this.left = left; 20 | this.right = right; 21 | } 22 | } -------------------------------------------------------------------------------- /question147/ListNode.java: -------------------------------------------------------------------------------- 1 | package question147; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | next = null; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /question1474/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1474; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode() { 8 | } 9 | 10 | ListNode(int val) { 11 | this.val = val; 12 | } 13 | 14 | ListNode(int val, ListNode next) { 15 | this.val = val; 16 | this.next = next; 17 | } 18 | } -------------------------------------------------------------------------------- /question1484_clone_binary_tree_with_random_pointer/Node.java: -------------------------------------------------------------------------------- 1 | package question1484_clone_binary_tree_with_random_pointer; 2 | 3 | public class Node { 4 | int val; 5 | Node left; 6 | Node right; 7 | Node random; 8 | 9 | Node() { 10 | } 11 | 12 | Node(int val) { 13 | this.val = val; 14 | } 15 | 16 | Node(int val, Node left, Node right, Node random) { 17 | this.val = val; 18 | this.left = left; 19 | this.right = right; 20 | this.random = random; 21 | } 22 | } -------------------------------------------------------------------------------- /question1484_clone_binary_tree_with_random_pointer/NodeCopy.java: -------------------------------------------------------------------------------- 1 | package question1484_clone_binary_tree_with_random_pointer; 2 | 3 | public class NodeCopy { 4 | int val; 5 | NodeCopy left; 6 | NodeCopy right; 7 | NodeCopy random; 8 | 9 | NodeCopy() { 10 | } 11 | 12 | NodeCopy(int val) { 13 | this.val = val; 14 | } 15 | 16 | NodeCopy(int val, NodeCopy left, NodeCopy right, NodeCopy random) { 17 | this.val = val; 18 | this.left = left; 19 | this.right = right; 20 | this.random = random; 21 | } 22 | } -------------------------------------------------------------------------------- /question1486_xor_operation_in_an_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1486_xor_operation_in_an_array; 2 | 3 | public class Solution { 4 | 5 | public int xorOperation(int n, int start) { 6 | int result = start; 7 | for (int i = 1; i < n; i++) { 8 | result ^= start + 2 * i; 9 | } 10 | return result; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question1490_clone_n_ary_tree/Solution.java: -------------------------------------------------------------------------------- 1 | package question1490_clone_n_ary_tree; 2 | 3 | /** 4 | * 执行用时:1ms,击败100.00%。消耗内存:40.2MB,击败80.67%。 5 | */ 6 | public class Solution { 7 | 8 | public Node cloneTree(Node root) { 9 | if (null == root) { 10 | return null; 11 | } 12 | Node copyNode = new Node(root.val); 13 | for (Node child : root.children) { 14 | copyNode.children.add(cloneTree(child)); 15 | } 16 | return copyNode; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1491_average_salary_excluding_the_minimum_and_maximum_salary/Solution.java: -------------------------------------------------------------------------------- 1 | package question1491_average_salary_excluding_the_minimum_and_maximum_salary; 2 | 3 | public class Solution { 4 | 5 | public double average(int[] salary) { 6 | int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE, sum = 0; 7 | for (int num : salary) { 8 | max = Math.max(num, max); 9 | min = Math.min(num, min); 10 | sum += num; 11 | } 12 | return (sum - max - min) * 1.0 / (salary.length - 2); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question1503_last_moment_before_all_ants_fall_out_of_a_plank/Solution.java: -------------------------------------------------------------------------------- 1 | package question1503_last_moment_before_all_ants_fall_out_of_a_plank; 2 | 3 | public class Solution { 4 | 5 | public int getLastMoment(int n, int[] left, int[] right) { 6 | int result = 0; 7 | for (int ant : left) { 8 | result = Math.max(result, ant); 9 | } 10 | for (int ant : right) { 11 | result = Math.max(result, n - ant); 12 | } 13 | return result; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1523_count_odd_numbers_in_an_interval_range/Solution.java: -------------------------------------------------------------------------------- 1 | package question1523_count_odd_numbers_in_an_interval_range; 2 | 3 | /** 4 | * 时间复杂度和空间复杂度均是 O(1)。 5 | * 6 | * 执行用时:0ms,击败100.00%。消耗内存:36.1MB,击败94.92%。 7 | */ 8 | public class Solution { 9 | public int countOdds(int low, int high) { 10 | boolean lowIsOdd = (low & 1) == 1, highIsOdd = (high & 1) == 1; 11 | int result = ((high - low + 1) >> 1); 12 | if (lowIsOdd && highIsOdd) { 13 | result++; 14 | } 15 | return result; 16 | } 17 | } -------------------------------------------------------------------------------- /question1524_number_of_sub_arrays_with_odd_sum/Solution.java: -------------------------------------------------------------------------------- 1 | package question1524_number_of_sub_arrays_with_odd_sum; 2 | 3 | public class Solution { 4 | 5 | public int numOfSubarrays(int[] arr) { 6 | int odd = 0, even = 1, result = 0, sum = 0; 7 | for (int num : arr) { 8 | sum += num; 9 | if ((sum & 1) == 0) { 10 | result += odd; 11 | even++; 12 | } else { 13 | result += even; 14 | odd++; 15 | } 16 | result %= 1000000007; 17 | } 18 | return result; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question1528_shuffle_string/Solution.java: -------------------------------------------------------------------------------- 1 | package question1528_shuffle_string; 2 | 3 | /** 4 | * 时间复杂度和空间复杂度均是 O(n),其中 n 为字符串 s 的长度。 5 | * 6 | * 执行用时:1ms,击败100.00%。消耗内存:39.7MB,击败88.30%。 7 | */ 8 | public class Solution { 9 | public String restoreString(String s, int[] indices) { 10 | char[] chars = new char[s.length()]; 11 | for (int i = 0; i < indices.length; i++) { 12 | chars[indices[i]] = s.charAt(i); 13 | } 14 | return String.valueOf(chars); 15 | } 16 | } -------------------------------------------------------------------------------- /question1530_number_of_good_leaf_nodes_pairs/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1530_number_of_good_leaf_nodes_pairs; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1550_three_consecutive_odds/Solution.java: -------------------------------------------------------------------------------- 1 | package question1550_three_consecutive_odds; 2 | 3 | public class Solution { 4 | 5 | public boolean threeConsecutiveOdds(int[] arr) { 6 | for (int i = 0; i < arr.length - 2; i++) { 7 | if ((arr[i] & 1) == 1 && (arr[i + 1] & 1) == 1 && (arr[i + 2] & 1) == 1) { 8 | return true; 9 | } 10 | } 11 | return false; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question1551_minimum_operations_to_make_array_equal/Solution.java: -------------------------------------------------------------------------------- 1 | package question1551_minimum_operations_to_make_array_equal; 2 | 3 | public class Solution { 4 | 5 | public int minOperations(int n) { 6 | int half = n / 2; 7 | return n * half - (2 * (half - 1) + 2) * half / 2; 8 | } 9 | 10 | public static void main(String[] args) { 11 | Solution solution = new Solution(); 12 | System.out.println(solution.minOperations(3)); 13 | System.out.println(solution.minOperations(6)); 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1556_thousand_separator/Solution.java: -------------------------------------------------------------------------------- 1 | package question1556_thousand_separator; 2 | 3 | public class Solution { 4 | 5 | public String thousandSeparator(int n) { 6 | return thousandSeparator(String.valueOf(n)); 7 | } 8 | 9 | public String thousandSeparator(String s) { 10 | if (s.length() < 4) { 11 | return s; 12 | } 13 | return thousandSeparator(s.substring(0, s.length() - 3)) + "." + thousandSeparator(s.substring(s.length() - 3)); 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1561_maximum_number_of_coins_you_can_get/Solution.java: -------------------------------------------------------------------------------- 1 | package question1561_maximum_number_of_coins_you_can_get; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int maxCoins(int[] piles) { 8 | Arrays.sort(piles); 9 | int index = piles.length - 2, result = 0; 10 | for (int i = 0; i < piles.length / 3; i++) { 11 | result += piles[index]; 12 | index -= 2; 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question1586_binary_search_tree_iterator_ii/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1586_binary_search_tree_iterator_ii; 2 | 3 | public class TreeNode { 4 | 5 | int val; 6 | 7 | TreeNode left; 8 | 9 | TreeNode right; 10 | 11 | TreeNode() { 12 | } 13 | 14 | TreeNode(int val) { 15 | this.val = val; 16 | } 17 | 18 | TreeNode(int val, TreeNode left, TreeNode right) { 19 | this.val = val; 20 | this.left = left; 21 | this.right = right; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question1598_crawler_log_folder/Solution.java: -------------------------------------------------------------------------------- 1 | package question1598_crawler_log_folder; 2 | 3 | public class Solution { 4 | 5 | public int minOperations(String[] logs) { 6 | int distance = 0; 7 | for (String log : logs) { 8 | if ("../".equals(log)) { 9 | distance = Math.max(distance - 1, 0); 10 | } else if (!"./".equals(log)) { 11 | distance++; 12 | } 13 | } 14 | return distance; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question1609_even_odd_tree/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1609_even_odd_tree; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode() { 9 | } 10 | 11 | TreeNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | TreeNode(int val, TreeNode left, TreeNode right) { 16 | this.val = val; 17 | this.left = left; 18 | this.right = right; 19 | } 20 | } -------------------------------------------------------------------------------- /question1614/Solution.java: -------------------------------------------------------------------------------- 1 | package question1614; 2 | 3 | public class Solution { 4 | 5 | public int maxDepth(String s) { 6 | int result = 0; 7 | int left = 0; 8 | for (int i = 0; i < s.length(); i++) { 9 | if (s.charAt(i) == '(') { 10 | left++; 11 | } else if (s.charAt(i) == ')') { 12 | left--; 13 | } 14 | result = Math.max(result, left); 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1668_maximum_repeating_substring/Solution.java: -------------------------------------------------------------------------------- 1 | package question1668_maximum_repeating_substring; 2 | 3 | public class Solution { 4 | 5 | public int maxRepeating(String sequence, String word) { 6 | int result = 0; 7 | String tmp = word; 8 | while (tmp.length() <= sequence.length()) { 9 | if (!sequence.contains(tmp)) { 10 | break; 11 | } 12 | result++; 13 | tmp += word; 14 | } 15 | return result; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question1669_merge_in_between_linked_lists/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1669_merge_in_between_linked_lists; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode() { 10 | } 11 | 12 | ListNode(int val) { 13 | this.val = val; 14 | } 15 | 16 | ListNode(int val, ListNode next) { 17 | this.val = val; 18 | this.next = next; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question1680_concatenation_of_consecutive_binary_numbers/Solution2.java: -------------------------------------------------------------------------------- 1 | package question1680_concatenation_of_consecutive_binary_numbers; 2 | 3 | public class Solution2 { 4 | 5 | private static final int MOD = 1000000007; 6 | 7 | public int concatenatedBinary(int n) { 8 | long result = 0, shift = 0; 9 | for (int i = 1; i <= n; i++) { 10 | if ((i & (i - 1)) == 0) { 11 | shift++; 12 | } 13 | result = ((result << shift) + i) % MOD; 14 | } 15 | return (int) result; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /question1688/Solution.java: -------------------------------------------------------------------------------- 1 | package question1688; 2 | 3 | public class Solution { 4 | 5 | public int numberOfMatches(int n) { 6 | int result = 0; 7 | while (n > 1) { 8 | result += n / 2; 9 | n -= n / 2; 10 | } 11 | return result; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question1701_average_waiting_time/Solution.java: -------------------------------------------------------------------------------- 1 | package question1701_average_waiting_time; 2 | 3 | public class Solution { 4 | 5 | public double averageWaitingTime(int[][] customers) { 6 | int now = 0; 7 | long waitTime = 0; 8 | for (int[] customer : customers) { 9 | if (now > customer[0]) { 10 | waitTime += now - customer[0]; 11 | } 12 | waitTime += customer[1]; 13 | now = Math.max(now, customer[0]) + customer[1]; 14 | } 15 | return 1.0 * waitTime / customers.length; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question1708/Solution.java: -------------------------------------------------------------------------------- 1 | package question1708; 2 | 3 | public class Solution { 4 | 5 | public int[] largestSubarray(int[] nums, int k) { 6 | int maxIndex = -1; 7 | for (int i = 0; i < nums.length - k + 1; i++) { 8 | if (maxIndex == -1 || nums[i] > nums[maxIndex]) { 9 | maxIndex = i; 10 | } 11 | } 12 | int[] result = new int[k]; 13 | for (int i = maxIndex; i < maxIndex + k; i++) { 14 | result[i - maxIndex] = nums[i]; 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1716_calculate_money_in_leetcode_bank/Solution.java: -------------------------------------------------------------------------------- 1 | package question1716_calculate_money_in_leetcode_bank; 2 | 3 | public class Solution { 4 | 5 | public int totalMoney(int n) { 6 | int result = 0; 7 | int[] days = new int[n]; 8 | for (int i = 0; i < n; i++) { 9 | if (i % 7 == 0) { 10 | days[i] = (i == 0 ? 0 : days[i - 7]) + 1; 11 | } else { 12 | days[i] = days[i - 1] + 1; 13 | } 14 | result += days[i]; 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question172/Solution.java: -------------------------------------------------------------------------------- 1 | package question172; 2 | 3 | public class Solution { 4 | public int trailingZeroes(int n) { 5 | int result = 0; 6 | long divider = 5; 7 | while (n / divider > 0) { 8 | result += n / divider; 9 | divider *= 5; 10 | } 11 | return result; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /question1720_decode_xored_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1720_decode_xored_array; 2 | 3 | public class Solution { 4 | public int[] decode(int[] encoded, int first) { 5 | int[] result = new int[encoded.length + 1]; 6 | result[0] = first; 7 | for (int i = 1; i < result.length; i++) { 8 | result[i] = encoded[i - 1] ^ result[i - 1]; 9 | } 10 | return result; 11 | } 12 | } -------------------------------------------------------------------------------- /question1721_swapping_nodes_in_a_linked_list/ListNode.java: -------------------------------------------------------------------------------- 1 | package question1721_swapping_nodes_in_a_linked_list; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | 7 | ListNode next; 8 | 9 | ListNode() { 10 | } 11 | 12 | ListNode(int val) { 13 | this.val = val; 14 | } 15 | 16 | ListNode(int val, ListNode next) { 17 | this.val = val; 18 | this.next = next; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question1732_find_the_highest_altitude/Solution.java: -------------------------------------------------------------------------------- 1 | package question1732_find_the_highest_altitude; 2 | 3 | public class Solution { 4 | 5 | public int largestAltitude(int[] gain) { 6 | int height = 0, result = 0; 7 | for (int gap : gain) { 8 | height += gap; 9 | result = Math.max(height, result); 10 | } 11 | return result; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question1748_sum_of_unique_elements/Solution.java: -------------------------------------------------------------------------------- 1 | package question1748_sum_of_unique_elements; 2 | 3 | public class Solution { 4 | 5 | public int sumOfUnique(int[] nums) { 6 | int[] map = new int[101]; 7 | for (int num : nums) { 8 | map[num]++; 9 | } 10 | int result = 0; 11 | for (int i = 0; i < map.length; i++) { 12 | if (map[i] == 1) { 13 | result += i; 14 | } 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1749_maximum_absolute_sum_of_any_subarray/Solution.java: -------------------------------------------------------------------------------- 1 | package question1749_maximum_absolute_sum_of_any_subarray; 2 | 3 | public class Solution { 4 | 5 | public int maxAbsoluteSum(int[] nums) { 6 | int result = 0, max = 0, min = 0; 7 | for (int num : nums) { 8 | max = Math.max(max + num, num); 9 | min = Math.min(min + num, num); 10 | result = Math.max(result, Math.max(Math.abs(max), Math.abs(min))); 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question178/Solution1.sql: -------------------------------------------------------------------------------- 1 | SELECT Score, (SELECT count(DISTINCT Score) FROM Scores WHERE Score >= s.Score) AS Rank FROM Scores AS s ORDER BY Score DESC -------------------------------------------------------------------------------- /question178/Solution2.sql: -------------------------------------------------------------------------------- 1 | SELECT s.Score, COUNT(DISTINCT t.Score) AS Rank FROM Scores AS s JOIN Scores AS t ON s.Score <= t.Score GROUP BY s.Id ORDER BY s.Score DESC -------------------------------------------------------------------------------- /question178/Solution3.sql: -------------------------------------------------------------------------------- 1 | SELECT Score, (@rank := @rank + (@pre <> (@pre := Score))) AS Rank FROM Scores, (SELECT @rank := 0, @pre := -1) init ORDER BY Score DESC -------------------------------------------------------------------------------- /question1780_check_if_number_is_a_sum_of_powers_of_three/Solution.java: -------------------------------------------------------------------------------- 1 | package question1780_check_if_number_is_a_sum_of_powers_of_three; 2 | 3 | public class Solution { 4 | 5 | public boolean checkPowersOfThree(int n) { 6 | if (n == 1) { 7 | return true; 8 | } 9 | int k = (int) (Math.log(n) / Math.log(3)); 10 | int removed = (int) Math.pow(3, k); 11 | if (removed == n) { 12 | return true; 13 | } 14 | if (removed * 2 <= n) { 15 | return false; 16 | } 17 | return checkPowersOfThree(n - removed); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question180/Solution.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT l1.Num AS ConsecutiveNums FROM Logs AS l1, Logs AS l2, Logs AS l3 WHERE l1.Id = l2.Id - 1 AND l2.Id = l3.Id - 1 AND l1.Num = l2.Num AND l2.Num = l3.Num; -------------------------------------------------------------------------------- /question1812_determine_color_of_a_chessboard_square/Solution.java: -------------------------------------------------------------------------------- 1 | package question1812_determine_color_of_a_chessboard_square; 2 | 3 | public class Solution { 4 | 5 | public boolean squareIsWhite(String coordinates) { 6 | // + 1 是为了将坐标映射成 [1, n],而不是 [0, n - 1] 7 | int x = coordinates.charAt(0) - 'a' + 1; 8 | int y = coordinates.charAt(1) - '0'; 9 | // 根据行和列的奇偶性来判断返回值 10 | return (x & 1) == 1 ? (y & 1) != 1 : (y & 1) != 0; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question1816_truncate_sentence/Solution.java: -------------------------------------------------------------------------------- 1 | package question1816_truncate_sentence; 2 | 3 | public class Solution { 4 | 5 | public String truncateSentence(String s, int k) { 6 | int count = 0; 7 | for (int i = 0; i < s.length(); i++) { 8 | if (s.charAt(i) == ' ') { 9 | if (count == k - 1) { 10 | return s.substring(0, i); 11 | } 12 | count++; 13 | } 14 | } 15 | return s; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question182/Solution1.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT Email FROM Person AS t1 WHERE (SELECT COUNT(1) FROM Person AS t2 WHERE t2.Email = t1.Email) > 1; -------------------------------------------------------------------------------- /question182/Solution2.sql: -------------------------------------------------------------------------------- 1 | SELECT Email FROM (SELECT Email, COUNT(1) AS Num FROM Person GROUP BY Email) AS STATISTIC WHERE Num > 1; -------------------------------------------------------------------------------- /question182/Solution3.sql: -------------------------------------------------------------------------------- 1 | SELECT Email FROM Person GROUP BY Email HAVING COUNT(1) > 1; -------------------------------------------------------------------------------- /question1822_sign_of_the_product_of_an_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1822_sign_of_the_product_of_an_array; 2 | 3 | public class Solution { 4 | 5 | public int arraySign(int[] nums) { 6 | int negative = 0; 7 | for (int num : nums) { 8 | if (num == 0) { 9 | return 0; 10 | } else if (num < 0) { 11 | negative++; 12 | } 13 | } 14 | return (negative & 1) == 0 ? 1 : -1; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question1823_find_the_winner_of_the_circular_game/Solution.java: -------------------------------------------------------------------------------- 1 | package question1823_find_the_winner_of_the_circular_game; 2 | 3 | public class Solution { 4 | 5 | public int findTheWinner(int n, int k) { 6 | if (n == 1) { 7 | return 1; 8 | } 9 | return (findTheWinner(n - 1, k) + k - 1) % n + 1; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /question1827_minimum_operations_to_make_the_array_increasing/Solution.java: -------------------------------------------------------------------------------- 1 | package question1827_minimum_operations_to_make_the_array_increasing; 2 | 3 | public class Solution { 4 | 5 | public int minOperations(int[] nums) { 6 | int result = 0; 7 | for (int i = 1; i < nums.length; i++) { 8 | if (nums[i] < nums[i - 1] + 1) { 9 | result += nums[i - 1] + 1 - nums[i]; 10 | nums[i] = nums[i - 1] + 1; 11 | } 12 | } 13 | return result; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1829_maximum_xor_for_each_query/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/617076674/LeetCode/0718538ddb79e71fec9a330ea27524a60eb60259/question1829_maximum_xor_for_each_query/.DS_Store -------------------------------------------------------------------------------- /question1829_maximum_xor_for_each_query/Solution2.java: -------------------------------------------------------------------------------- 1 | package question1829_maximum_xor_for_each_query; 2 | 3 | public class Solution2 { 4 | 5 | public int[] getMaximumXor(int[] nums, int maximumBit) { 6 | int[] result = new int[nums.length]; 7 | int temp = 0; 8 | for (int i = result.length - 1; i >= 0; i--) { 9 | temp ^= nums[nums.length - i - 1]; 10 | result[i] = temp ^ ((1 << maximumBit) - 1); 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question183/Solution.sql: -------------------------------------------------------------------------------- 1 | SELECT Name AS Customers FROM Customers WHERE (SELECT COUNT(1) FROM Orders WHERE Orders.CustomerId = Customers.Id) = 0; -------------------------------------------------------------------------------- /question1833_maximum_ice_cream_bars/Solution.java: -------------------------------------------------------------------------------- 1 | package question1833_maximum_ice_cream_bars; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int maxIceCream(int[] costs, int coins) { 8 | Arrays.sort(costs); 9 | int result = 0; 10 | for (int i = 0; i < costs.length && coins > 0; i++) { 11 | if (coins >= costs[i]) { 12 | coins -= costs[i]; 13 | result++; 14 | } 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1837_sum_of_digits_in_base_k/Solution.java: -------------------------------------------------------------------------------- 1 | package question1837_sum_of_digits_in_base_k; 2 | 3 | public class Solution { 4 | 5 | public int sumBase(int n, int k) { 6 | String s = Integer.toString(n, k); 7 | int result = 0; 8 | for (int i = 0; i < s.length(); i++) { 9 | result += s.charAt(i) - '0'; 10 | } 11 | return result; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question184/Solution.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | Department.Name AS Department, 3 | Employee.Name AS Employee, 4 | Employee.Salary AS Salary 5 | FROM 6 | Employee JOIN Department ON Employee.DepartmentId = Department.Id 7 | WHERE 8 | (Employee.DepartmentId, Employee.Salary) 9 | IN 10 | (SELECT DepartmentId, MAX(Salary) FROM Employee GROUP BY DepartmentId); -------------------------------------------------------------------------------- /question1844_replace_all_digits_with_characters/Solution.java: -------------------------------------------------------------------------------- 1 | package question1844_replace_all_digits_with_characters; 2 | 3 | public class Solution { 4 | 5 | public String replaceDigits(String s) { 6 | StringBuilder sb = new StringBuilder(); 7 | for (int i = 0; i < s.length(); i++) { 8 | char c = s.charAt(i); 9 | if ((i & 1) == 0) { 10 | sb.append(c); 11 | } else { 12 | sb.append((char) (s.charAt(i - 1) + c - '0')); 13 | } 14 | } 15 | return sb.toString(); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question1848_minimum_distance_to_the_target_element/Solution.java: -------------------------------------------------------------------------------- 1 | package question1848_minimum_distance_to_the_target_element; 2 | 3 | public class Solution { 4 | public int getMinDistance(int[] nums, int target, int start) { 5 | int result = Integer.MAX_VALUE; 6 | for (int i = 0; i < nums.length; i++) { 7 | if (target == nums[i]) { 8 | result = Math.min(result, Math.abs(start - i)); 9 | } 10 | } 11 | return result; 12 | } 13 | } -------------------------------------------------------------------------------- /question185/Solution.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | t1.Name AS Department, t2.Name AS Employee, t2.Salary AS Salary 3 | FROM 4 | Employee AS t2 JOIN Department AS t1 ON t2.DepartmentId = t1.Id 5 | WHERE 6 | (SELECT 7 | COUNT(DISTINCT Salary) 8 | FROM 9 | Employee AS t3 10 | WHERE 11 | t3.Salary > t2.Salary AND t3.DepartmentId = t2.DepartmentId) < 3; -------------------------------------------------------------------------------- /question1854_maximum_population_year/Solution.java: -------------------------------------------------------------------------------- 1 | package question1854_maximum_population_year; 2 | 3 | public class Solution { 4 | 5 | public int maximumPopulation(int[][] logs) { 6 | int[] diff = new int[3000]; 7 | for (int[] log : logs) { 8 | diff[log[0]]++; 9 | diff[log[1]]--; 10 | } 11 | int result = -1, max = 0, temp = 0; 12 | for (int i = 1950; i <= 2050; i++) { 13 | temp += diff[i]; 14 | if (temp > max) { 15 | temp = max; 16 | result = i; 17 | } 18 | } 19 | return result; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /question1877_minimize_maximum_pair_sum_in_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1877_minimize_maximum_pair_sum_in_array; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int minPairSum(int[] nums) { 8 | Arrays.sort(nums); 9 | int result = 0; 10 | for (int i = 0; i < nums.length / 2; i++) { 11 | result = Math.max(result, nums[i] + nums[nums.length - i - 1]); 12 | } 13 | return result; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1903_largest_odd_number_in_string/Solution.java: -------------------------------------------------------------------------------- 1 | package question1903_largest_odd_number_in_string; 2 | 3 | public class Solution { 4 | 5 | public String largestOddNumber(String num) { 6 | int index = num.length() - 1; 7 | while (index >= 0 && ((num.charAt(index) - '0') & 1) == 0) { 8 | index--; 9 | } 10 | if (index < 0) { 11 | return ""; 12 | } 13 | return num.substring(0, index + 1); 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question1910_remove_all_occurrences_of_a_substring/Solution.java: -------------------------------------------------------------------------------- 1 | package question1910_remove_all_occurrences_of_a_substring; 2 | 3 | public class Solution { 4 | public String removeOccurrences(String s, String part) { 5 | while (true) { 6 | int index = s.indexOf(part); 7 | if (index == -1) { 8 | return s; 9 | } 10 | s = s.substring(0, index) + s.substring(index + part.length()); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /question1913_maximum_product_difference_between_two_pairs/Solution.java: -------------------------------------------------------------------------------- 1 | package question1913_maximum_product_difference_between_two_pairs; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int maxProductDifference(int[] nums) { 8 | Arrays.sort(nums); 9 | return nums[nums.length - 1] * nums[nums.length - 2] - nums[0] * nums[1]; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /question192/Solution1.sh: -------------------------------------------------------------------------------- 1 | cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{ print $2, $1 }' -------------------------------------------------------------------------------- /question192/Solution2.sh: -------------------------------------------------------------------------------- 1 | awk '{ for (i = 1; i <= NF; i++) { D[$i]++; } } END { for (i in D) { print i, D[i] } }' words.txt | sort -nr -k 2 -------------------------------------------------------------------------------- /question1920_build_array_from_permutationD/Solution.java: -------------------------------------------------------------------------------- 1 | package question1920_build_array_from_permutationD; 2 | 3 | public class Solution { 4 | 5 | public int[] buildArray(int[] nums) { 6 | int[] result = new int[nums.length]; 7 | for (int i = 0; i < result.length; i++) { 8 | result[i] = nums[nums[i]]; 9 | } 10 | return result; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question1925_count_square_sum_triples/Solution.java: -------------------------------------------------------------------------------- 1 | package question1925_count_square_sum_triples; 2 | 3 | public class Solution { 4 | 5 | public int countTriples(int n) { 6 | int result = 0; 7 | for (int a = 1; a <= n; a++) { 8 | for (int b = 1; b <= n; b++) { 9 | for (int c = 1; c <= n; c++) { 10 | if (a *a + b * b == c * c) { 11 | result++; 12 | } 13 | } 14 | } 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question1929_concatenation_of_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1929_concatenation_of_array; 2 | 3 | public class Solution { 4 | 5 | public int[] getConcatenation(int[] nums) { 6 | int[] ans = new int[nums.length * 2]; 7 | for (int i = 0; i < nums.length; i++) { 8 | ans[i] = ans[i + nums.length] = nums[i]; 9 | } 10 | return ans; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question193/Solution1.sh: -------------------------------------------------------------------------------- 1 | grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$' file.txt -------------------------------------------------------------------------------- /question193/Solution2.sh: -------------------------------------------------------------------------------- 1 | sed -n -r '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/p' file.txt -------------------------------------------------------------------------------- /question193/Solution3.sh: -------------------------------------------------------------------------------- 1 | awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt -------------------------------------------------------------------------------- /question1932/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question1932; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode() { 9 | } 10 | 11 | TreeNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | TreeNode(int val, TreeNode left, TreeNode right) { 16 | this.val = val; 17 | this.left = left; 18 | this.right = right; 19 | } 20 | } -------------------------------------------------------------------------------- /question1936_add_minimum_number_of_rungs/Solution.java: -------------------------------------------------------------------------------- 1 | package question1936_add_minimum_number_of_rungs; 2 | 3 | public class Solution { 4 | 5 | public int addRungs(int[] rungs, int dist) { 6 | int curHeight = 0, result = 0; 7 | for (int i = 0; i < rungs.length; i++) { 8 | result += (rungs[i] - curHeight) / dist; 9 | if (((rungs[i] - curHeight) % dist) == 0) { 10 | result--; 11 | } 12 | curHeight = rungs[i]; 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question194/Solution.sh: -------------------------------------------------------------------------------- 1 | awk ' 2 | { 3 | for (i = 1; i <= NF; i++) { 4 | if(NR == 1) { 5 | s[i] = $i; 6 | } else { 7 | s[i] = s[i]" "$i; 8 | } 9 | } 10 | } 11 | END { 12 | for (i = 1; s[i] != ""; i++) { 13 | print s[i]; 14 | } 15 | }' file.txt -------------------------------------------------------------------------------- /question195/Solution1.sh: -------------------------------------------------------------------------------- 1 | cnt=0 2 | while read line && [ $cnt -le 10 ] 3 | do 4 | let cnt++ 5 | if [ $cnt -eq 10 ] 6 | then 7 | echo $line 8 | exit 0 9 | fi 10 | done < file.txt -------------------------------------------------------------------------------- /question195/Solution2.sh: -------------------------------------------------------------------------------- 1 | awk 'NR == 10' file.txt -------------------------------------------------------------------------------- /question195/Solution3.sh: -------------------------------------------------------------------------------- 1 | sed -n 10p file.txt -------------------------------------------------------------------------------- /question195/Solution4.sh: -------------------------------------------------------------------------------- 1 | tail -n +10 file.txt | head -n +1 -------------------------------------------------------------------------------- /question1952_three_divisors/Solution.java: -------------------------------------------------------------------------------- 1 | package question1952_three_divisors; 2 | 3 | public class Solution { 4 | 5 | public boolean isThree(int n) { 6 | int result = 0; 7 | for (int i = 1; i <= n; i++) { 8 | if (n % i == 0) { 9 | if (result == 3) { 10 | return false; 11 | } 12 | result++; 13 | } 14 | } 15 | return result == 3; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question1953_maximum_number_of_weeks_for_which_you_can_work/Solution.java: -------------------------------------------------------------------------------- 1 | package question1953_maximum_number_of_weeks_for_which_you_can_work; 2 | 3 | public class Solution { 4 | 5 | public long numberOfWeeks(int[] milestones) { 6 | long max = Integer.MIN_VALUE, other = 0; 7 | for (int milestone : milestones) { 8 | max = Math.max(max, milestone); 9 | other += milestone; 10 | } 11 | other -= max; 12 | if (max > other + 1) { 13 | return other + other + 1; 14 | } 15 | return other + max; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question196/Solution.sql: -------------------------------------------------------------------------------- 1 | DELETE 2 | p1 3 | FROM 4 | Person AS p1, Person AS p2 5 | WHERE 6 | p1.Email = p2.Email AND p1.Id > p2.Id; -------------------------------------------------------------------------------- /question1967_number_of_strings_that_appear_as_substrings_in_word/Solution.java: -------------------------------------------------------------------------------- 1 | package question1967_number_of_strings_that_appear_as_substrings_in_word; 2 | 3 | public class Solution { 4 | 5 | public int numOfStrings(String[] patterns, String word) { 6 | int result = 0; 7 | for (String pattern : patterns) { 8 | if (word.contains(pattern)) { 9 | result++; 10 | } 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question197/Solution1.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | w1.Id 3 | FROM 4 | Weather AS w1, Weather AS w2 5 | WHERE 6 | w1.Temperature > w2.Temperature AND TO_DAYS(w1.RecordDate) - TO_DAYS(w2.RecordDate) = 1; -------------------------------------------------------------------------------- /question197/Solution2.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | w1.Id 3 | FROM 4 | Weather AS w1, Weather AS w2 5 | WHERE 6 | w1.Temperature > w2.Temperature AND DATEDIFF(w1.RecordDate, w2.RecordDate) = 1; -------------------------------------------------------------------------------- /question1979_find_greatest_common_divisor_of_array/Solution.java: -------------------------------------------------------------------------------- 1 | package question1979_find_greatest_common_divisor_of_array; 2 | 3 | public class Solution { 4 | public int findGCD(int[] nums) { 5 | int max = nums[0], min = nums[0]; 6 | for (int i = 1; i < nums.length; i++) { 7 | max = Math.max(max, nums[i]); 8 | min = Math.min(min, nums[i]); 9 | } 10 | return gcd(max, min); 11 | } 12 | 13 | private static int gcd(int a, int b) { 14 | if (b == 0) { 15 | return a; 16 | } 17 | return gcd(b, a % b); 18 | } 19 | } -------------------------------------------------------------------------------- /question1984_minimum_difference_between_highest_and_lowest_of_k_scores/Solution.java: -------------------------------------------------------------------------------- 1 | package question1984_minimum_difference_between_highest_and_lowest_of_k_scores; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int minimumDifference(int[] nums, int k) { 8 | Arrays.sort(nums); 9 | int result = Integer.MAX_VALUE; 10 | for (int i = 0; i + k - 1 < nums.length; i++) { 11 | // [i, i + k - 1] 12 | result = Math.min(result, nums[i + k - 1] - nums[i]); 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question2006_count_number_of_pairs_with_absolute_difference_k/Solution.java: -------------------------------------------------------------------------------- 1 | package question2006_count_number_of_pairs_with_absolute_difference_k; 2 | 3 | public class Solution { 4 | 5 | public int countKDifference(int[] nums, int k) { 6 | int result = 0; 7 | for (int i = 0; i < nums.length; i++) { 8 | for (int j = i + 1; j < nums.length; j++) { 9 | if (Math.abs(nums[i] - nums[j]) == k) { 10 | result++; 11 | } 12 | } 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question2011_final_value_of_variable_after_performing_operations/Solution.java: -------------------------------------------------------------------------------- 1 | package question2011_final_value_of_variable_after_performing_operations; 2 | 3 | public class Solution { 4 | 5 | public int finalValueAfterOperations(String[] operations) { 6 | int result = 0; 7 | for (String operation : operations) { 8 | switch (operation) { 9 | case "--X": 10 | case "X--": 11 | result--; 12 | break; 13 | default: 14 | result++; 15 | } 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2016_maximum_difference_between_increasing_elements/Solution.java: -------------------------------------------------------------------------------- 1 | package question2016_maximum_difference_between_increasing_elements; 2 | 3 | public class Solution { 4 | 5 | public int maximumDifference(int[] nums) { 6 | int result = -1; 7 | for (int i = 0; i < nums.length; i++) { 8 | for (int j = i + 1; j < nums.length; j++) { 9 | if (nums[i] < nums[j]) { 10 | result = Math.max(result, nums[j] - nums[i]); 11 | } 12 | } 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question2027_minimum_moves_to_convert_string/Solution.java: -------------------------------------------------------------------------------- 1 | package question2027_minimum_moves_to_convert_string; 2 | 3 | public class Solution { 4 | 5 | public int minimumMoves(String s) { 6 | int result = 0; 7 | for (int i = 0; i < s.length(); i++) { 8 | char c = s.charAt(i); 9 | if (c == 'X') { 10 | result++; 11 | i += 2; 12 | } 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question2037_minimum_number_of_moves_to_seat_everyone/Solution.java: -------------------------------------------------------------------------------- 1 | package question2037_minimum_number_of_moves_to_seat_everyone; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int minMovesToSeat(int[] seats, int[] students) { 8 | Arrays.sort(seats); 9 | Arrays.sort(students); 10 | int result = 0; 11 | for (int i = 0; i < seats.length; i++) { 12 | result += Math.abs(seats[i] - students[i]); 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question204/Solution2.java: -------------------------------------------------------------------------------- 1 | package question204; 2 | 3 | public class Solution2 { 4 | public int countPrimes(int n) { 5 | boolean[] flag = new boolean[n]; 6 | int result = 0; 7 | for (int i = 2; i < n; i++) { 8 | if (!flag[i]) { 9 | result++; 10 | for (int j = 2; j * i < n; j++) { 11 | flag[i * j] = true; 12 | } 13 | } 14 | } 15 | return result; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /question2057_smallest_index_with_equal_value/Solution.java: -------------------------------------------------------------------------------- 1 | package question2057_smallest_index_with_equal_value; 2 | 3 | public class Solution { 4 | 5 | public int smallestEqual(int[] nums) { 6 | for (int i = 0; i < nums.length; i++) { 7 | if (i % 10 == nums[i]) { 8 | return i; 9 | } 10 | } 11 | return -1; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question2058_find_the_minimum_and_maximum_number_of_nodes_between_critical_points/ListNode.java: -------------------------------------------------------------------------------- 1 | package question2058_find_the_minimum_and_maximum_number_of_nodes_between_critical_points; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode() { 8 | } 9 | 10 | ListNode(int val) { 11 | this.val = val; 12 | } 13 | 14 | ListNode(int val, ListNode next) { 15 | this.val = val; 16 | this.next = next; 17 | } 18 | } -------------------------------------------------------------------------------- /question2063_vowels_of_all_substrings/Solution.java: -------------------------------------------------------------------------------- 1 | package question2063_vowels_of_all_substrings; 2 | 3 | public class Solution { 4 | 5 | public long countVowels(String word) { 6 | long result = 0L; 7 | for (int i = 0; i < word.length(); i++) { 8 | char c = word.charAt(i); 9 | if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { 10 | result += (i + 1L) * (word.length() - i); 11 | } 12 | } 13 | return result; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /question2074_reverse_nodes_in_even_length_groups/ListNode.java: -------------------------------------------------------------------------------- 1 | package question2074_reverse_nodes_in_even_length_groups; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode() { 8 | } 9 | 10 | ListNode(int val) { 11 | this.val = val; 12 | } 13 | 14 | ListNode(int val, ListNode next) { 15 | this.val = val; 16 | this.next = next; 17 | } 18 | } -------------------------------------------------------------------------------- /question2079_watering_plants/Solution.java: -------------------------------------------------------------------------------- 1 | package question2079_watering_plants; 2 | 3 | public class Solution { 4 | 5 | public int wateringPlants(int[] plants, int capacity) { 6 | int result = 0, water = capacity; 7 | for (int i = -1; i < plants.length - 1; i++) { 8 | if (water < plants[i + 1]) { 9 | water = capacity; 10 | result += (i + 1) * 2; 11 | i--; 12 | } else { 13 | water -= plants[i + 1]; 14 | result++; 15 | } 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2089/Solution.java: -------------------------------------------------------------------------------- 1 | package question2089; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | public class Solution { 8 | 9 | public List targetIndices(int[] nums, int target) { 10 | Arrays.sort(nums); 11 | List result = new ArrayList<>(nums.length); 12 | for (int i = 0; i < nums.length; i++) { 13 | if (nums[i] == target) { 14 | result.add(i); 15 | } 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2095/ListNode.java: -------------------------------------------------------------------------------- 1 | package question2095; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | ListNode() {} 7 | ListNode(int val) { this.val = val; } 8 | ListNode(int val, ListNode next) { this.val = val; this.next = next; } 9 | } -------------------------------------------------------------------------------- /question2095/Solution.java: -------------------------------------------------------------------------------- 1 | package question2095; 2 | 3 | public class Solution { 4 | 5 | public ListNode deleteMiddle(ListNode head) { 6 | ListNode dummyHead = new ListNode(-1); 7 | dummyHead.next = head; 8 | int len = 0; 9 | ListNode cur = dummyHead; 10 | while (cur.next != null) { 11 | cur = cur.next; 12 | len++; 13 | } 14 | len /= 2; 15 | cur = dummyHead; 16 | while (len-- > 0) { 17 | cur = cur.next; 18 | } 19 | cur.next = cur.next.next; 20 | return dummyHead.next; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /question2096/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question2096; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode() { 9 | } 10 | 11 | TreeNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | TreeNode(int val, TreeNode left, TreeNode right) { 16 | this.val = val; 17 | this.left = left; 18 | this.right = right; 19 | } 20 | } -------------------------------------------------------------------------------- /question2104/Solution.java: -------------------------------------------------------------------------------- 1 | package question2104; 2 | 3 | public class Solution { 4 | 5 | public long subArrayRanges(int[] nums) { 6 | long result = 0L; 7 | for (int i = 0; i < nums.length; i++) { 8 | int max = nums[i], min = nums[i]; 9 | for (int j = i; j < nums.length; j++) { 10 | max = Math.max(max, nums[j]); 11 | min = Math.min(min, nums[j]); 12 | result += max - min; 13 | } 14 | } 15 | return result; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question2108/Solution.java: -------------------------------------------------------------------------------- 1 | package question2108; 2 | 3 | public class Solution { 4 | 5 | public String firstPalindrome(String[] words) { 6 | for (String word : words) { 7 | if (isPalindrome(word)) { 8 | return word; 9 | } 10 | } 11 | return ""; 12 | } 13 | 14 | private boolean isPalindrome(String s) { 15 | for (int i = 0; i <= s.length() / 2; i++) { 16 | if (s.charAt(i) != s.charAt(s.length() - 1 - i)) { 17 | return false; 18 | } 19 | } 20 | return true; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /question2109/Solution.java: -------------------------------------------------------------------------------- 1 | package question2109; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public String addSpaces(String s, int[] spaces) { 8 | StringBuilder sb = new StringBuilder(); 9 | Arrays.sort(spaces); 10 | int spaceIndex = 0; 11 | for (int i = 0; i < s.length(); i++) { 12 | if (spaceIndex < spaces.length && i == spaces[spaceIndex]) { 13 | sb.append(" "); 14 | spaceIndex++; 15 | } 16 | sb.append(s.charAt(i)); 17 | } 18 | return sb.toString(); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question2114/Solution.java: -------------------------------------------------------------------------------- 1 | package question2114; 2 | 3 | public class Solution { 4 | 5 | public int mostWordsFound(String[] sentences) { 6 | int result = 0; 7 | for (String sentence : sentences) { 8 | int temp = 0; 9 | for (int i = 0; i < sentence.length(); i++) { 10 | if (sentence.charAt(i) == ' ') { 11 | temp++; 12 | } 13 | } 14 | result = Math.max(result, temp + 1); 15 | } 16 | return result; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /question2119/Solution.java: -------------------------------------------------------------------------------- 1 | package question2119; 2 | 3 | public class Solution { 4 | 5 | public boolean isSameAfterReversals(int num) { 6 | return num == reverse(reverse(num)); 7 | } 8 | 9 | private static int reverse(int num) { 10 | int result = 0; 11 | while (num > 0) { 12 | int digit = num % 10; 13 | result = result * 10 + digit; 14 | num /= 10; 15 | } 16 | return result; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /question2124/Solution.java: -------------------------------------------------------------------------------- 1 | package question2124; 2 | 3 | public class Solution { 4 | 5 | public boolean checkString(String s) { 6 | for (int i = 1; i < s.length(); i++) { 7 | if (s.charAt(i - 1) > s.charAt(i)) { 8 | return false; 9 | } 10 | } 11 | return true; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /question2130/ListNode.java: -------------------------------------------------------------------------------- 1 | package question2130; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode() { 8 | } 9 | 10 | ListNode(int val) { 11 | this.val = val; 12 | } 13 | 14 | ListNode(int val, ListNode next) { 15 | this.val = val; 16 | this.next = next; 17 | } 18 | } -------------------------------------------------------------------------------- /question2139/Solution.java: -------------------------------------------------------------------------------- 1 | package question2139; 2 | 3 | public class Solution { 4 | 5 | public int minMoves(int target, int maxDoubles) { 6 | if (target == 1) { 7 | return 0; 8 | } 9 | if (maxDoubles == 0) { 10 | return target - 1; 11 | } 12 | if (target % 2 == 0) { 13 | return minMoves(target / 2, maxDoubles - 1) + 1; 14 | } 15 | return minMoves(target - 1, maxDoubles) + 1; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /question2144/Solution.java: -------------------------------------------------------------------------------- 1 | package question2144; 2 | 3 | import java.util.Arrays; 4 | 5 | public class Solution { 6 | 7 | public int minimumCost(int[] cost) { 8 | Arrays.sort(cost); 9 | int result = 0; 10 | for (int i = cost.length - 1; i >= 0; i--) { 11 | result += cost[i]; 12 | if (i - 1 >= 0) { 13 | result += cost[i - 1]; 14 | i--; 15 | } 16 | i--; 17 | } 18 | return result; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /question2148/Solution.java: -------------------------------------------------------------------------------- 1 | package question2148; 2 | 3 | public class Solution { 4 | 5 | public int countElements(int[] nums) { 6 | int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE; 7 | for (int num : nums) { 8 | min = Math.min(min, num); 9 | max = Math.max(max, num); 10 | } 11 | int result = 0; 12 | for (int num : nums) { 13 | if (num > min && num < max) { 14 | result++; 15 | } 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2154/Solution.java: -------------------------------------------------------------------------------- 1 | package question2154; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class Solution { 7 | 8 | public int findFinalValue(int[] nums, int original) { 9 | int result = original; 10 | Set set = new HashSet<>(); 11 | for (int num : nums) { 12 | set.add(num); 13 | } 14 | while (true) { 15 | if (set.contains(result)) { 16 | result = result * 2; 17 | } else { 18 | return result; 19 | } 20 | } 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /question2169/Solution.java: -------------------------------------------------------------------------------- 1 | package question2169; 2 | 3 | public class Solution { 4 | 5 | public int countOperations(int num1, int num2) { 6 | int step = 0; 7 | while (true) { 8 | if (num1 == 0 || num2 == 0) { 9 | return step; 10 | } 11 | if (num1 >= num2) { 12 | num1 -= num2; 13 | } else { 14 | num2 -= num1; 15 | } 16 | step++; 17 | } 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question217/Solution.java: -------------------------------------------------------------------------------- 1 | package question217; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class Solution { 7 | public boolean containsDuplicate(int[] nums) { 8 | Set set = new HashSet<>(); 9 | for (int i = 0; i < nums.length; i++) { 10 | if (set.contains(nums[i])) { 11 | return true; 12 | } else { 13 | set.add(nums[i]); 14 | } 15 | } 16 | return false; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /question2176/Solution.java: -------------------------------------------------------------------------------- 1 | package question2176; 2 | 3 | public class Solution { 4 | 5 | public int countPairs(int[] nums, int k) { 6 | int result = 0; 7 | for (int i = 0; i < nums.length; i++) { 8 | for (int j = i + 1; j < nums.length; j++) { 9 | if (nums[i] == nums[j] && (i * j) % k == 0) { 10 | result++; 11 | } 12 | } 13 | } 14 | return result; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /question2177/Solution.java: -------------------------------------------------------------------------------- 1 | package question2177; 2 | 3 | public class Solution { 4 | 5 | public long[] sumOfThree(long num) { 6 | if (num % 3 != 0) { 7 | return new long[] {}; 8 | } 9 | long mid = num / 3; 10 | return new long[] {mid - 1, mid, mid + 1}; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /question2180/Solution.java: -------------------------------------------------------------------------------- 1 | package question2180; 2 | 3 | public class Solution { 4 | 5 | public int countEven(int num) { 6 | int result = 0; 7 | for (int i = 1; i <= num; i++) { 8 | int temp = i, sum = 0; 9 | while (temp > 0) { 10 | sum += temp % 10; 11 | temp /= 10; 12 | } 13 | if (sum % 2 == 0) { 14 | result++; 15 | } 16 | } 17 | return result; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2181/ListNode.java: -------------------------------------------------------------------------------- 1 | package question2181; 2 | 3 | public class ListNode { 4 | 5 | int val; 6 | ListNode next; 7 | 8 | ListNode() { 9 | } 10 | 11 | ListNode(int val) { 12 | this.val = val; 13 | } 14 | 15 | ListNode(int val, ListNode next) { 16 | this.val = val; 17 | this.next = next; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /question2185/Solution.java: -------------------------------------------------------------------------------- 1 | package question2185; 2 | 3 | public class Solution { 4 | 5 | public int prefixCount(String[] words, String pref) { 6 | int result = 0; 7 | for (String word : words) { 8 | if (word.startsWith(pref)) { 9 | result++; 10 | } 11 | } 12 | return result; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /question2196/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question2196; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode() {} 8 | TreeNode(int val) { this.val = val; } 9 | TreeNode(int val, TreeNode left, TreeNode right) { 10 | this.val = val; 11 | this.left = left; 12 | this.right = right; 13 | } 14 | } -------------------------------------------------------------------------------- /question2216/Solution.java: -------------------------------------------------------------------------------- 1 | package question2216; 2 | 3 | public class Solution { 4 | 5 | public int minDeletion(int[] nums) { 6 | int res = 0; 7 | int index = 0; 8 | for (int i = 0; i < nums.length; i++) { 9 | if (index % 2 == 0) { 10 | while (i + 1 < nums.length && nums[i] == nums[i + 1]) { 11 | // 需要删除第 i 个元素 12 | res++; 13 | i++; 14 | } 15 | } 16 | index++; 17 | } 18 | if (index % 2 == 1) { 19 | res++; 20 | } 21 | return res; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /question237/ListNode.java: -------------------------------------------------------------------------------- 1 | package question237; 2 | 3 | public class ListNode { 4 | int val; 5 | ListNode next; 6 | 7 | ListNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question237/Solution.java: -------------------------------------------------------------------------------- 1 | package question237; 2 | 3 | public class Solution { 4 | public void deleteNode(ListNode node) { 5 | ListNode nextNode = node.next; 6 | node.val = nextNode.val; 7 | node.next = nextNode.next; 8 | nextNode.next = null; 9 | } 10 | } -------------------------------------------------------------------------------- /question429/Node.java: -------------------------------------------------------------------------------- 1 | package question429; 2 | 3 | import java.util.List; 4 | 5 | public class Node { 6 | 7 | public int val; 8 | 9 | public List children; 10 | 11 | public Node() { 12 | } 13 | 14 | public Node(int _val, List _children) { 15 | val = _val; 16 | children = _children; 17 | } 18 | 19 | }; -------------------------------------------------------------------------------- /question501/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question501; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | TreeNode(int x) { 8 | val = x; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /question654/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question654; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question655/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question655; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } -------------------------------------------------------------------------------- /question814/TreeNode.java: -------------------------------------------------------------------------------- 1 | package question814; 2 | 3 | public class TreeNode { 4 | int val; 5 | TreeNode left; 6 | TreeNode right; 7 | 8 | TreeNode(int x) { 9 | val = x; 10 | } 11 | } --------------------------------------------------------------------------------