├── .gitignore ├── 2019.04.27线上答疑要点整理.pdf ├── README.md ├── Week_01 ├── .DS_Store ├── id_0 │ ├── NOTE.md │ └── TestPush.java ├── id_1 │ ├── LeetCode_153_1.java │ ├── LeetCode_24_1.java │ ├── LeetCode_25_1.java │ ├── LeetCode_50_1.java │ ├── LeetCode_698_1.java │ └── NOTE.md ├── id_10 │ └── NOTE.md ├── id_100 │ ├── LeetCode_21_100.java │ ├── LeetCode_83_100.java │ └── NOTE.md ├── id_101 │ ├── LeetCode_141_101.java │ ├── LeetCode_142_101.java │ ├── LeetCode_206_101.java │ ├── LeetCode_20_101.java │ ├── LeetCode_24_101.java │ ├── LeetCode_25_101.java │ └── NOTE.md ├── id_102 │ ├── NOTE.md │ ├── leetcode_153_102.cpp │ └── leetcode_20_102.cpp ├── id_103 │ └── NOTE.md ├── id_104 │ ├── LeetCode_20_104.java │ ├── LeetCode_242_104.java │ ├── LeetCode_83_104.java │ ├── LeetCode_905_104.java │ └── NOTE.md ├── id_105 │ └── NOTE.md ├── id_106 │ └── NOTE.md ├── id_107 │ └── NOTE.md ├── id_108 │ ├── LeetCode_142_108.java │ ├── LeetCode_153_108.java │ ├── LeetCode_20_108.java │ ├── LeetCode_21_108.java │ ├── LeetCode_24_108.java │ ├── LeetCode_25_108.java │ ├── LeetCode_33_108.java │ ├── LeetCode_503_108.java │ ├── LeetCode_687_108.java │ ├── LeetCode_698_108.java │ ├── LeetCode_83_108.java │ ├── LeetCode_895_108.java │ ├── LeetCode_905_108.java │ ├── LeetCode_922_108.java │ └── NOTE.md ├── id_109 │ ├── LeetCode_83_109.java │ ├── LeetCode_905_109.java │ └── NOTE.md ├── id_11 │ └── NOTE.md ├── id_110 │ └── NOTE.md ├── id_111 │ ├── LeetCode_905_111.java │ ├── LeetCode_922_111.java │ └── NOTE.md ├── id_112 │ └── NOTE.md ├── id_113 │ ├── NOTE.md │ ├── leetcode_242_113.cpp │ └── leetcode_83_113.cpp ├── id_114 │ └── NOTE.md ├── id_115 │ └── NOTE.md ├── id_116 │ └── NOTE.md ├── id_117 │ ├── LeetCode_21_117.go │ ├── LeetCode_21_117_test.go │ ├── LeetCode_83_117.go │ ├── LeetCode_83_117_test.go │ └── NOTE.md ├── id_118 │ ├── NOTE.md │ ├── leetcode_142_118.java │ ├── leetcode_153_118.java │ ├── leetcode_21_118.java │ ├── leetcode_24_118.java │ ├── leetcode_25_118.java │ ├── leetcode_33_118.java │ ├── leetcode_687_118.java │ ├── leetcode_704_118.java │ ├── leetcode_83_118.java │ ├── leetcode_905_118.java │ └── leetcode_922_118.java ├── id_119 │ ├── LeetCode_20_119.cpp │ ├── LeetCode_687_119.cpp │ └── NOTE.md ├── id_12 │ ├── LeetCode_21_12.go │ ├── LeetCode_83_12.php │ └── NOTE.md ├── id_120 │ └── NOTE.md ├── id_121 │ ├── LeetCode_141_121.java │ ├── LeetCode_20_121.java │ ├── LeetCode_21_121.java │ ├── LeetCode_24_121.java │ ├── LeetCode_83_121.java │ ├── LeetCode_905_121.java │ ├── LeetCode_922_121.java │ └── NOTE.md ├── id_122 │ ├── LeetCode_142_122.py │ ├── LeetCode_21_122.php │ ├── LeetCode_24_122.php │ ├── LeetCode_687_122.php │ ├── LeetCode_83_122.php │ └── NOTE.md ├── id_123 │ ├── LeetCode_20_123.go │ ├── LeetCode_20_123_test.go │ ├── LeetCode_242_123.go │ ├── LeetCode_242_123_test.go │ ├── LeetCode_441_123.go │ ├── LeetCode_441_123_test.go │ ├── LeetCode_83_123.go │ ├── LeetCode_83_123_test.go │ ├── LeetCode_905_123.go │ ├── LeetCode_905_123_test.go │ ├── LeetCode_922_123.go │ ├── LeetCode_922_123_test.go │ └── NOTE.md ├── id_124 │ ├── LeetCode_142_124.java │ ├── LeetCode_20_124.java │ ├── LeetCode_242_124.java │ ├── LeetCode_24_124.java │ ├── LeetCode_83_124.java │ ├── LeetCode_905_124.java │ └── NOTE.md ├── id_125 │ ├── LeetCode_83_125.c │ ├── LeetCode_905_125.c │ └── NOTE.md ├── id_126 │ ├── LeetCode_21_126.java │ ├── LeetCode_24_126.java │ ├── LeetCode_83_126.java │ └── NOTE.md ├── id_127 │ ├── 21.jpeg │ ├── 83.jpeg │ ├── LeetCode_21_127.java │ ├── LeetCode_83_127.java │ └── NOTE.md ├── id_128 │ ├── LeetCode_21_128.go │ ├── LeetCode_905_128.go │ ├── NOTE.md │ └── README.md ├── id_129 │ ├── .gitignore │ ├── Console.java │ ├── LeetCode_142_129.java │ ├── LeetCode_153_129.java │ ├── LeetCode_20_129.java │ ├── LeetCode_21_129.java │ ├── LeetCode_24_129.java │ ├── LeetCode_2_129.java │ ├── LeetCode_503_129.java │ ├── LeetCode_687_129.java │ ├── LeetCode_81_129.java │ ├── LeetCode_905_129.java │ ├── LeetCode_922_129.java │ ├── ListNode.java │ ├── NOTE.md │ └── TreeNode.java ├── id_13 │ ├── LeetCode_20_13.java │ ├── LeetCode_21_13.java │ ├── LeetCode_687_13.java │ ├── LeetCode_83_13.java │ ├── LeetCode_905_13.java │ ├── LeetCode_922_13.java │ └── NOTE.md ├── id_130 │ ├── LeetCode_83_130.js │ ├── LeetCode_905_130.js │ └── NOTE.md ├── id_131 │ ├── LeetCode_20_131.cpp │ ├── LeetCode_21_131.cpp │ ├── LeetCode_242_131.cpp │ ├── LeetCode_441_131.cpp │ ├── LeetCode_687_131.cpp │ ├── LeetCode_83_131.cpp │ ├── LeetCode_905_131.cpp │ ├── LeetCode_922_131.cpp │ └── NOTE.md ├── id_132 │ └── NOTE.md ├── id_133 │ └── NOTE.md ├── id_134 │ ├── LeetCode_142_134.java │ ├── LeetCode_20_134.java │ ├── LeetCode_21_134.java │ ├── LeetCode_242_134.java │ ├── LeetCode_24_134.java │ ├── LeetCode_503_134.java │ ├── LeetCode_83_134.java │ ├── LeetCode_905_134.java │ ├── LeetCode_922_134.java │ └── NOTE.md ├── id_135 │ ├── LeetCode_81_135.java │ ├── LeetCode_905_135.java │ └── NOTE.md ├── id_136 │ ├── LeetCode_21_136.js │ ├── LeetCode_83_136.js │ └── NOTE.md ├── id_137 │ ├── LeetCode_441_137.py │ ├── LeetCode_687_137.py │ └── NOTE.md ├── id_138 │ └── NOTE.md ├── id_139 │ ├── LeetCode_142_139.java │ ├── LeetCode_153_139.java │ ├── LeetCode_21_139.java │ ├── LeetCode_25_139.java │ ├── LeetCode_81_139.java │ ├── LeetCode_83_139.java │ ├── LeetCode_922_139.java │ └── NOTE.md ├── id_14 │ └── NOTE.md ├── id_140 │ ├── Leetcode_687_140.java │ ├── Leetcode_905_140.java │ └── NOTE.md ├── id_141 │ └── NOTE.md ├── id_142 │ ├── LeetCode_20_142.java │ ├── LeetCode_21_142.java │ ├── LeetCode_83_142.java │ ├── LeetCode_905_142.java │ └── NOTE.md ├── id_143 │ └── NOTE.md ├── id_144 │ ├── NOTE.md │ ├── leetcode_83_144.py │ └── leetcode_905_144.py ├── id_145 │ ├── LeetCode_20_145.cpp │ ├── LeetCode_24_145.cpp │ └── NOTE.md ├── id_146 │ └── NOTE.md ├── id_147 │ └── NOTE.md ├── id_148 │ └── NOTE.md ├── id_149 │ └── NOTE.md ├── id_15 │ └── NOTE.md ├── id_150 │ └── NOTE.md ├── id_151 │ ├── LeetCode_21_151.java │ ├── LeetCode_83_151.java │ └── NOTE.md ├── id_152 │ └── NOTE.md ├── id_153 │ └── NOTE.md ├── id_154 │ └── NOTE.md ├── id_155 │ └── NOTE.md ├── id_156 │ └── NOTE.md ├── id_157 │ └── NOTE.md ├── id_158 │ └── NOTE.md ├── id_159 │ └── NOTE.md ├── id_16 │ ├── LeetCode_21_16.cpp │ ├── LeetCode_441_16.cpp │ ├── LeetCode_50_16 .cpp │ ├── LeetCode_83_16.cpp │ └── NOTE.md ├── id_160 │ └── NOTE.md ├── id_161 │ └── NOTE.md ├── id_162 │ └── NOTE.md ├── id_163 │ └── NOTE.md ├── id_164 │ └── NOTE.md ├── id_165 │ └── NOTE.md ├── id_166 │ └── NOTE.md ├── id_167 │ └── NOTE.md ├── id_168 │ └── NOTE.md ├── id_17 │ ├── LeetCode_20_17.swift │ ├── LeetCode_33_17.swift │ ├── LeetCode_905_17.js │ ├── LeetCode_905_17.swift │ ├── LeetCode_922_17.js │ ├── LeetCode_922_17.swift │ └── NOTE.md ├── id_18 │ └── NOTE.md ├── id_19 │ └── NOTE.md ├── id_2 │ ├── LeetCode_20_2.cs │ ├── LeetCode_21_2.cs │ ├── LeetCode_242_2.cs │ ├── LeetCode_24_2.cs │ ├── LeetCode_503_2.cs │ ├── LeetCode_687_2.cs │ ├── LeetCode_83_2.cs │ ├── LeetCode_905_2.cs │ ├── LeetCode_922_2.cs │ └── NOTE.md ├── id_20 │ └── NOTE.md ├── id_21 │ ├── LeetCode_020_021.cpp │ ├── LeetCode_021_021.cpp │ ├── LeetCode_024_021.cpp │ ├── LeetCode_025_021.cpp │ ├── LeetCode_081_021.cpp │ ├── LeetCode_083_021.cpp │ ├── LeetCode_142_021.cpp │ ├── LeetCode_153_021.cpp │ ├── LeetCode_503_021.cpp │ ├── LeetCode_905_021.cpp │ ├── LeetCode_922_021.cpp │ └── NOTE.md ├── id_22 │ └── NOTE.md ├── id_23 │ └── NOTE.md ├── id_24 │ ├── Leetcode_242_024.rb │ ├── NOTE.md │ ├── leet_code.md │ ├── leetcode_687_024.rb │ └── leetcode_83_024.rb ├── id_25 │ ├── LeetCode_441_025.rb │ ├── LeetCode_905_025.rb │ └── NOTE.md ├── id_26 │ ├── Leetcode_441_26.java │ ├── Leetcode_50_26.java │ ├── Leetcode_905_26.java │ ├── Leetcode_922_26.java │ ├── NOTE.md │ └── TreeNode.java ├── id_27 │ ├── LeetCode_142_027.java │ ├── LeetCode_21_027.java │ ├── LeetCode_242_027.java │ ├── LeetCode_24_027.java │ ├── LeetCode_324_027.java │ ├── LeetCode_83_027.java │ └── NOTE.md ├── id_28 │ ├── LeetCode_242_028.java │ ├── LeetCode_922_028.java │ └── NOTE.md ├── id_29 │ └── NOTE.md ├── id_3 │ ├── LeetCode_142_3.c │ ├── LeetCode_21_3.c │ ├── LeetCode_24_3.c │ ├── LeetCode_83_3.c │ ├── LeetCode_905_3.c │ ├── LeetCode_922_3.c │ └── NOTE.md ├── id_30 │ ├── LeetCode_20_30.java │ ├── LeetCode_21_30.java │ ├── LeetCode_242_30.java │ ├── LeetCode_441_30.java │ ├── LeetCode_687_30.java │ ├── LeetCode_83_30.java │ ├── LeetCode_905_30.java │ ├── LeetCode_922_30.java │ └── NOTE.md ├── id_31 │ ├── LeetCode_153_031.swift │ ├── LeetCode_164_031.swift │ ├── LeetCode_20_031.swift │ ├── LeetCode_21_031.swift │ ├── LeetCode_242_031.swift │ ├── LeetCode_24_031.swift │ ├── LeetCode_324_031.swift │ ├── LeetCode_33_031.swift │ ├── LeetCode_441_031.swift │ ├── LeetCode_50_031.swift │ ├── LeetCode_687_031.swift │ ├── LeetCode_81_031.swift │ ├── LeetCode_83_031.swift │ ├── LeetCode_905_031.swift │ ├── LeetCode_922_031.swift │ └── NOTE.md ├── id_32 │ └── NOTE.md ├── id_33 │ ├── LeetCode_242_33.py │ ├── LeetCode_905_33.py │ └── NOTE.md ├── id_34 │ ├── LeetCode_83_0.cs │ ├── LeetCode_905_0.cs │ └── NOTE.md ├── id_35 │ └── NOTE.md ├── id_36 │ ├── LeetCode_441_036_ArrangeCoins.java │ ├── LeetCode_687_036_LongestUnivaluePath.java │ └── NOTE.md ├── id_37 │ ├── LeetCode_153_37.java │ ├── LeetCode_905_37.java │ ├── LeetCode_922_37.java │ └── NOTE.md ├── id_38 │ ├── LeetCode_142_38.py │ ├── LeetCode_698_38.py │ └── NOTE.md ├── id_39 │ ├── LeetCode_083_039.java │ ├── LeetCode_922_039.java │ └── NOTE.md ├── id_4 │ └── NOTE.md ├── id_40 │ ├── LeetCode_83_040.go │ ├── LeetCode_905_040.go │ └── NOTE.md ├── id_41 │ └── NOTE.md ├── id_42 │ └── NOTE.md ├── id_43 │ └── NOTE.md ├── id_44 │ ├── LeetCode_142_044.java │ ├── LeetCode_441_044.java │ └── NOTE.md ├── id_45 │ ├── LeetCode_21_45.java │ ├── LeetCode_24_45.java │ └── NOTE.md ├── id_46 │ ├── NOTE.md │ ├── leetcode_142_046.cpp │ ├── leetcode_21_046.cpp │ ├── leetcode_24_046.cpp │ ├── leetcode_503_046.cpp │ ├── leetcode_687_046.cpp │ ├── leetcode_81_046.cpp │ └── leetcode_83_046.cpp ├── id_47 │ ├── LeetCode_324_47.java │ ├── LeetCode_503_47.java │ └── NOTE.md ├── id_48 │ └── NOTE.md ├── id_49 │ ├── LeetCode_24_49.java │ ├── LeetCode_81_49.java │ ├── NOTE.md │ └── Swap_Nodes_in_Pairs.jpeg ├── id_5 │ └── NOTE.md ├── id_50 │ ├── LeetCode_24_50.java │ ├── LeetCode_83_50.java │ └── NOTE.md ├── id_51 │ └── NOTE.md ├── id_52 │ ├── LeetCode_142_52.java │ ├── LeetCode_20_52.java │ ├── LeetCode_21_52.java │ ├── LeetCode_24_52.java │ ├── LeetCode_25_52.java │ ├── LeetCode_503_52.java │ ├── LeetCode_687_52.java │ ├── LeetCode_83_52.java │ ├── LeetCode_895_52.java │ ├── LeetCode_905_52.java │ ├── LeetCode_922_52.java │ └── NOTE.md ├── id_53 │ ├── LeetCode_21_53.java │ ├── LeetCode_83_53.java │ └── NOTE.md ├── id_54 │ ├── LeetCode_21_54.java │ ├── LeetCode_83_54.java │ ├── LeetCode_905_54.java │ └── NOTE.md ├── id_55 │ ├── LeetCode_20_55.py │ ├── LeetCode_21_55.py │ ├── LeetCode_242_55.py │ ├── LeetCode_83_55.py │ ├── LeetCode_905_55.py │ ├── LeetCode_922_55.py │ └── NOTE.md ├── id_56 │ └── NOTE.md ├── id_57 │ ├── NOTE.md │ ├── leetcode_21_057.cpp │ └── leetcode_83_057.cpp ├── id_58 │ ├── LeetCode_21_058.java │ ├── LeetCode_24_058.java │ ├── LeetCode_83_058.java │ ├── NOTE.md │ └── TestClass.java ├── id_59 │ ├── LeetCode_905_059.py │ ├── LeetCode_922_059.py │ └── NOTE.md ├── id_6 │ ├── LeetCode_20_6.java │ ├── LeetCode_21_6.java │ ├── LeetCode_242_6.java │ ├── LeetCode_324_6.java │ ├── LeetCode_441_6.java │ ├── LeetCode_503_6.java │ ├── LeetCode_50_6.java │ ├── LeetCode_687_6.java │ ├── LeetCode_83_6.java │ ├── LeetCode_905_6.java │ ├── LeetCode_922_6.java │ └── NOTE.md ├── id_60 │ ├── LeetCode_021_060.go │ ├── LeetCode_242_060.go │ └── NOTE.md ├── id_61 │ ├── NOTE.md │ ├── leetcode_142_061.cpp │ └── leetcode_503_061.cpp ├── id_62 │ ├── LeetCode_242_62.c │ ├── LeetCode_441_62.c │ └── NOTE.md ├── id_63 │ ├── LeetCode_141_63.java │ ├── LeetCode_142_63.java │ ├── LeetCode_206_63.java │ ├── LeetCode_21_63.java │ ├── LeetCode_83_63.java │ └── NOTE.md ├── id_64 │ ├── LeetCode_141_64.js │ ├── LeetCode_20_64.js │ ├── LeetCode_21_64.js │ ├── LeetCode_242_64.js │ ├── LeetCode_24_64.js │ ├── LeetCode_83_64.js │ ├── LeetCode_905_64.js │ └── NOTE.md ├── id_65 │ ├── 2222test │ ├── LeetCode_21_065.java │ ├── LeetCode_441_065.java │ ├── LeetCode_83_065.java │ ├── LeetCode_905_065.java │ ├── LeetCode_922_065.java │ └── NOTE.md ├── id_66 │ └── NOTE.md ├── id_67 │ ├── LeetCode_20_67.java │ ├── LeetCode_21_67.java │ ├── LeetCode_242_67.java │ ├── LeetCode_441_67.java │ ├── LeetCode_687_67.java │ ├── LeetCode_83_67.java │ ├── LeetCode_905_67.java │ ├── LeetCode_922_67.java │ └── NOTE.md ├── id_68 │ └── NOTE.md ├── id_69 │ ├── LeetCode_905_69.java │ ├── LeetCode_922_69.java │ └── NOTE.md ├── id_7 │ ├── LeetCode_136_7.go │ ├── LeetCode_1_7.go │ ├── LeetCode_20_7.go │ ├── LeetCode_21_7.go │ ├── NOTE.md │ ├── geek_test.go │ └── readme.md ├── id_70 │ └── NOTE.md ├── id_71 │ ├── LeetCode_441_71.js │ ├── LeetCode_687_71.js │ └── NOTE.md ├── id_72 │ ├── LeetCode_21_72.java │ ├── LeetCode_687_72.java │ └── NOTE.md ├── id_73 │ └── NOTE.md ├── id_74 │ ├── LeetCode_50_74.java │ ├── LeetCode_83_74.java │ └── NOTE.md ├── id_75 │ ├── LeetCode_21_75.java │ ├── LeetCode_24_75.java │ ├── LeetCode_83_75.java │ ├── LeetCode_905_75.java │ ├── LeetCode_922_75.java │ └── NOTE.md ├── id_76 │ ├── LeetCode_20_6.C++ │ ├── LeetCode_83_6.C++ │ ├── LeetCode_88_6.C++ │ └── NOTE.md ├── id_77 │ ├── NOTE.md │ ├── leet_code.md │ ├── leetcode_153_077.java │ ├── leetcode_20_077.java │ ├── leetcode_21_077.java │ ├── leetcode_24_077.java │ ├── leetcode_25_077 .java │ ├── leetcode_33_077 .java │ ├── leetcode_33_077.java │ ├── leetcode_496_077.java │ ├── leetcode_81_077.java │ ├── leetcode_83_077.java │ ├── leetcode_905_077.java │ └── leetcode_922_077.java ├── id_78 │ ├── LeetCode_24_78.c │ ├── LeetCode_50_78.c │ └── NOTE.md ├── id_79 │ └── NOTE.md ├── id_8 │ └── NOTE.md ├── id_80 │ └── NOTE.md ├── id_81 │ ├── LeetCode_20_81.java │ ├── LeetCode_21_81.java │ ├── LeetCode_242_81.java │ ├── LeetCode_441_81.java │ ├── LeetCode_83_81.java │ ├── LeetCode_905_81.java │ ├── LeetCode_922_81.java │ └── NOTE.md ├── id_82 │ ├── NOTE.md │ ├── 二叉树 │ │ ├── LeetCode_236_82.java │ │ ├── LeetCode_267_82.java │ │ ├── Main.java │ │ └── ReadMe.md │ └── 链表 │ │ ├── LeetCode_142_82.java │ │ ├── LeetCode_21_82.java │ │ ├── LeetCode_24_82.java │ │ ├── LeetCode_25_82.java │ │ ├── LeetCode_83_82.java │ │ ├── Main.java │ │ └── ReadMe.md ├── id_83 │ ├── LeetCode_83_324.swift │ ├── LeetCode_83_50.swift │ └── NOTE.md ├── id_84 │ ├── LeetCode_25_84.java │ ├── LeetCode_905_84.java │ └── NOTE.md ├── id_85 │ ├── LeetCode_142_85.java │ ├── LeetCode_153_85.java │ ├── LeetCode_21_85.java │ ├── LeetCode_24_85.java │ ├── LeetCode_25_85.java │ ├── LeetCode_324_85.java │ ├── LeetCode_33_85.java │ ├── LeetCode_503_85.java │ ├── LeetCode_50_85.java │ ├── LeetCode_698_85.java │ ├── LeetCode_83_85.java │ ├── LeetCode_905_85.java │ ├── ListNode.java │ └── NOTE.md ├── id_86 │ ├── LeetCode_083_086.c │ ├── LeetCode_083_086.cs │ ├── LeetCode_083_086.py │ ├── LeetCode_905_086.c │ ├── LeetCode_905_086.cs │ ├── LeetCode_905_086.py │ ├── LeetCode_922_086.c │ ├── LeetCode_922_086.cs │ ├── LeetCode_922_086.py │ └── NOTE.md ├── id_87 │ ├── LeetCode_24_87.java │ ├── LeetCode_33_87.java │ └── NOTE.md ├── id_88 │ ├── Leetcode_020_088.cpp │ ├── Leetcode_021_088.cpp │ ├── Leetcode_024_088.cpp │ ├── Leetcode_083_088.cpp │ ├── Leetcode_687_088.cpp │ ├── Leetcode_905_088.cpp │ ├── Leetcode_922_088.cpp │ └── NOTE.md ├── id_89 │ └── NOTE.md ├── id_9 │ ├── LeetCode_687_9.cs │ ├── LeetCode_83_9.cs │ └── NOTE.md ├── id_90 │ ├── LeetCode_20_90.java │ ├── LeetCode_83_90.java │ └── NOTE.md ├── id_91 │ ├── LeetCode_242_091.java │ ├── LeetCode_441_091.java │ └── NOTE.md ├── id_92 │ └── NOTE.md ├── id_93 │ └── NOTE.md ├── id_94 │ ├── LeetCode_83_094.py.py │ ├── LeetCode_905_094.py │ └── NOTE.md ├── id_95 │ ├── LeetCode_20_95.java │ ├── LeetCode_83_95.java │ ├── NOTE.md │ └── test.txt ├── id_96 │ └── NOTE.md ├── id_97 │ └── NOTE.md ├── id_98 │ └── NOTE.md └── id_99 │ └── NOTE.md ├── Week_02 ├── id_0 │ └── NOTE.md ├── id_1 │ ├── LeetCode_236_1.java │ ├── LeetCode_692_1.java │ └── NOTE.md ├── id_10 │ └── NOTE.md ├── id_100 │ ├── LeetCode_242_100.java │ ├── LeetCode_671_100.java │ ├── LeetCode_783_100.java │ └── NOTE.md ├── id_101 │ └── NOTE.md ├── id_102 │ ├── NOTE.md │ ├── leetcode_236_102.cpp │ ├── leetcode_671_102.cpp │ └── leetcode_783_102.cpp ├── id_103 │ ├── .idea │ │ └── workspace.xml │ └── NOTE.md ├── id_104 │ └── NOTE.md ├── id_105 │ └── NOTE.md ├── id_106 │ └── NOTE.md ├── id_107 │ └── NOTE.md ├── id_108 │ ├── LeetCode_242_108.java │ ├── LeetCode_609_108.java │ ├── LeetCode_692_108.java │ └── NOTE.md ├── id_109 │ ├── LeetCode_242_109.java │ ├── LeetCode_783_109.java │ └── NOTE.md ├── id_11 │ └── NOTE.md ├── id_110 │ └── NOTE.md ├── id_111 │ └── NOTE.md ├── id_112 │ └── NOTE.md ├── id_113 │ ├── NOTE.md │ ├── leetcode_236_113.java │ ├── leetcode_236_113_dup.java │ ├── leetcode_692_113.java │ └── leetcode_692_113_dup.java ├── id_114 │ └── NOTE.md ├── id_115 │ ├── Leetcode_153_115_java.java │ ├── Leetcode_262_115_java.java │ ├── Leetcode_609_115_java.java │ ├── Leetcode_692_115_java.java │ └── NOTE.md ├── id_116 │ └── NOTE.md ├── id_117 │ ├── LeetCode_236_117.go │ ├── LeetCode_236_117_test.go │ ├── LeetCode_242_117.go │ ├── LeetCode_242_117_test.go │ ├── LeetCode_609_117.go │ ├── LeetCode_609_117_test.go │ ├── LeetCode_671_117.go │ ├── LeetCode_671_117_test.go │ ├── LeetCode_692_117.go │ ├── LeetCode_692_117_test.go │ ├── LeetCode_783_117.go │ ├── LeetCode_783_117_test.go │ ├── LeetCode_863_117.go │ ├── LeetCode_863_117_test.go │ ├── LeetCode_938_117.go │ ├── LeetCode_938_117_test.go │ ├── NOTE.md │ └── TreeNode.go ├── id_118 │ ├── NOTE.md │ ├── img │ │ ├── 图示-263.png │ │ ├── 图示-671.png │ │ ├── 图示-863.png │ │ └── 思维导图-263.671.863.png │ ├── leetcode_236_118.java │ ├── leetcode_242_118.java │ ├── leetcode_671_118.java │ ├── leetcode_692_118.java │ └── leetcode_863_118.java ├── id_119 │ ├── LeetCode_671_119.cpp │ ├── LeetCode_692_119.cpp │ └── NOTE.md ├── id_12 │ └── NOTE.md ├── id_120 │ └── NOTE.md ├── id_121 │ ├── LeetCode_242_121.java │ ├── LeetCode_671_121.java │ ├── LeetCode_687_121.java │ └── NOTE.md ├── id_122 │ ├── LeetCode_236_122.py │ ├── LeetCode_242_122.php │ ├── LeetCode_671_122.php │ └── NOTE.md ├── id_123 │ ├── LeetCode_242_123.go │ ├── LeetCode_242_123_test.go │ ├── LeetCode_671_123.go │ ├── LeetCode_671_123_test.go │ ├── LeetCode_783_123.go │ ├── LeetCode_783_123_test.go │ ├── NOTE.md │ └── TreeNode.go ├── id_124 │ ├── LeetCode_609_124.java │ ├── LeetCode_671_124.java │ ├── LeetCode_692_124.java │ ├── LeetCode_783_124.java │ └── NOTE.md ├── id_125 │ ├── LeetCode_242_125.c │ ├── LeetCode_692_125.c │ └── NOTE.md ├── id_126 │ └── NOTE.md ├── id_127 │ └── NOTE.md ├── id_128 │ ├── LeetCode_242_128.go │ ├── LeetCode_671_128.go │ └── NOTE.md ├── id_129 │ ├── LeetCode_236_129.java │ ├── LeetCode_242_129.java │ ├── LeetCode_609_129.java │ ├── LeetCode_671_129.java │ ├── LeetCode_692_129.java │ ├── NOTE.md │ └── TreeNode.java ├── id_13 │ ├── LeetCode_242_13.java │ ├── LeetCode_671_13.java │ ├── LeetCode_783_13.java │ └── NOTE.md ├── id_130 │ ├── LeetCode_242_130.js │ ├── LeetCode_692_130.js │ └── NOTE.md ├── id_131 │ ├── LeetCode_236_131.cpp │ ├── LeetCode_242_131.cpp │ ├── LeetCode_609_131.cpp │ ├── LeetCode_671_131.cpp │ ├── LeetCode_692_131.cpp │ ├── LeetCode_783_131.cpp │ └── NOTE.md ├── id_132 │ └── NOTE.md ├── id_133 │ └── NOTE.md ├── id_134 │ ├── LeetCode_220_134.java │ ├── LeetCode_242_134.java │ ├── LeetCode_671_134.java │ ├── LeetCode_692_134.java │ ├── LeetCode_783_134.java │ ├── LeetCode_938_134.java │ └── NOTE.md ├── id_135 │ ├── LeetCode_242_135.java │ ├── LeetCode_692_135.java │ └── NOTE.md ├── id_136 │ ├── LeetCode_242_136.js │ ├── LeetCode_671_136.js │ └── NOTE.md ├── id_137 │ ├── LeetCode_242_137.c │ ├── LeetCode_671_137.py │ ├── LeetCode_692_137.c │ └── NOTE.md ├── id_138 │ └── NOTE.md ├── id_139 │ ├── LeetCode_242_139.java │ ├── LeetCode_671_139.java │ └── NOTE.md ├── id_14 │ └── NOTE.md ├── id_140 │ ├── Leetcode_671_140.java │ ├── Leetcode_783_140.java │ └── NOTE.md ├── id_141 │ └── NOTE.md ├── id_142 │ ├── LeetCode_242_142.java │ ├── LeetCode_671_142.java │ ├── LeetCode_692_142.java │ └── NOTE.md ├── id_143 │ └── NOTE.md ├── id_144 │ └── NOTE.md ├── id_145 │ └── NOTE.md ├── id_146 │ └── NOTE.md ├── id_147 │ └── NOTE.md ├── id_148 │ └── NOTE.md ├── id_149 │ └── NOTE.md ├── id_15 │ └── NOTE.md ├── id_150 │ └── NOTE.md ├── id_151 │ └── NOTE.md ├── id_152 │ └── NOTE.md ├── id_153 │ └── NOTE.md ├── id_154 │ └── NOTE.md ├── id_155 │ └── NOTE.md ├── id_156 │ └── NOTE.md ├── id_157 │ └── NOTE.md ├── id_158 │ └── NOTE.md ├── id_159 │ └── NOTE.md ├── id_16 │ ├── LeetCode_236_16.java │ ├── LeetCode_671_16.java │ └── NOTE.md ├── id_160 │ └── NOTE.md ├── id_161 │ └── NOTE.md ├── id_162 │ └── NOTE.md ├── id_163 │ └── NOTE.md ├── id_164 │ └── NOTE.md ├── id_165 │ └── NOTE.md ├── id_166 │ └── NOTE.md ├── id_167 │ └── NOTE.md ├── id_168 │ └── NOTE.md ├── id_17 │ └── NOTE.md ├── id_18 │ └── NOTE.md ├── id_19 │ └── NOTE.md ├── id_2 │ ├── LeetCode_671_2.cs │ ├── LeetCode_783_2.cs │ └── NOTE.md ├── id_20 │ └── NOTE.md ├── id_21 │ └── NOTE.md ├── id_22 │ └── NOTE.md ├── id_23 │ └── NOTE.md ├── id_24 │ ├── LeetCode_671_024.rb │ ├── Leetcode_692_24.rb │ └── NOTE.md ├── id_25 │ └── NOTE.md ├── id_26 │ ├── Leetcode_236_26.java │ ├── Leetcode_242_26.java │ ├── Leetcode_609_26.java │ ├── Leetcode_671_26.java │ ├── Leetcode_692_26.java │ ├── Leetcode_863_26.java │ └── NOTE.md ├── id_27 │ ├── LeetCode_236_027.java │ ├── LeetCode_242_027.java │ ├── LeetCode_609_027.java │ ├── LeetCode_671_027.java │ ├── LeetCode_692_027.java │ ├── LeetCode_783_027.java │ ├── LeetCode_938_027.java │ └── NOTE.md ├── id_28 │ └── NOTE.md ├── id_29 │ └── NOTE.md ├── id_3 │ ├── LeetCode_236_3.c │ ├── LeetCode_671_3.c │ └── NOTE.md ├── id_30 │ ├── LeetCode_242_30.java │ ├── LeetCode_671_30.java │ ├── LeetCode_783_30.java │ └── NOTE.md ├── id_31 │ ├── LeetCode_609_031.swift │ ├── LeetCode_671_031.swift │ ├── LeetCode_692_031.swift │ ├── LeetCode_783_031.swift │ └── NOTE.md ├── id_32 │ └── NOTE.md ├── id_33 │ ├── LeetCode_236_33.py │ ├── LeetCode_783_33.py │ └── NOTE.md ├── id_34 │ ├── LeeCode_236_034.cs │ ├── LeeCode_692_034.cs │ └── NOTE.md ├── id_35 │ └── NOTE.md ├── id_36 │ ├── LeetCode_242_036.java │ ├── LeetCode_671_036.java │ └── NOTE.md ├── id_37 │ └── NOTE.md ├── id_38 │ └── NOTE.md ├── id_39 │ ├── LeetCode_242_039.java │ ├── LeetCode_671_039.java │ └── NOTE.md ├── id_4 │ └── NOTE.md ├── id_40 │ ├── LeetCode_242_040.go │ ├── LeetCode_671_040.go │ └── NOTE.md ├── id_41 │ └── NOTE.md ├── id_42 │ └── NOTE.md ├── id_43 │ └── NOTE.md ├── id_44 │ ├── LeetCode_671_044.java │ ├── LeetCode_692_044.java │ └── NOTE.md ├── id_45 │ └── NOTE.md ├── id_46 │ ├── NOTE.md │ ├── leetcode_236_046.cpp │ ├── leetcode_671_046.cpp │ ├── leetcode_692_046.cpp │ ├── leetcode_783_046.cpp │ └── leetcode_938_046.cpp ├── id_47 │ └── NOTE.md ├── id_48 │ └── NOTE.md ├── id_49 │ ├── LeetCode_609_49.java │ ├── LeetCode_671_49.java │ └── NOTE.md ├── id_5 │ └── NOTE.md ├── id_50 │ └── NOTE.md ├── id_51 │ └── NOTE.md ├── id_52 │ └── NOTE.md ├── id_53 │ ├── LeetCode_242_53.java │ ├── LeetCode_671_53.java │ └── NOTE.md ├── id_54 │ ├── LeetCode_242_54.java │ ├── LeetCode_671_54.java │ ├── LeetCode_783_54.java │ └── NOTE.md ├── id_55 │ └── NOTE.md ├── id_56 │ ├── LeetCode_242_56.cpp │ ├── LeetCode_671_56.cpp │ ├── LeetCode_692_56.cpp │ └── NOTE.md ├── id_57 │ ├── NOTE.md │ ├── leetcode_242_057.cpp │ └── leetcode_671_057.cpp ├── id_58 │ ├── LeetCode_242_058.java │ ├── LeetCode_692_058.java │ └── NOTE.md ├── id_59 │ └── NOTE.md ├── id_6 │ ├── LeetCode_236_6.java │ ├── LeetCode_242_6.java │ ├── LeetCode_609_6.java │ ├── LeetCode_671_6.java │ ├── LeetCode_783_6.java │ ├── LeetCode_938_6.java │ └── NOTE.md ├── id_60 │ └── NOTE.md ├── id_61 │ ├── NOTE.md │ ├── leetcode_236_061.h │ ├── leetcode_242_061.h │ ├── leetcode_671_061.h │ ├── leetcode_692_061.h │ └── leetcode_783_061.h ├── id_62 │ ├── LeetCode_783_62.c │ ├── LeetCode_863_62.cpp │ └── NOTE.md ├── id_63 │ ├── LeetCode_242_63.java │ ├── LeetCode_692_63.java │ └── NOTE.md ├── id_64 │ ├── LeetCode_242_64.js │ ├── LeetCode_671_64.js │ ├── LeetCode_692_64.js │ ├── LeetCode_938_64.js │ └── NOTE.md ├── id_65 │ ├── LeetCode_242_65.java │ ├── LeetCode_671_65.java │ ├── LeetCode_783_65.java │ └── NOTE.md ├── id_66 │ └── NOTE.md ├── id_67 │ ├── LeetCode_242_67.java │ ├── LeetCode_671_67.java │ ├── LeetCode_783_67.java │ └── NOTE.md ├── id_68 │ └── NOTE.md ├── id_69 │ ├── LeetCode_242_69.java │ ├── LeetCode_692_69.java │ └── NOTE.md ├── id_7 │ ├── LeetCode_242_7.go │ ├── LeetCode_671_7.go │ ├── NOTE.md │ ├── geek_test.go │ ├── readme.md │ └── type.go ├── id_70 │ └── NOTE.md ├── id_71 │ ├── NOTE.md │ ├── leetCode_671_71.js │ └── leetCode_783_71.js ├── id_72 │ ├── LeetCode_242_72.java │ ├── LeetCode_692_72.java │ ├── LeetCode_938_72.java │ └── NOTE.md ├── id_73 │ └── NOTE.md ├── id_74 │ ├── LeetCode_692_74.java │ ├── LeetCode_938_74.java │ └── NOTE.md ├── id_75 │ ├── LeetCode_236_75.java │ ├── LeetCode_242_75.java │ ├── LeetCode_671_75.java │ ├── LeetCode_692_75.java │ ├── LeetCode_783_75.java │ └── NOTE.md ├── id_76 │ └── NOTE.md ├── id_77 │ ├── NOTE.md │ ├── leetcode_236_077.java │ ├── leetcode_242_077.java │ ├── leetcode_609_077.java │ ├── leetcode_671_077.java │ └── leetcode_692_077.java ├── id_78 │ ├── LeetCode_236_78.cpp │ ├── LeetCode_938_78.cpp │ └── NOTE.md ├── id_79 │ └── NOTE.md ├── id_8 │ └── NOTE.md ├── id_80 │ └── NOTE.md ├── id_81 │ ├── LeetCode_671_81.java │ ├── LeetCode_692_81.java │ └── NOTE.md ├── id_82 │ └── NOTE.md ├── id_83 │ └── NOTE.md ├── id_84 │ └── NOTE.md ├── id_85 │ ├── LeetCode_242_85.java │ ├── LeetCode_671_85.java │ ├── LeetCode_692_85.java │ ├── NOTE.md │ └── TreeNode.java ├── id_86 │ ├── LeetCode_242_086.c │ ├── LeetCode_242_086.cs │ ├── LeetCode_242_086.py │ ├── LeetCode_671_086.cs │ └── NOTE.md ├── id_87 │ ├── LeetCode_692_87.java │ ├── LeetCode_863_87.java │ └── NOTE.md ├── id_88 │ ├── Leetcode_236_088.cpp │ ├── Leetcode_242_088.cpp │ ├── Leetcode_671_088.cpp │ ├── Leetcode_692_088.txt │ ├── Leetcode_783_088.cpp │ ├── Leetcode_863_088.txt │ ├── Leetcode_938_088.cpp │ └── NOTE.md ├── id_89 │ └── NOTE.md ├── id_9 │ ├── LeetCode_783_9.cs │ ├── LeetCode_863_9.cs │ └── NOTE.md ├── id_90 │ ├── LeetCode_236_90.java │ ├── LeetCode_267_90.java │ └── NOTE.md ├── id_91 │ ├── LeetCode_242_091.java │ ├── LeetCode_671_091.java │ └── NOTE.md ├── id_92 │ └── NOTE.md ├── id_93 │ └── NOTE.md ├── id_94 │ ├── LeetCode_242_094.py │ ├── LeetCode_671_094.java │ └── NOTE.md ├── id_95 │ ├── LeetCode_609_95.java │ ├── LeetCode_692_95.java │ └── NOTE.md ├── id_96 │ └── NOTE.md ├── id_97 │ └── NOTE.md ├── id_98 │ └── NOTE.md └── id_99 │ └── NOTE.md ├── Week_03 ├── id_0 │ └── NOTE.md ├── id_1 │ ├── LeetCode_429_1.java │ ├── Leetcode_200_1.java │ └── NOTE.md ├── id_10 │ └── NOTE.md ├── id_100 │ ├── LeetCode_104_100 │ ├── LeetCode_703_100 │ └── NOTE.md ├── id_101 │ └── NOTE.md ├── id_102 │ ├── NOTE.md │ ├── leetcode_104_102.cpp │ ├── leetcode_429_102.cpp │ ├── leetcode_703_102.cpp │ └── leetcode_997_102.cpp ├── id_103 │ └── NOTE.md ├── id_104 │ └── NOTE.md ├── id_105 │ └── NOTE.md ├── id_106 │ └── NOTE.md ├── id_107 │ └── NOTE.md ├── id_108 │ ├── LeetCode_210_108.java │ ├── LeetCode_703_108.java │ ├── LeetCode_997_108.java │ └── NOTE.md ├── id_109 │ └── NOTE.md ├── id_11 │ └── NOTE.md ├── id_110 │ └── NOTE.md ├── id_111 │ └── NOTE.md ├── id_112 │ └── NOTE.md ├── id_113 │ ├── NOTE.md │ ├── leetcode_104_113.java │ └── leetcode_373_113.java ├── id_114 │ └── NOTE.md ├── id_115 │ ├── Leetcode_104_115.java │ ├── Leetcode_373_115.java │ ├── Leetcode_703_115.java │ └── NOTE.md ├── id_116 │ └── NOTE.md ├── id_117 │ ├── Helper.go │ ├── LeetCode_104_117.go │ ├── LeetCode_104_117_test.go │ ├── LeetCode_200_117.go │ ├── LeetCode_200_117_test.go │ ├── LeetCode_210_117.go │ ├── LeetCode_210_117_test.go │ ├── LeetCode_310_117.go │ ├── LeetCode_310_117_test.go │ ├── LeetCode_429_117.go │ ├── LeetCode_429_117_test.go │ ├── LeetCode_802_117.go │ ├── LeetCode_802_117_test.go │ ├── LeetCode_997_117.go │ ├── LeetCode_997_117_test.go │ └── NOTE.md ├── id_118 │ ├── NOTE.md │ ├── leetcode_207_118.java │ ├── leetcode_210_118.java │ ├── leetcode_924_118.java │ ├── leetcode_928_118.java │ ├── leetcode_997_118.java │ └── src │ │ ├── 928草稿.pdf │ │ ├── 字符串匹配-图例.pdf │ │ └── 字符串匹配-思维导图.pdf ├── id_119 │ ├── LeetCode_104_119.cpp │ ├── LeetCode_373_119.cpp │ ├── LeetCode_429_119.cpp │ ├── LeetCode_589.119.cpp │ ├── LeetCode_590.119.cpp │ ├── LeetCode_703_119.cpp │ └── NOTE.md ├── id_12 │ └── NOTE.md ├── id_120 │ └── NOTE.md ├── id_121 │ ├── LeetCode_104_121.java │ ├── LeetCode_429_121.java │ └── NOTE.md ├── id_122 │ ├── LeetCode_104_122.php │ ├── LeetCode_200_122.php │ └── NOTE.md ├── id_123 │ ├── LeetCode_104_123.go │ ├── LeetCode_104_123_test.go │ ├── LeetCode_997_123.go │ ├── LeetCode_997_123_test.go │ └── NOTE.md ├── id_124 │ ├── LeetCode_104_124.java │ ├── LeetCode_429_124.java │ └── NOTE.md ├── id_125 │ └── NOTE.md ├── id_126 │ └── NOTE.md ├── id_127 │ └── NOTE.md ├── id_128 │ ├── LeetCode_703_128.go │ ├── LeetCode_997_128.go │ └── NOTE.md ├── id_129 │ ├── LeetCode_104_129.java │ ├── LeetCode_373_129.java │ ├── LeetCode_703_129.java │ ├── NOTE.md │ └── TreeNode.java ├── id_13 │ └── NOTE.md ├── id_130 │ ├── LeetCode_703_130.js │ ├── LeetCode_997_130.js │ └── NOTE.md ├── id_131 │ ├── LeetCode_104_131.cpp │ ├── LeetCode_703_131.cpp │ ├── LeetCode_997_131.cpp │ └── NOTE.md ├── id_132 │ └── NOTE.md ├── id_133 │ └── NOTE.md ├── id_134 │ ├── LeetCode_134_104.java │ ├── LeetCode_134_295.java │ ├── LeetCode_703_134.java │ └── NOTE.md ├── id_135 │ ├── LeetCode_703_135.java │ ├── LeetCode_997_135.java │ └── NOTE.md ├── id_136 │ ├── LeetCode_104_136.js │ ├── LeetCode_429_136.js │ └── NOTE.md ├── id_137 │ └── NOTE.md ├── id_138 │ └── NOTE.md ├── id_139 │ ├── Leetcode_139_703.java │ ├── Leetcode_139_997.java │ └── NOTE.md ├── id_14 │ └── NOTE.md ├── id_140 │ ├── Leetcode_104_140.java │ ├── Leetcode_373_140.java │ └── NOTE.md ├── id_141 │ └── NOTE.md ├── id_142 │ ├── LeetCode_429_142.java │ ├── LeetCode_997_142.java │ └── NOTE.md ├── id_143 │ └── NOTE.md ├── id_144 │ └── NOTE.md ├── id_145 │ └── NOTE.md ├── id_146 │ └── NOTE.md ├── id_147 │ └── NOTE.md ├── id_148 │ └── NOTE.md ├── id_149 │ └── NOTE.md ├── id_15 │ └── NOTE.md ├── id_150 │ └── NOTE.md ├── id_151 │ └── NOTE.md ├── id_152 │ └── NOTE.md ├── id_153 │ └── NOTE.md ├── id_154 │ └── NOTE.md ├── id_155 │ └── NOTE.md ├── id_156 │ └── NOTE.md ├── id_157 │ └── NOTE.md ├── id_158 │ └── NOTE.md ├── id_159 │ └── NOTE.md ├── id_16 │ ├── LeetCode_210_16.java │ ├── LeetCode_997_16.java │ └── NOTE.md ├── id_160 │ └── NOTE.md ├── id_161 │ └── NOTE.md ├── id_162 │ └── NOTE.md ├── id_163 │ └── NOTE.md ├── id_164 │ └── NOTE.md ├── id_165 │ └── NOTE.md ├── id_166 │ └── NOTE.md ├── id_167 │ └── NOTE.md ├── id_168 │ └── NOTE.md ├── id_17 │ └── NOTE.md ├── id_18 │ └── NOTE.md ├── id_19 │ └── NOTE.md ├── id_2 │ ├── LeetCode_104_2.cs │ ├── LeetCode_997_2.cs │ └── NOTE.md ├── id_20 │ └── NOTE.md ├── id_21 │ └── NOTE.md ├── id_22 │ └── NOTE.md ├── id_23 │ └── NOTE.md ├── id_24 │ ├── NOTE.md │ ├── leetcode_703_24.rb │ └── leetcode_997_024.rb ├── id_25 │ └── NOTE.md ├── id_26 │ ├── Leetcode_703_26.java │ ├── Leetcode_997_26.java │ └── NOTE.md ├── id_27 │ ├── LeetCode_104_027.java │ ├── LeetCode_997_027.java │ └── NOTE.md ├── id_28 │ └── NOTE.md ├── id_29 │ └── NOTE.md ├── id_3 │ ├── LeetCode_703_3.c │ ├── LeetCode_997_3.c │ └── NOTE.md ├── id_30 │ ├── LeetCode_104_30.java │ ├── LeetCode_429_30.java │ ├── LeetCode_703_30.java │ ├── LeetCode_997_30.java │ └── NOTE.md ├── id_31 │ ├── LeetCode_104_031.swift │ ├── LeetCode_703_031.swift │ ├── LeetCode_997_031.swift │ └── NOTE.md ├── id_32 │ └── NOTE.md ├── id_33 │ ├── LeetCode_104_33.py │ ├── LeetCode_997_33.py │ └── NOTE.md ├── id_34 │ ├── LeetCode_200_34.cs │ ├── LeetCode_295_34.cs │ ├── LeetCode_827_34.cs │ └── NOTE.md ├── id_35 │ └── NOTE.md ├── id_36 │ ├── LeetCode_104_036.java │ ├── LeetCode_703_036.java │ └── NOTE.md ├── id_37 │ └── NOTE.md ├── id_38 │ └── NOTE.md ├── id_39 │ ├── LeetCode_104_039.java │ ├── LeetCode_703_039.java │ └── NOTE.md ├── id_4 │ └── NOTE.md ├── id_40 │ ├── LeetCode_703_040.go │ ├── LeetCode_997_040.go │ └── NOTE.md ├── id_41 │ └── NOTE.md ├── id_42 │ └── NOTE.md ├── id_43 │ └── NOTE.md ├── id_44 │ ├── LeetCode_703_044.java │ ├── LeetCode_997_044.java │ └── NOTE.md ├── id_45 │ └── NOTE.md ├── id_46 │ ├── NOTE.md │ ├── leetcode_210_046.cpp │ ├── leetcode_373_046.cpp │ ├── leetcode_429_046.cpp │ ├── leetcode_703_046.cpp │ └── leetcode_997_046.cpp ├── id_47 │ └── NOTE.md ├── id_48 │ └── NOTE.md ├── id_49 │ ├── LeetCode_104_49.java │ ├── LeetCode_703_49.java │ ├── LeetCode_997_49.java │ └── NOTE.md ├── id_5 │ └── NOTE.md ├── id_50 │ └── NOTE.md ├── id_51 │ └── NOTE.md ├── id_52 │ └── NOTE.md ├── id_53 │ ├── LeetCode_703_053.java │ ├── LeetCode_997_053.java │ └── NOTE.md ├── id_54 │ ├── LeetCode_104_54.java │ ├── LeetCode_429_54.java │ ├── LeetCode_703_54.java │ ├── LeetCode_997_54.java │ └── NOTE.md ├── id_55 │ └── NOTE.md ├── id_56 │ ├── LeetCode_104_056.cpp │ ├── LeetCode_703_056.cpp │ ├── LeetCode_997_056.cpp │ └── NOTE.md ├── id_57 │ └── NOTE.md ├── id_58 │ ├── LeetCode_703_058.java │ ├── LeetCode_997_058.java │ └── NOTE.md ├── id_59 │ └── NOTE.md ├── id_6 │ ├── LeetCode_104_6.java │ ├── LeetCode_210_6.java │ ├── LeetCode_310_6.java │ ├── LeetCode_373_6.java │ ├── LeetCode_429_6.java │ ├── LeetCode_703_6.java │ ├── LeetCode_802_6.java │ ├── LeetCode_997_6.java │ └── NOTE.md ├── id_60 │ └── NOTE.md ├── id_61 │ └── NOTE.md ├── id_62 │ ├── LeetCode_104_62.cpp │ ├── LeetCode_703_62.cpp │ └── NOTE.md ├── id_63 │ ├── LeetCode_104_63.java │ ├── LeetCode_429_63.java │ └── NOTE.md ├── id_64 │ ├── LeetCode_104_64.js │ ├── LeetCode_200_64.js │ └── NOTE.md ├── id_65 │ ├── LeetCode_703_065.java │ ├── LeetCode_997_065.java │ └── NOTE.md ├── id_66 │ └── NOTE.md ├── id_67 │ ├── LeetCode_104_67.java │ ├── LeetCode_429_67.java │ ├── LeetCode_703_67.java │ ├── LeetCode_997_67.java │ └── NOTE.md ├── id_68 │ └── NOTE.md ├── id_69 │ ├── LeetCode_104_69.java │ ├── LeetCode_429_69.java │ ├── LeetCode_703_69.java │ └── NOTE.md ├── id_7 │ ├── LeetCode_104_7.go │ ├── LeetCode_997_7.go │ ├── NOTE.md │ ├── geek_test.go │ ├── readme.md │ └── type.go ├── id_70 │ └── NOTE.md ├── id_71 │ ├── NOTE.md │ ├── leetCode_104_71.js │ └── leetCode_997_71.js ├── id_72 │ ├── LeetCode_104_72.java │ ├── LeetCode_200_72.java │ ├── LeetCode_210_72.java │ ├── LeetCode_373_72.java │ ├── LeetCode_429_72.java │ ├── LeetCode_529_72.java │ ├── LeetCode_703_72.java │ ├── LeetCode_802_72.java │ └── NOTE.md ├── id_73 │ └── NOTE.md ├── id_74 │ ├── LeetCode_200_74.java │ ├── LeetCode_373_74.java │ └── NOTE.md ├── id_75 │ ├── LeetCode_104_75.java │ ├── LeetCode_210_75.java │ ├── LeetCode_373_75.java │ ├── LeetCode_429_75.java │ ├── LeetCode_703_75.java │ ├── LeetCode_997_75.java │ └── NOTE.md ├── id_76 │ └── NOTE.md ├── id_77 │ ├── NOTE.md │ ├── leetcode_104_077.java │ ├── leetcode_200__077.java │ ├── leetcode_210__077.java │ ├── leetcode_429__077.java │ ├── leetcode_703__077.java │ ├── leetcode_802__077.java │ └── leetcode_997__077.java ├── id_78 │ ├── LeetCode_373_78.cpp │ ├── LeetCode_703_78.cpp │ └── NOTE.md ├── id_79 │ └── NOTE.md ├── id_8 │ └── NOTE.md ├── id_80 │ └── NOTE.md ├── id_81 │ └── NOTE.md ├── id_82 │ ├── DFS │ │ ├── LeetCode_104_082.java │ │ └── ReadMe │ ├── Main.java │ ├── NOTE.md │ └── 图 │ │ ├── LeetCode_997_082.java │ │ └── ReadMe ├── id_83 │ └── NOTE.md ├── id_84 │ └── NOTE.md ├── id_85 │ ├── LeetCode_200_85.java │ ├── LeetCode_373_85.java │ ├── LeetCode_997_85.java │ └── NOTE.md ├── id_86 │ └── NOTE.md ├── id_87 │ ├── LeetCode_210_87.java │ ├── LeetCode_373_87.java │ └── NOTE.md ├── id_88 │ ├── Leetcode_104_088.cpp │ ├── Leetcode_703_088.cpp │ ├── Leetcode_997_088.java │ └── NOTE.md ├── id_89 │ └── NOTE.md ├── id_9 │ ├── LeetCode_210_9.cs │ ├── LeetCode_997_9.cs │ └── NOTE.md ├── id_90 │ ├── LeetCode_703_090.java │ ├── LeetCode_997_090.java │ └── NOTE.md ├── id_91 │ ├── LeetCode_104_091.java │ ├── LeetCode_703_091.java │ └── NOTE.md ├── id_92 │ └── NOTE.md ├── id_93 │ └── NOTE.md ├── id_94 │ ├── LeetCode_104_094.java │ ├── LeetCode_703_094.java │ └── NOTE.md ├── id_95 │ ├── LeetCode_373_95.java │ ├── LeetCode_997_95.java │ └── NOTE.md ├── id_96 │ └── NOTE.md ├── id_97 │ └── NOTE.md ├── id_98 │ └── NOTE.md └── id_99 │ └── NOTE.md ├── Week_04 ├── LeetCode_169_119.cpp ├── LeetCode_720_119.cpp ├── id_0 │ └── NOTE.md ├── id_1 │ ├── LeetCode_169_1.java │ ├── LeetCode_746_1.java │ └── NOTE.md ├── id_10 │ └── NOTE.md ├── id_100 │ ├── LeetCode_169_100.java │ ├── LeetCode_746_100.java │ └── NOTE.md ├── id_101 │ └── NOTE.md ├── id_102 │ ├── NOTE.md │ ├── leetcode_242_102.cpp │ ├── leetcode_72_102.cpp │ ├── leetcode_746_102.cpp │ └── leetcode_784_012.cpp ├── id_103 │ ├── .gitignore │ ├── NOTE.md │ ├── leetcode_103_169.go │ ├── leetcode_103_455.go │ └── leetcode_103_746.go ├── id_104 │ └── NOTE.md ├── id_105 │ └── NOTE.md ├── id_106 │ └── NOTE.md ├── id_107 │ └── NOTE.md ├── id_108 │ ├── LeetCode_169_108.java │ ├── LeetCode_720_108.java │ ├── LeetCode_746_108.java │ └── NOTE.md ├── id_109 │ └── NOTE.md ├── id_11 │ └── NOTE.md ├── id_110 │ └── NOTE.md ├── id_111 │ └── NOTE.md ├── id_112 │ └── NOTE.md ├── id_113 │ └── NOTE.md ├── id_114 │ └── NOTE.md ├── id_115 │ ├── NOTE.md │ ├── leetcode_309_115.java │ └── leetcode_746_115.java ├── id_116 │ └── NOTE.md ├── id_117 │ └── NOTE.md ├── id_118 │ ├── NOTE.md │ ├── leetcode_121_118.java │ ├── leetcode_122_118.java │ ├── leetcode_123_118.java │ ├── leetcode_455_118.java │ ├── leetcode_720_118.java │ └── src │ │ ├── leetcode-买卖股票问题.pdf │ │ └── 四大算法思想.pdf ├── id_119 │ ├── LeetCode_169_119.cpp │ ├── LeetCode_720_119.cpp │ └── NOTE.md ├── id_12 │ └── NOTE.md ├── id_120 │ └── NOTE.md ├── id_121 │ ├── LeetCode_455_121.java │ ├── LeetCode_720_121.java │ ├── LeetCode_720_121_2.java │ ├── LeetCode_746_121.java │ ├── LeetCode_784_121.java │ └── NOTE.md ├── id_122 │ ├── LeetCode_309_122.php │ ├── LeetCode_746_122.php │ └── NOTE.md ├── id_123 │ ├── LeetCode_455_123.go │ ├── LeetCode_455_123_test.go │ ├── LeetCode_720_123.go │ ├── LeetCode_720_123_test.go │ └── NOTE.md ├── id_124 │ └── NOTE.md ├── id_125 │ └── NOTE.md ├── id_126 │ └── NOTE.md ├── id_127 │ └── NOTE.md ├── id_128 │ ├── LeetCode_169_128.go │ ├── LeetCode_720_128.go │ └── NOTE.md ├── id_129 │ ├── LeetCode_169_129.java │ ├── LeetCode_241_129.java │ └── NOTE.md ├── id_13 │ └── NOTE.md ├── id_130 │ ├── LeetCode_169_130.js │ ├── LeetCode_720_130.js │ └── NOTE.md ├── id_131 │ ├── LeetCode_169_131.cpp │ ├── LeetCode_455_131.cpp │ ├── LeetCode_720_131.cpp │ ├── LeetCode_746_131.cpp │ ├── LeetCode_784_131.cpp │ └── NOTE.md ├── id_132 │ └── NOTE.md ├── id_133 │ └── NOTE.md ├── id_134 │ ├── LeetCode_169_134.java │ ├── LeetCode_211_134.java │ ├── LeetCode_455_134.java │ ├── LeetCode_720_134.java │ ├── LeetCode_784_134.java │ └── NOTE.md ├── id_135 │ └── NOTE.md ├── id_136 │ └── NOTE.md ├── id_137 │ └── NOTE.md ├── id_138 │ └── NOTE.md ├── id_139 │ └── NOTE.md ├── id_14 │ └── NOTE.md ├── id_140 │ ├── Leetcode_720_140.java │ ├── Leetcode_784_140.java │ └── NOTE.md ├── id_141 │ └── NOTE.md ├── id_142 │ ├── LeetCode_455_142.java │ ├── LeetCode_714_142.java │ └── NOTE.md ├── id_143 │ └── NOTE.md ├── id_144 │ └── NOTE.md ├── id_145 │ └── NOTE.md ├── id_146 │ └── NOTE.md ├── id_147 │ └── NOTE.md ├── id_148 │ └── NOTE.md ├── id_149 │ └── NOTE.md ├── id_15 │ └── NOTE.md ├── id_150 │ ├── Leetcode_169_150.cpp │ ├── Leetcode_241_150.cpp │ ├── Leetcode_563_150.cpp │ ├── Leetcode_746_150.cpp │ ├── Leetcodede_455_10.cpp │ └── NOTE.md ├── id_151 │ └── NOTE.md ├── id_152 │ └── NOTE.md ├── id_153 │ └── NOTE.md ├── id_154 │ └── NOTE.md ├── id_155 │ └── NOTE.md ├── id_156 │ └── NOTE.md ├── id_157 │ └── NOTE.md ├── id_158 │ └── NOTE.md ├── id_159 │ └── NOTE.md ├── id_16 │ └── NOTE.md ├── id_160 │ └── NOTE.md ├── id_161 │ └── NOTE.md ├── id_162 │ └── NOTE.md ├── id_163 │ └── NOTE.md ├── id_164 │ └── NOTE.md ├── id_165 │ └── NOTE.md ├── id_166 │ └── NOTE.md ├── id_167 │ └── NOTE.md ├── id_168 │ └── NOTE.md ├── id_17 │ └── NOTE.md ├── id_18 │ └── NOTE.md ├── id_19 │ └── NOTE.md ├── id_2 │ ├── LeetCode_455_2.cs │ ├── LeetCode_784_2.cs │ └── NOTE.md ├── id_20 │ └── NOTE.md ├── id_21 │ └── NOTE.md ├── id_22 │ └── NOTE.md ├── id_23 │ └── NOTE.md ├── id_24 │ └── NOTE.md ├── id_25 │ └── NOTE.md ├── id_26 │ └── NOTE.md ├── id_27 │ ├── LeetCode_746_027.java │ ├── LeetCode_784_027.java │ └── NOTE.md ├── id_28 │ └── NOTE.md ├── id_29 │ └── NOTE.md ├── id_3 │ ├── LeetCode_169_3.c │ ├── LeetCode_720_3.c │ └── NOTE.md ├── id_30 │ ├── LeetCode_169_30.java │ ├── LeetCode_455_30.java │ ├── LeetCode_720_30.java │ ├── LeetCode_746_30.java │ ├── LeetCode_784_30.java │ └── NOTE.md ├── id_31 │ ├── LeetCode_169_031.swift │ ├── LeetCode_455_031.swift │ ├── LeetCode_720_031.swift │ ├── LeetCode_784_031.swift │ └── NOTE.md ├── id_32 │ └── NOTE.md ├── id_33 │ ├── LeetCode_169_33.py │ ├── LeetCode_746_33.py │ └── NOTE.md ├── id_34 │ ├── LeetCode_169_034.cs │ ├── LeetCode_455_034.cs │ └── NOTE.md ├── id_35 │ └── NOTE.md ├── id_36 │ ├── LeetCode_169_036.java │ ├── LeetCode_746_036.java │ └── NOTE.md ├── id_37 │ └── NOTE.md ├── id_38 │ └── NOTE.md ├── id_39 │ ├── LeetCode_455_039.java │ ├── LeetCode_746_039.java │ └── NOTE.md ├── id_4 │ └── NOTE.md ├── id_40 │ ├── LeetCode_169_040.go │ ├── LeetCode_455_040.go │ └── NOTE.md ├── id_41 │ └── NOTE.md ├── id_42 │ └── NOTE.md ├── id_43 │ └── NOTE.md ├── id_44 │ ├── LeetCode_169_044.java │ ├── LeetCode_746_044.java │ └── NOTE.md ├── id_45 │ └── NOTE.md ├── id_46 │ ├── NOTE.md │ ├── leetcode_123_046.cpp │ ├── leetcode_188_046.cpp │ ├── leetcode_72_046.cpp │ └── leetcode_746_046.cpp ├── id_47 │ └── NOTE.md ├── id_48 │ └── NOTE.md ├── id_49 │ ├── LeetCode_169_49.java │ ├── LeetCode_720_49.java │ └── NOTE.md ├── id_5 │ └── NOTE.md ├── id_50 │ └── NOTE.md ├── id_51 │ └── NOTE.md ├── id_52 │ └── NOTE.md ├── id_53 │ ├── LeetCode_169_053.java │ ├── LeetCode_746_053.java │ └── NOTE.md ├── id_54 │ ├── LeetCode_169_54.java │ ├── LeetCode_455_54.java │ ├── LeetCode_720_54.java │ ├── LeetCode_746_54.java │ ├── LeetCode_784_54.java │ └── NOTE.md ├── id_55 │ └── NOTE.md ├── id_56 │ ├── LeetCode_455_056.cpp │ ├── LeetCode_746_056.cpp │ └── NOTE.md ├── id_57 │ └── NOTE.md ├── id_58 │ ├── LeetCode_169_058.java │ ├── LeetCode_455_058.java │ ├── LeetCode_720_058.java │ └── NOTE.md ├── id_59 │ └── NOTE.md ├── id_6 │ ├── LeetCode_241_6.java │ ├── LeetCode_455_6.java │ ├── LeetCode_720_6.java │ ├── LeetCode_746_6.java │ ├── LeetCode_784_6.java │ └── NOTE.md ├── id_60 │ └── NOTE.md ├── id_61 │ └── NOTE.md ├── id_62 │ └── NOTE.md ├── id_63 │ ├── LeetCode_169_63.java │ ├── LeetCode_455_63.java │ └── NOTE.md ├── id_64 │ ├── LeetCode_279_64.js │ ├── LeetCode_455_64.js │ ├── LeetCode_51_64.js │ ├── LeetCode_784_64.js │ └── NOTE.md ├── id_65 │ ├── LeetCode_169_065.java │ ├── LeetCode_720_065.java │ └── NOTE.md ├── id_66 │ └── NOTE.md ├── id_67 │ ├── LeetCode_169_67.java │ ├── LeetCode_455_67.java │ ├── LeetCode_720_67.java │ ├── LeetCode_746_67.java │ ├── LeetCode_784_67.java │ └── NOTE.md ├── id_68 │ └── NOTE.md ├── id_69 │ ├── LeetCode_169_69.java │ ├── LeetCode_720_69.java │ └── NOTE.md ├── id_7 │ ├── LeetCode_146_7.go │ ├── LeetCode_720_7.go │ ├── LeetCode_784_7.go │ ├── NOTE.md │ ├── geek_test.go │ ├── lru_test.go │ └── readme.md ├── id_70 │ └── NOTE.md ├── id_71 │ ├── NOTE.md │ ├── leetCode_169_71.js │ └── leetCode_746_71.js ├── id_72 │ ├── LeetCode_169_72.java │ ├── LeetCode_51_72.java │ ├── LeetCode_720_72.java │ ├── LeetCode_72_72.java │ ├── LeetCode_746.java │ └── NOTE.md ├── id_73 │ └── NOTE.md ├── id_74 │ ├── LeetCode_211_74.java │ ├── LeetCode_241_74.java │ └── NOTE.md ├── id_75 │ └── NOTE.md ├── id_76 │ └── NOTE.md ├── id_77 │ ├── NOTE.md │ ├── leetcode_455_077.java │ └── leetcode_746_077 .java ├── id_78 │ ├── LeetCode_455_78.cpp │ ├── LeetCode_746_78.cpp │ └── NOTE.md ├── id_79 │ └── NOTE.md ├── id_8 │ └── NOTE.md ├── id_80 │ └── NOTE.md ├── id_81 │ └── NOTE.md ├── id_82 │ └── NOTE.md ├── id_83 │ └── NOTE.md ├── id_84 │ └── NOTE.md ├── id_85 │ ├── LeetCode_169_085.java │ ├── LeetCode_455_085.java │ ├── LeetCode_720_085.java │ ├── LeetCode_746_085.java │ ├── LeetCode_784_085.java │ └── NOTE.md ├── id_86 │ └── NOTE.md ├── id_87 │ ├── LeetCode_211_87.java │ ├── LeetCode_241_87.java │ └── NOTE.md ├── id_88 │ ├── Leetcode_169_088.cpp │ ├── Leetcode_720_088.cpp │ └── NOTE.md ├── id_89 │ └── NOTE.md ├── id_9 │ ├── LeetCode_211_9.cs │ ├── LeetCode_720_9.cs │ └── NOTE.md ├── id_90 │ └── NOTE.md ├── id_91 │ ├── LeetCode_169_091.java │ ├── LeetCode_455_091.java │ └── NOTE.md ├── id_92 │ └── NOTE.md ├── id_93 │ └── NOTE.md ├── id_94 │ ├── LeetCode_241_094.py │ ├── LeetCode_455_094.py │ ├── LeetCode_714_094.py │ └── NOTE.md ├── id_95 │ ├── LeetCode_455_95.java │ ├── LeetCode_784_95.java │ └── NOTE.md ├── id_96 │ └── NOTE.md ├── id_97 │ └── NOTE.md ├── id_98 │ └── NOTE.md └── id_99 │ └── NOTE.md ├── 专栏学习 └── 时间复杂度 ├── 时间复杂度 ├── 算法训练营-王争课件 ├── 1. 第一讲 BY WangZheng.pdf ├── 2. 第二讲 BY WangZheng.pdf ├── 3. 第三讲 BY WangZheng.pdf ├── 4. 第四讲 BY WangZheng.pdf ├── 5. 第五讲 BY WangZheng.pdf └── 6. 第六讲 BY WangZheng.pdf ├── 算法训练营课件-陈皓.pdf └── 线下课程笔记整理 ├── 算法训练营第一天.pdf └── 算法训练营第二天.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | *.DS_Store 2 | .idea 3 | .vscode 4 | .vs 5 | -------------------------------------------------------------------------------- /2019.04.27线上答疑要点整理.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/2019.04.27线上答疑要点整理.pdf -------------------------------------------------------------------------------- /Week_01/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/.DS_Store -------------------------------------------------------------------------------- /Week_01/id_0/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_0/TestPush.java: -------------------------------------------------------------------------------- 1 | public class TestPush { 2 | public static void main(String[] args) { 3 | System.out.println("Hello Geekbang~~"); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /Week_01/id_10/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_100/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_101/NOTE.md: -------------------------------------------------------------------------------- 1 | [关于递归的一篇总结文章](https://blog.csdn.net/weixin_38118016/article/details/89368351) 2 | -------------------------------------------------------------------------------- /Week_01/id_102/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_103/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_104/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | ## 链表 4 | 学习了链表的数据结构,在有序链表去重中,学会了不借助其他集合对象,仅用单个链表遍历。 5 | 也使用了借助集合,支持无序链表遍历去重。 6 | ## 数组 7 | 学习了使用&求余。 -------------------------------------------------------------------------------- /Week_01/id_105/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_106/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_107/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_108/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_109/LeetCode_83_109.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @Auther: quanhc 3 | * @Date: 2019-04-20 21:17 4 | * @Description: 5 | */ 6 | public class LeetCode83 { 7 | 8 | public ListNode deleteDuplicates(ListNode head) { 9 | if (head == null || head.next == null){ 10 | return head; 11 | } 12 | if (head.val == head.next.val){ 13 | head.next = head.next.next; 14 | deleteDuplicates(head); 15 | 16 | } 17 | deleteDuplicates(head.next); 18 | return head; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Week_01/id_109/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_11/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_110/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_111/LeetCode_922_111.java: -------------------------------------------------------------------------------- 1 | public int[] sortArrayByParityII(int[] array) { 2 | int[] temp = new int[array.length]; 3 | int t = 0; 4 | int a = 1; 5 | for (int i = 0; i < array.length; i++) { 6 | if (array[i] % 2 == 0) { 7 | temp[t] = array[i]; 8 | t += 2; 9 | } else { 10 | temp[a] = array[i]; 11 | a += 2; 12 | } 13 | } 14 | return temp; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Week_01/id_111/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_112/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_113/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_114/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_115/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_116/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_117/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | ### 工作内容 4 | 1.学习`java` 5 | 2.学习`elastic search` 6 | 7 | **说明:** 8 | 转眼周五了,先完成作业,等会儿练习. 9 | 我不会错过这个与大家一起的学习机会的. 10 | -------------------------------------------------------------------------------- /Week_01/id_119/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_12/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_120/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_121/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | ## week01 4 | - 做题之前先看清楚题目条件,并且要充分利用已知条件 5 | - 写完代码要代入几个边界条件的case 去测试一下 6 | - 有条件一定要画图,帮助自己思考 -------------------------------------------------------------------------------- /Week_01/id_122/LeetCode_21_122.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_122/LeetCode_21_122.php -------------------------------------------------------------------------------- /Week_01/id_122/LeetCode_687_122.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_122/LeetCode_687_122.php -------------------------------------------------------------------------------- /Week_01/id_122/LeetCode_83_122.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_122/LeetCode_83_122.php -------------------------------------------------------------------------------- /Week_01/id_122/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_242_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | import "sort" 4 | 5 | func sortString(s string) string { 6 | charSlice := []rune(s) 7 | sort.Slice(charSlice, func(i, j int) bool { 8 | return charSlice[i] < charSlice[j] 9 | }) 10 | return string(charSlice) 11 | } 12 | 13 | func isAnagram(s string, t string) bool { 14 | return sortString(s) == sortString(t) 15 | } 16 | -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_441_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | func arrangeCoins(n int) int { 4 | if n == 0 { 5 | return 0 6 | } 7 | var low = 1 8 | var high = n/2 + 1 9 | for low <= high { 10 | var mid = low + (high-low)>>1 11 | var sum = (mid + 1) * mid / 2 12 | if sum > n { 13 | high = mid - 1 14 | } else if sum < n { 15 | low = mid + 1 16 | } else if sum == n { 17 | return mid 18 | } 19 | } 20 | return low - 1 21 | } 22 | -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_905_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | func sortArrayByParity(A []int) []int { 4 | evenArr := make([]int, 0) 5 | oddArr := make([]int, 0) 6 | for _, v := range A { 7 | if v%2 == 0 { 8 | evenArr = append(evenArr, v) 9 | } else { 10 | oddArr = append(oddArr, v) 11 | } 12 | } 13 | return append(evenArr, oddArr...) 14 | } 15 | -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_905_123_test.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | ) 7 | 8 | func Test_sortArrayByParity(t *testing.T) { 9 | A := []int{3, 1, 2, 4, 8, 5, 7, 10, 12} 10 | fmt.Printf("sort before: %v\n", A) 11 | B := sortArrayByParity(A) 12 | fmt.Printf("sort after: %v\n", B) 13 | } 14 | -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_922_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | func sortArrayByParityII(A []int) []int { 4 | newArr := make([]int, 0, 20000) 5 | 6 | evenArr := make([]int, 0) 7 | oddArr := make([]int, 0) 8 | for _, v := range A { 9 | if v%2 == 0 { 10 | evenArr = append(evenArr, v) 11 | } else { 12 | oddArr = append(oddArr, v) 13 | } 14 | } 15 | 16 | for i := 0; i < len(evenArr); i++ { 17 | newArr = append(newArr, evenArr[i]) 18 | newArr = append(newArr, oddArr[i]) 19 | } 20 | 21 | return newArr 22 | } 23 | -------------------------------------------------------------------------------- /Week_01/id_123/LeetCode_922_123_test.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func Test_sortArrayByParityII(t *testing.T) { 9 | A := []int{4, 2, 5, 7} 10 | log.Printf("sort before: %v", A) 11 | B := sortArrayByParityII(A) 12 | log.Printf("sort after: %v", B) 13 | } 14 | -------------------------------------------------------------------------------- /Week_01/id_123/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_124/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_125/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_126/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 21题解题思路: 4 | 技巧一:初始化的时候把head节点初始化一个给定的值,这样,后续操作就不用考虑头节点问题,直接排序好了,把最小的赋值给head.next就可以了。 5 | 技巧二:两个链表为空和不为空的判断,循环逻辑依赖判断条件 6 | 7 | 8 | 83题: 9 | 刚开始没有注意到排序以后的链表,所以走了弯路。 10 | 11 | -------------------------------------------------------------------------------- /Week_01/id_127/21.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_127/21.jpeg -------------------------------------------------------------------------------- /Week_01/id_127/83.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_127/83.jpeg -------------------------------------------------------------------------------- /Week_01/id_127/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | ### LeetCode_33_108-83思路: 4 | 5 | 见图片: `83.jpeg` 6 | 7 | ### LeetCode_33_108-21思路: 8 | 9 | -------------------------------------------------------------------------------- /Week_01/id_128/LeetCode_21_128.go: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * type ListNode struct { 4 | * Val int 5 | * Next *ListNode 6 | * } 7 | */ 8 | func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode { 9 | if l1 == nil{ 10 | return l2 11 | } 12 | if l2 == nil{ 13 | return l1 14 | } 15 | var res *ListNode 16 | if l1.Val >= l2.Val{ 17 | res = l2 18 | res.Next = mergeTwoLists(l1, l2.Next) 19 | }else{ 20 | res = l1 21 | res.Next = mergeTwoLists(l1.Next, l2) 22 | } 23 | return res 24 | } 25 | -------------------------------------------------------------------------------- /Week_01/id_128/LeetCode_905_128.go: -------------------------------------------------------------------------------- 1 | func sortArrayByParity(A []int) []int { 2 | i := 0 3 | for j:=0;jnums[i]) min=nums[i]; 10 | } 11 | return min; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Week_01/id_139/LeetCode_81_139.java: -------------------------------------------------------------------------------- 1 | 1,遍历 2 | https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/comments/ 3 | class Solution { 4 | public boolean search(int[] nums, int target) { 5 | for(int i = 0; i List[int]: 3 | s1 = [] 4 | s2 = [] 5 | for a in A: 6 | if a %2 == 0: 7 | s1.append(a) 8 | else: 9 | s2.append(a) 10 | return s1 + s2 11 | -------------------------------------------------------------------------------- /Week_01/id_145/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_146/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_147/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_148/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_149/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_15/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_150/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_151/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_152/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_153/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_154/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_155/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_156/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_157/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_158/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_159/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_16/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_160/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_161/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_162/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_163/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_164/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_165/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_166/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_167/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_168/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_17/LeetCode_905_17.js: -------------------------------------------------------------------------------- 1 | var sortArrayByParity = function(A) { 2 | for (var i=0, j=A.length-1; i=j) break; else i++; 4 | while (A[j]%2 == 1) if (i>=j) break; else j--; 5 | [A[i], A[j]] = [A[j], A[i]]; 6 | } 7 | return A; 8 | }; 9 | 10 | // Runtime: 84 ms, faster than 93.15% of JavaScript online submissions for Sort Array By Parity. 11 | // Memory Usage: 37.3 MB, less than 40.08% of JavaScript online submissions for Sort Array By Parity. -------------------------------------------------------------------------------- /Week_01/id_17/LeetCode_922_17.js: -------------------------------------------------------------------------------- 1 | var sortArrayByParityII = function(A) { 2 | var j = 1; 3 | for (var i=0, j=1; i n && (k -1) * k / 2 < n 12 | return k - 1 13 | break 14 | elsif low > high 15 | return -1 16 | break 17 | elsif k * (k + 1)/2 > n 18 | high = k - 1 19 | else k * (k + 1)/2 < n 20 | low = k + 1 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Week_01/id_25/LeetCode_905_025.rb: -------------------------------------------------------------------------------- 1 | # @param {Integer[]} a 2 | # @return {Integer[]} 3 | def sort_array_by_parity(a) 4 | if a.length < 2 5 | return a 6 | end 7 | 8 | left = [] 9 | right = [] 10 | a.length.times.each do 11 | if a[0].even? 12 | left << a.delete_at(0) 13 | else 14 | right << a.delete_at(0) 15 | end 16 | end 17 | a = left + right 18 | end 19 | -------------------------------------------------------------------------------- /Week_01/id_26/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_26/TreeNode.java: -------------------------------------------------------------------------------- 1 | package com.fanlu.leetcode.binarytree; 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 | -------------------------------------------------------------------------------- /Week_01/id_27/LeetCode_242_027.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isAnagram(String s, String t) { 3 | 4 | if(null == s || null == t) return false; 5 | char[] sArr = s.toCharArray(); 6 | char[] tArr = t.toCharArray(); 7 | if(sArr.length != tArr.length) return false; 8 | Arrays.sort(sArr); 9 | Arrays.sort(tArr); 10 | for(int i=0;i= arrLen) break; 14 | nums[pos++] = tmp[i]; 15 | if (pos>= arrLen) break; 16 | nums[pos++] = tmp[j]; 17 | } 18 | 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Week_01/id_28/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_29/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_3/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 本周投身项目,时间不是很充足,只做了两道简单的算法题,周日如果没事,会补做第一周的其他作业 3 | 做了两道题:83(合并有序链表)和21(删除有序链表中的重复元素) 4 | 心得: 5 | - ListNode *p 只是指针,如果引用未初始化的p, 比如p->next 就会发生访问访问野指针,编译器报segment fault 6 | - 构造测试数据可以通过命令行传参: int main(int argc, char *argv[]) -------------------------------------------------------------------------------- /Week_01/id_30/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 第一周做题学习总结 3 | 4 | - 链表 5 | - 链表注意应用变量的使用 6 | - 递归 7 | - 了解到递归,从上到下和从下到上简单使用和逻辑 8 | - 687 了解到了递归的多种递归组合使用。 9 | - 二分查找 10 | - 441 二分查找的新用法。 -------------------------------------------------------------------------------- /Week_01/id_31/LeetCode_153_031.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LeetCode_153_031.swift 3 | // TestCoding 4 | // 5 | // Created by 龚欢 on 2019/4/15. 6 | // Copyright © 2019 龚欢. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // 时间复杂度 O(n) 12 | class Solution { 13 | func findMin(_ nums: [Int]) -> Int { 14 | guard nums.count > 0 else { return -1 } 15 | if var result = nums.first { 16 | _ = nums.map { result = min(result, $0) } 17 | return result 18 | } 19 | return -1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Week_01/id_31/LeetCode_81_031.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LeetCode_81_031.swift 3 | // TestCoding 4 | // 5 | // Created by 龚欢 on 2019/4/15. 6 | // Copyright © 2019 龚欢. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Solution { 12 | func search(_ nums: [Int], _ target: Int) -> Bool { 13 | return nums.contains(target) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Week_01/id_31/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_32/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_33/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_34/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_35/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_36/LeetCode_441_036_ArrangeCoins.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_36/LeetCode_441_036_ArrangeCoins.java -------------------------------------------------------------------------------- /Week_01/id_36/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_37/LeetCode_153_37.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findMin(int[] nums) { 3 | int low =0; 4 | int high = nums.length-1; 5 | 6 | while(lownums[high]){ 10 | low = mid+1; 11 | }else{ 12 | high = mid; 13 | } 14 | } 15 | 16 | return nums[low]; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Week_01/id_37/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_38/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_39/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_4/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_40/LeetCode_83_040.go: -------------------------------------------------------------------------------- 1 | func deleteDuplicates(head *ListNode) *ListNode { 2 | current := head 3 | for current != nil && current.Next != nil { 4 | if current.Next.Data == current.Data { 5 | current.Next = current.Next.Next 6 | } else { 7 | current = current.Next 8 | } 9 | } 10 | return head 11 | } 12 | -------------------------------------------------------------------------------- /Week_01/id_40/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_41/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_42/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_43/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_44/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_45/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_46/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_47/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 1. 数组题目最外层的遍历是必须的。 3 | 2. 内层的遍历一般可以优化 4 | 1. 查找可以为hash或者二分 -------------------------------------------------------------------------------- /Week_01/id_48/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_49/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | ### 链表 3 | 关于链表的反转,常见解决方法分为**迭代和递归**。 4 | 5 | **迭代**是从前到后依次处理,直到循环到链尾。 6 | 7 | **递归**则相反,它是从链尾逐层返回处理一直到链首。 8 | 9 | 总结来说,链表的反转操作的顺序对于迭代来说就是从链头到链尾,而对于递归则是从链尾到链头。 10 | -------------------------------------------------------------------------------- /Week_01/id_49/Swap_Nodes_in_Pairs.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_49/Swap_Nodes_in_Pairs.jpeg -------------------------------------------------------------------------------- /Week_01/id_5/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_50/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_51/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_52/LeetCode_905_52.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] sortArrayByParity(int[] A) { 3 | int[] result=new int[A.length]; 4 | int j=0; 5 | int k=A.length-1; 6 | for(int i=0;i bool: 3 | a = {')': '(', ']': '[', '}': '{'} 4 | l = [None] 5 | # 遍历s 6 | for i in s: 7 | print(l) 8 | # 判断如果i在a中并且比如说是},那么如果i是否等于{(前部分也就是字典的key) 如果是就pop,如果不是就写入l 9 | if i in a and a[i] == l[-1]: 10 | l.pop() 11 | else: 12 | l.append(i) 13 | return len(l) == 1 -------------------------------------------------------------------------------- /Week_01/id_55/LeetCode_242_55.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def isAnagram(self, s: str, t: str) -> bool: 3 | if len(s) != len(t): 4 | return False 5 | s_array, t_array = [0]*26, [0]*26 6 | for letter in s: 7 | s_array[ord(letter)-97] += 1 8 | for letter in t: 9 | t_array[ord(letter)-97] += 1 10 | return s_array == t_array 11 | 12 | 13 | s = "anagram" 14 | t = "nagaram" 15 | # 实例化 16 | demo = Solution() 17 | print(demo.isAnagram(s, t)) -------------------------------------------------------------------------------- /Week_01/id_55/LeetCode_905_55.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def sortArrayByParity(self, A: List[int]) -> List[int]: 3 | a, b = [], [] 4 | for val in A: 5 | if val % 2 == 0: 6 | a.append(val) 7 | else: 8 | b.append(val) 9 | return a+b -------------------------------------------------------------------------------- /Week_01/id_55/LeetCode_922_55.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def sortArrayByParityII(self, A): 3 | a, b = [], [] 4 | for val in A: 5 | if val % 2 == 0: 6 | a.append(val) 7 | else: 8 | b.append(val) 9 | c, d = 0, 0 10 | for c in A: 11 | A[c] = a[d] 12 | A[c+1] = a[d] 13 | c += 1 14 | d += 2 15 | 16 | return a+b -------------------------------------------------------------------------------- /Week_01/id_55/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_56/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_57/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_58/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 本周的学习总结: 3 | 1、学会了GitHub的pull-requet的使用。平时我们都是直接用git提交,然后merge到master, 4 | 对于github的pull-request的提交形式不太熟悉,通过微信群咨询和同学的帮助,我学会了 5 | 这项功能的使用。 6 | 2、另外感触比较深的如何结合工作和学习任务,本周共布置了16道题,我完成了3道题目。 7 | 虽然完成了,但是还是与之前的心里目标相差很远,希望在接下来的一周,能够每天按质 8 | 按量的完成学习任务。 9 | 3、本周主要学习了链表的功能使用 10 | 83题:删除链表中的所有重复元素 11 | 21题:合并两个排序的链表的链表 12 | 24题:交换两个相邻的结点 13 | 4、通过上面题目的训练,我对链表的题目有了新的认识,对于链表题目的解题方法就是要 14 | 借助画图,拿出笔,简单的画出操作的关系,就可以很好的维护好各个结点关系,避免各种 15 | 找不到后续结点错误。 16 | 5、对于后续的数组、栈、递归、排序的题目,在后续的过程中也要快速完成。 17 | 18 | -------------------------------------------------------------------------------- /Week_01/id_58/TestClass.java: -------------------------------------------------------------------------------- 1 | package algorithm.Week_01.id_58; 2 | 3 | public class TestClass { 4 | 5 | public static void main(String[] args) { 6 | 7 | System.out.println("Hello World!" 8 | 9 | ); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Week_01/id_59/LeetCode_905_059.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def sortArrayByParity(self, A: List[int]) -> List[int]: 3 | low, high = 0, len(A) - 1 4 | while low < high: 5 | if A[low] % 2 > A[high] % 2: 6 | A[low], A[high] = A[high], A[low] 7 | 8 | if A[low] % 2 == 0: 9 | low += 1 10 | 11 | if A[high] % 2 == 1: 12 | high -= 1 13 | 14 | return A -------------------------------------------------------------------------------- /Week_01/id_59/LeetCode_922_059.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def sortArrayByParityII(self, A: List[int]) -> List[int]: 3 | even = 1 4 | for odd in range(0, len(A), 2): 5 | if A[odd] % 2: 6 | while A[even] % 2: 7 | even += 2 8 | A[odd], A[even] = A[even], A[odd] 9 | return A -------------------------------------------------------------------------------- /Week_01/id_59/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 在老师讲课的过程中,以及自己实践的过程中发现,双指针(python中类似的双变量)在算法解体过程中是非常有用的。 -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_21_6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_6/LeetCode_21_6.java -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_324_6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_6/LeetCode_324_6.java -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_441_6.java: -------------------------------------------------------------------------------- 1 | 2 | 3 | // 怎么用二分法没想通 ?? 4 | 5 | 6 | public int arrangeCoins(int n) { 7 | if (n == 0){ 8 | return 0; 9 | } 10 | 11 | // 循环分解,直到剩余数量 < 分解次数+1 12 | int i = 0; 13 | for (i = 1; i < n; i++) { 14 | n -= i; 15 | if (n < i + 1){ 16 | break; 17 | } 18 | } 19 | 20 | return i; 21 | } -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_83_6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_6/LeetCode_83_6.java -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_905_6.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_6/LeetCode_905_6.java -------------------------------------------------------------------------------- /Week_01/id_6/LeetCode_922_6.java: -------------------------------------------------------------------------------- 1 | 2 | // 新建数组,偶数插入偶位置,奇数插入奇位置 3 | // 两个指针分别指向偶、奇位置 4 | public int[] sortArrayByParityII(int[] A) { 5 | int[] B = new int[A.length]; 6 | 7 | int odd = 1; 8 | int even = 0; 9 | 10 | for (int i = 0; i < A.length ; i++) { 11 | if (A[i] % 2 == 0){ 12 | B[even] = A[i]; 13 | even += 2; 14 | }else { 15 | B[odd] = A[i]; 16 | odd += 2; 17 | } 18 | } 19 | 20 | return B; 21 | } -------------------------------------------------------------------------------- /Week_01/id_6/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_60/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_61/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_62/LeetCode_242_62.c: -------------------------------------------------------------------------------- 1 | bool isAnagram(char* s, char* t) { 2 | int lens = strlen(s); 3 | int lent = strlen(t); 4 | if (lens != lent) return false; 5 | int flag[26] = {0}; 6 | for (int i = 0; i < lens; i++){ 7 | flag[s[i] - 'a']++; 8 | } 9 | for (int i = 0; i < lent; i++){ 10 | if (flag[t[i] - 'a'] == 0) return false; 11 | flag[t[i] - 'a']--; 12 | } 13 | return true; 14 | } 15 | //4MS -------------------------------------------------------------------------------- /Week_01/id_62/LeetCode_441_62.c: -------------------------------------------------------------------------------- 1 | int arrangeCoins(int n) { 2 | int low = 0; 3 | int mid = 0; 4 | int high = n; 5 | while(low <= high) 6 | { 7 | mid = (low + high) / 2; 8 | if( 0 <= n - (mid+1)*mid/2 < mid + 1) 9 | return mid; 10 | else if(n - (mid+1)*mid/2 >= mid + 1) 11 | low = mid + 1; 12 | else if(n - (mid+1)*mid/2 < 0) 13 | high = mid - 1; 14 | } 15 | } 16 | 17 | //8ms -------------------------------------------------------------------------------- /Week_01/id_62/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_63/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | ## 如果题目不是特别一目了然很容易的那种,最好是先分析和画图,尤其是边界条件,这样事半功倍。 3 | ## 根据边界条件和不同的参数组合写测试代码。 4 | ## 如果在线写效率不高,那就用IDE写,本地测试通过后再提交。 5 | -------------------------------------------------------------------------------- /Week_01/id_65/2222test: -------------------------------------------------------------------------------- 1 | 11111 2 | -------------------------------------------------------------------------------- /Week_01/id_65/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_66/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_67/LeetCode_242_67.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isAnagram(String s, String t) { 3 | int[] x =new int[26]; 4 | 5 | for(char schar: s.toCharArray()){ 6 | x[schar-'a']++; 7 | } 8 | for(char tchar: t.toCharArray()){ 9 | x[tchar-'a']--; 10 | } 11 | for(int i=0;i<26;i++){ 12 | if (x[i] != 0){ 13 | return false; 14 | } 15 | } 16 | return true; 17 | } 18 | } -------------------------------------------------------------------------------- /Week_01/id_67/LeetCode_922_67.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] sortArrayByParityII(int[] A) { 3 | int length = A.length; 4 | int i=0,j=1; 5 | while(i < length){ 6 | if(A[i] % 2 == 0){ 7 | i+=2; 8 | }else { 9 | while(A[j] %2 != 0){ 10 | j+=2; 11 | } 12 | int tmp = A[i]; 13 | A[i] = A[j]; 14 | A[j] = tmp; 15 | } 16 | } 17 | return A; 18 | } 19 | } -------------------------------------------------------------------------------- /Week_01/id_67/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_68/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_69/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_70/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_71/LeetCode_441_71.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {number} n 3 | * @return {number} 4 | */ 5 | var arrangeCoins = function (n) { 6 | if (n === 0) { 7 | return 0 8 | } 9 | let temp = n 10 | for (let i = 1; i <= n; i++) { 11 | temp = temp - i 12 | if (temp === 0 || temp < i + 1) { 13 | return i 14 | } 15 | } 16 | }; -------------------------------------------------------------------------------- /Week_01/id_71/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_72/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_73/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_74/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_75/LeetCode_24_75.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for singly-linked list. 3 | * public class ListNode { 4 | * int val; 5 | * ListNode next; 6 | * ListNode(int x) { val = x; } 7 | * } 8 | */ 9 | class Solution { 10 | public ListNode swapPairs(ListNode head) { 11 | if(head == null || head.next == null) return head; 12 | ListNode list = head.next; 13 | head.next = swapPairs(list.next); 14 | list.next = head; 15 | return list; 16 | } 17 | } -------------------------------------------------------------------------------- /Week_01/id_75/LeetCode_905_75.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] sortArrayByParity(int[] A) { 3 | int[] res = new int[A.length]; 4 | //初始化左右指针 5 | int left = 0,right = A.length - 1; 6 | for(int i = 0; i < A.length; i++){ 7 | if(A[i] % 2 == 0){ 8 | res[left] = A[i]; 9 | left = left + 1; 10 | } else { 11 | res[right] = A[i]; 12 | right = right - 1; 13 | } 14 | } 15 | return res; 16 | } 17 | } -------------------------------------------------------------------------------- /Week_01/id_75/LeetCode_922_75.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int[] sortArrayByParityII(int[] A) { 3 | int oddIndex = 0; 4 | int evenIndex = 1; 5 | int[] res = new int[A.length]; 6 | for(int i = 0;i < A.length; i++){ 7 | if(A[i] % 2 == 0){ 8 | res[oddIndex] = A[i]; 9 | oddIndex = oddIndex + 2; 10 | } else { 11 | res[evenIndex] = A[i]; 12 | evenIndex = evenIndex + 2; 13 | } 14 | } 15 | return res; 16 | } 17 | } -------------------------------------------------------------------------------- /Week_01/id_75/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 本周学习总结 3 | 本周通过刷了几道题,对链表和数组的结构操作掌握比以前更加熟练。在学习过程中应该和做产品一样,由简入难,层层迭代。 4 | 5 | 链表方面: 6 | 对链表的指针掌握不够熟练,例如不会熟练使用哨兵节点,指针偶尔指错位置。 7 | 数组方面: 8 | 有两道简单题目的空间复杂度有待优化。 9 | 二分查找方面: 10 | 取中间值是用mid = low + (high - low)/2还是用mid = (high + low)/2,还是有写错的情况。 11 | 12 | 总结: 13 | 在写代码的过程中,把思路以形象的文字图画在纸上表现出来有些吃力,需勤加练习和多向他人借鉴。 14 | 对学习时间整体安排不是十分合理,还有大部分的题目没有用代码实现,例如栈、递归和排序,需要合理安排学习时间。 15 | -------------------------------------------------------------------------------- /Week_01/id_76/LeetCode_20_6.C++: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_76/LeetCode_20_6.C++ -------------------------------------------------------------------------------- /Week_01/id_76/LeetCode_83_6.C++: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_01/id_76/LeetCode_83_6.C++ -------------------------------------------------------------------------------- /Week_01/id_76/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_77/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_77/leetcode_922_077.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public int[] sortArrayByParityII(int[] A) { 4 | int[] arr = new int[A.length]; 5 | int evenStart = -2, oddStart = -1; 6 | for(int i=0;i map = new HashMap<>(); 3 | HeadList.ListNode tmp = head; 4 | while (tmp != null){ //JC: tmp.next == null 5 | if(map.get(tmp.val) == null){ //JC: map.get() return something 6 | map.put(tmp.val,tmp); 7 | } 8 | else HeadList.delete(head,tmp); 9 | tmp = tmp.next; 10 | } 11 | return head; 12 | } -------------------------------------------------------------------------------- /Week_01/id_82/链表/ReadMe.md: -------------------------------------------------------------------------------- 1 | 以上是关于链表的五道问题的解。 2 | Main.java是以上方法实现的全部调用类。 3 | 但是没有测试模块,欢迎指正错误。 4 | -------------------------------------------------------------------------------- /Week_01/id_83/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 贵有恒,何必三更起五更眠 4 | 5 | 最无益,只怕一日曝十日寒 -------------------------------------------------------------------------------- /Week_01/id_84/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_85/ListNode.java: -------------------------------------------------------------------------------- 1 | class ListNode { 2 | int val; 3 | ListNode next; 4 | 5 | ListNode(int x) { 6 | val = x; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_083_086.c: -------------------------------------------------------------------------------- 1 | //simple C 2 | 3 | void MethodFor083_1(struct ListNode* head) 4 | { 5 | if (head == NULL) 6 | { 7 | return NULL; 8 | } 9 | struct ListNode *p, *q; 10 | p = head; 11 | while (p->next) 12 | { 13 | q = p->next; 14 | if (p->val == q->val) 15 | { 16 | p->next = q->next; 17 | } 18 | else 19 | { 20 | p = q; 21 | } 22 | } 23 | return head; 24 | } -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_083_086.py: -------------------------------------------------------------------------------- 1 | 2 | class Solution(object): 3 | def RemoveDuplicatesfromSortedList(self, head): 4 | """ 5 | :type head: ListNode 6 | :rtype: ListNode 7 | """ 8 | cur = head 9 | while cur and cur.next: 10 | if cur.val == cur.next.val: 11 | cur.next = cur.next.next 12 | else: 13 | cur = cur.next 14 | return head -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_905_086.c: -------------------------------------------------------------------------------- 1 | //simple C 2 | 3 | int* MethodFor905_1(int* A, int ASize, int* BSize) 4 | { 5 | int e = 0; 6 | int o = ASize - 1; 7 | int *B = (int *)malloc(sizeof(int) * ASize); 8 | 9 | for (int i = 0; i < ASize; i++) 10 | { 11 | if (A[i] % 2 == 0) 12 | { 13 | B[e++] = A[i]; 14 | } 15 | else 16 | { 17 | B[o--] = A[i]; 18 | } 19 | } 20 | *BSize = ASize; 21 | return B; 22 | } -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_905_086.py: -------------------------------------------------------------------------------- 1 | 2 | class Solution(object): 3 | def sortArrayByParity(self, A): 4 | return [a for a in A if not a % 2] + [a for a in A if a % 2] 5 | -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_922_086.c: -------------------------------------------------------------------------------- 1 | int *MethodFor922_1(int const *A, int ASize, int *BSize) 2 | { 3 | int o = 1; 4 | int e = 0; 5 | int *ret = (int *)malloc(sizeof(int) * (*BSize = ASize)); 6 | 7 | for (int i = 0; i < *BSize; ++i) 8 | { 9 | if (A[i] % 2 == 0) 10 | { 11 | ret[e] = A[i]; 12 | e = e + 2; 13 | } 14 | else 15 | { 16 | ret[o] = A[i]; 17 | o = o + 2; 18 | } 19 | } 20 | return ret; 21 | } -------------------------------------------------------------------------------- /Week_01/id_86/LeetCode_922_086.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def sortArrayByParityII(self, A): 3 | e, o = [a for a in A if not a % 2], [a for a in A if a % 2] 4 | return [e.pop() if not i % 2 else o.pop() for i in range(len(A))] 5 | -------------------------------------------------------------------------------- /Week_01/id_86/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_87/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_88/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | #关于第687题的思路,采取自下而上的递归策略会更易理解,也就是采用后序遍历的方法。另外,切勿被题目定义的函数影响了,应自行定义一个递归的函数,否则容易陷入思维死角。 4 | 5 | -------------------------------------------------------------------------------- /Week_01/id_89/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_9/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 1. 算法的知识点有很多,要掌握他们,最好的办法是各个击破,也就是说针对每个知识点,每次做大量的题,总结和体会;最怕的是,每个知识点浅尝辄止,初学的时候,每天都做跨多个知识点的题目; 3 | 2. 算法的难易,考验的是对这个知识点的掌握程度,体会理解越深越简单,本次做了一个树的题目,题目难易度是“简单”,可我却觉得异常困难,原因其实是,树的题目,我基本没练习过,基础不牢导致; 4 | 3. 以上是本周做题总结出来的,现在打算每周单独练习各个知识点,知道掌握和熟悉; -------------------------------------------------------------------------------- /Week_01/id_90/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 基础太差,开始看算法图解。。。 -------------------------------------------------------------------------------- /Week_01/id_91/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_92/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_93/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_94/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_95/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_95/test.txt: -------------------------------------------------------------------------------- 1 | ceshiyixia再次测试hsenemgui 2 | 333333 -------------------------------------------------------------------------------- /Week_01/id_96/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_97/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_98/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_01/id_99/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_0/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_10/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_100/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_101/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_102/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_103/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_104/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_105/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_106/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_107/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_108/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_109/LeetCode_242_109.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @Auther: quanhc 3 | * @Date: 2019-04-20 21:17 4 | * @Description: 5 | */ 6 | public class LeetCode83 { 7 | 8 | int last = -1000000; 9 | int res = 1000000; 10 | public int minDiffInBST(TreeNode root) { 11 | if (root == null) { 12 | return 0; 13 | } 14 | minDiffInBST(root.left); 15 | res = Math.min(root.val - last, res); 16 | last = root.val; 17 | minDiffInBST(root.right); 18 | return res; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Week_02/id_109/LeetCode_783_109.java: -------------------------------------------------------------------------------- 1 | /** 2 | * @Auther: quanhc 3 | * @Date: 2019-04-20 21:17 4 | * @Description: 5 | */ 6 | public class LeetCode83 { 7 | 8 | int last = -1000000; 9 | int res = 1000000; 10 | public int minDiffInBST(TreeNode root) { 11 | if (root == null) { 12 | return 0; 13 | } 14 | minDiffInBST(root.left); 15 | res = Math.min(root.val - last, res); 16 | last = root.val; 17 | minDiffInBST(root.right); 18 | return res; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Week_02/id_109/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_11/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_110/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_111/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_112/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_113/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_114/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_115/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_116/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_117/LeetCode_242_117_test.go: -------------------------------------------------------------------------------- 1 | package solution 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestLeetCode_242_117(t *testing.T) { 8 | params := [][]string{{"anagram", "nagaram"}, {"rat", "cat"}} 9 | for _, m := range params { 10 | flag := isAnagram(m[0], m[1]) 11 | if flag { 12 | t.Logf("%s is an anagram of %s", m[0], m[1]) 13 | } else { 14 | t.Errorf("%s is not a anagram of %s", m[0], m[1]) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Week_02/id_117/LeetCode_609_117_test.go: -------------------------------------------------------------------------------- 1 | package solution 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestLeetCode_609_117(t *testing.T) { 8 | inputs := []string{ 9 | "root/a 1.txt(abcd) 2.txt(efgh)", "root/c 3.txt(abcd)", 10 | "root/c/d 4.txt(efgh)", "root 4.txt(efgh)", 11 | } 12 | outputs := [][]string{ 13 | {"root/a/2.txt", "root/c/d/4.txt", "root/4.txt"}, 14 | {"root/a/1.txt", "root/c/3.txt"}, 15 | } 16 | results := findDuplicate(inputs) 17 | t.Log("results: ", results) 18 | t.Log("outputs: ", outputs) 19 | } 20 | -------------------------------------------------------------------------------- /Week_02/id_117/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_117/TreeNode.go: -------------------------------------------------------------------------------- 1 | package solution 2 | 3 | type TreeNode struct { 4 | Val int 5 | Left *TreeNode 6 | Right *TreeNode 7 | } 8 | 9 | func createNode(num int) *TreeNode { 10 | return &TreeNode{ 11 | Val: num, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Week_02/id_118/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 这周学习比较大的感触是:把你想到的先写下来/画下来,解题思路都能从这些想法中得到启发。 4 | -------------------------------------------------------------------------------- /Week_02/id_118/img/图示-263.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_118/img/图示-263.png -------------------------------------------------------------------------------- /Week_02/id_118/img/图示-671.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_118/img/图示-671.png -------------------------------------------------------------------------------- /Week_02/id_118/img/图示-863.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_118/img/图示-863.png -------------------------------------------------------------------------------- /Week_02/id_118/img/思维导图-263.671.863.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_118/img/思维导图-263.671.863.png -------------------------------------------------------------------------------- /Week_02/id_119/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_12/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_120/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_121/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | ## 242 4 | - 有时候单纯的看时间复杂度,并不能很好的度量一个算法的性能,尤其是在不同数据量的情况下,第一种方法时间复杂度是2n,第二种是3n,但是整体下来,第二种方法却更快一些,使用数组代替hashmap能够更快的随机访问以外,尽量少的使用对象包装器,也会提高性能 -------------------------------------------------------------------------------- /Week_02/id_122/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_123/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_123/TreeNode.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | type TreeNode struct { 4 | Val int 5 | Left *TreeNode 6 | Right *TreeNode 7 | } 8 | -------------------------------------------------------------------------------- /Week_02/id_125/LeetCode_242_125.c: -------------------------------------------------------------------------------- 1 | bool isAnagram(char* s, char* t) { 2 | #define SIZE 26 3 | int a[SIZE], b[SIZE]; 4 | memset(a, 0, SIZE*sizeof(int)); 5 | memset(b, 0, SIZE*sizeof(int)); 6 | 7 | while(*s) { 8 | a[*s - 'a']++; 9 | s++; 10 | } 11 | while(*t) { 12 | b[*t - 'a']++; 13 | t++; 14 | } 15 | return memcmp(a, b, SIZE*sizeof(int)) == 0; 16 | } 17 | -------------------------------------------------------------------------------- /Week_02/id_125/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_126/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_127/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_128/LeetCode_242_128.go: -------------------------------------------------------------------------------- 1 | func isAnagram(s string, t string) bool { 2 | if len(s) < len(t){ 3 | s,t = t,s 4 | } 5 | smap := make(map[rune]uint8) 6 | tmap := make(map[rune]uint8) 7 | for _,ss := range s { 8 | smap[ss]++ 9 | } 10 | for _,tt := range t { 11 | tmap[tt]++ 12 | } 13 | for k, _ := range smap { 14 | if tmap[k] != smap[k] { 15 | return false 16 | } 17 | } 18 | return true 19 | } 20 | -------------------------------------------------------------------------------- /Week_02/id_128/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_129/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_129/TreeNode.java: -------------------------------------------------------------------------------- 1 | public class TreeNode { 2 | int val; 3 | TreeNode left; 4 | TreeNode right; 5 | 6 | TreeNode(int x) { 7 | val = x; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Week_02/id_13/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_130/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | #### 散列表 4 | 5 | - 查询时间复杂度 O(1),所以主要用于计数,需要配合排序及其他算法使用 6 | 7 | #### 跳表 8 | 9 | - 利用多级索引,提高查找效率 10 | 11 | #### 二叉树 12 | 13 | - 递归算法 14 | -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_236_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_236_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_242_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_242_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_609_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_609_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_671_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_671_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_692_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_692_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/LeetCode_783_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_131/LeetCode_783_131.cpp -------------------------------------------------------------------------------- /Week_02/id_131/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_132/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_133/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_134/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_135/LeetCode_242_135.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isAnagram(String s, String t) { 3 | char[] sChars = s.toCharArray(); 4 | char[] tChars = t.toCharArray(); 5 | Arrays.sort(sChars); 6 | Arrays.sort(tChars); 7 | return String.valueOf(sChars).equals(String.valueOf(tChars)); 8 | } 9 | } -------------------------------------------------------------------------------- /Week_02/id_135/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_136/LeetCode_242_136.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {string} s 3 | * @param {string} t 4 | * @return {boolean} 5 | */ 6 | var isAnagram = function(s, t) { 7 | return s.split("").sort().join("") == t.split("").sort().join("") 8 | }; -------------------------------------------------------------------------------- /Week_02/id_136/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_137/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_138/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_139/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_14/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_140/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_141/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_142/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_143/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_144/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_145/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_146/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_147/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_148/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_149/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_15/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_150/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_151/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_152/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_153/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_154/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_155/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_156/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_157/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_158/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_159/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_16/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_160/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_161/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_162/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_163/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_164/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_165/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_166/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_167/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_168/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_17/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_18/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_19/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_2/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_20/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_21/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_22/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_23/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_24/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_25/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_26/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_28/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_29/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_30/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_31/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_32/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_33/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_34/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_35/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_36/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_37/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_38/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_39/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_4/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_40/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_41/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_42/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_43/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_44/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_45/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_46/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_47/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_48/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_5/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_50/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_51/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_52/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_53/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_55/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_56/LeetCode_242_56.cpp: -------------------------------------------------------------------------------- 1 | bool isAnagram(string s, string t) { 2 | if(s.size() != t.size()) return false; 3 | vector just(26, 0); 4 | for(int i=0; ileft) return -1; 6 | int left = (root->left->val == root->val) ? findSecondMinimumValue(root->left) : root->left->val; 7 | int right = (root->right->val == root->val) ? findSecondMinimumValue(root->right) : root->right->val; 8 | return ((left == -1 ) || (right == -1)) ? max(left,right) : min(left,right); 9 | 10 | } 11 | }; -------------------------------------------------------------------------------- /Week_02/id_58/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 1.本周主要学习了哈希表的两个题解 3 | 2.题242,字母异位词的题解。 4 | 在解题的过程中,刚开始发现不能理解题意,后来在网上搜索了相关的题意,就理解了异位词的含义, 5 | 即所谓有效的字母异位词,就是字母类型和大小都一致,但是是不同的单词,这样的两个单词互为字母异位词 6 | 分别用26个字母数组来存储两个字母串,最后对比两个数组即可,发现有不一致的则返回false, 7 | 若同相同则返回true。 8 | 3.题692,取最大的k个值。 9 | 这里是取最大的值,可以借助Java里的最大堆的数据结构 PriorityQueue 10 | 主要是熟悉Java的最大堆的实现。 11 | 4.本周比较忙,后续要抽出大量的时间进行练习,再接再厉。 -------------------------------------------------------------------------------- /Week_02/id_59/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_6/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_60/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_61/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_62/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_63/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_64/LeetCode_692_64.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_64/LeetCode_692_64.js -------------------------------------------------------------------------------- /Week_02/id_65/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_66/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_67/LeetCode_242_67.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public boolean isAnagram(String s, String t) { 3 | int[] x =new int[26]; 4 | 5 | for(char schar: s.toCharArray()){ 6 | x[schar-'a']++; 7 | } 8 | for(char tchar: t.toCharArray()){ 9 | x[tchar-'a']--; 10 | } 11 | for(int i=0;i<26;i++){ 12 | if (x[i] != 0){ 13 | return false; 14 | } 15 | } 16 | return true; 17 | } 18 | } -------------------------------------------------------------------------------- /Week_02/id_67/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_68/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_69/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_7/NOTE.md: -------------------------------------------------------------------------------- 1 | ### 题目list 2 | 3 | --- 4 | 5 | * 6 | [second-minimum-node-in-a-binary-tree/](https://leetcode-cn.com/problems/second-minimum-node-in-a-binary-tree/) 7 | 8 | [LeetCode_671_7.go](LeetCode_671_7.go) 9 | 10 | * 11 | [242. Valid Anagram](https://leetcode-cn.com/problems/valid-anagram/) 12 | 13 | [LeetCode__242_7.go](LeetCode_242_7.go) 14 | 15 | 16 | -------------------------------------------------------------------------------- /Week_02/id_7/readme.md: -------------------------------------------------------------------------------- 1 | ### 题目list 2 | 3 | --- 4 | 5 | * 6 | [second-minimum-node-in-a-binary-tree/](https://leetcode-cn.com/problems/second-minimum-node-in-a-binary-tree/) 7 | 8 | [LeetCode_671_7.go](LeetCode_671_7.go) 9 | 10 | * 11 | [242. Valid Anagram](https://leetcode-cn.com/problems/valid-anagram/) 12 | 13 | [LeetCode__242_7.go](LeetCode_242_7.go) 14 | 15 | 16 | -------------------------------------------------------------------------------- /Week_02/id_70/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_71/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_72/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_73/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_74/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_75/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_76/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_77/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_78/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_79/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_8/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_80/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_81/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_82/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_83/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_84/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_85/TreeNode.java: -------------------------------------------------------------------------------- 1 | public class TreeNode { 2 | int val; 3 | TreeNode left; 4 | TreeNode right; 5 | 6 | TreeNode(int x) { 7 | val = x; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Week_02/id_86/LeetCode_242_086.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // 120ms 7.1MB 4 | bool MethodFor242_1(char* s, char* t) 5 | { 6 | int flag = 1; 7 | if (strlen(s) != strlen(t)) 8 | { 9 | flag = 0; 10 | } 11 | else 12 | { 13 | int a[26] = { 0 }; 14 | for (int i = 0; i < strlen(s); i++) 15 | { 16 | a[s[i] - 'a']++; 17 | a[t[i] - 'a']--; 18 | } 19 | 20 | for (int i = 0; i < 26; i++) 21 | { 22 | if (a[i] != 0) 23 | { 24 | flag = 0; 25 | } 26 | } 27 | } 28 | return flag; 29 | 30 | } -------------------------------------------------------------------------------- /Week_02/id_86/LeetCode_242_086.py: -------------------------------------------------------------------------------- 1 | class Solution(object): 2 | def isAnagram(self, s, t): 3 | dic1 = {} 4 | dic2 = {} 5 | for t in s: 6 | dic1[t] = dic1.get(t,0)+1 7 | for t in t: 8 | dic2[t] = dic2.get(t,0)+1 9 | return dic1 == dic2 10 | 11 | def isAnagram2(self, s, t): 12 | return sorted(s) == sorted(t) 13 | -------------------------------------------------------------------------------- /Week_02/id_86/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_87/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_88/Leetcode_692_088.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_88/Leetcode_692_088.txt -------------------------------------------------------------------------------- /Week_02/id_88/Leetcode_863_088.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_02/id_88/Leetcode_863_088.txt -------------------------------------------------------------------------------- /Week_02/id_88/Leetcode_938_088.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int rangeSumBST(TreeNode* root, int L, int R) { 4 | int sum = 0; 5 | 6 | if (root == NULL) return 0; 7 | 8 | sum = rangeSumBST(root->left, L, R); 9 | 10 | if (root->val >= L && root->val <=R) 11 | { 12 | sum += root->val; 13 | } 14 | 15 | int temp = rangeSumBST(root->right, L, R); 16 | 17 | sum += temp; 18 | 19 | return sum; 20 | } 21 | }; -------------------------------------------------------------------------------- /Week_02/id_88/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_89/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_9/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 1. 算法不是一个速成的过程,需要打持久战以及做大量的习题才可能融会贯通,每天都进步一点点,双休经常性的做专题训练; 3 | 2. 本周练习的是树; 4 | 3. 学习的过程中,很明显的感受到,学到的东西是可以用到工作中来解决问题的,至今已在工作中用了至少3次,效果还是很不错的; 5 | -------------------------------------------------------------------------------- /Week_02/id_90/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_91/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_92/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_93/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_94/LeetCode_242_094.py: -------------------------------------------------------------------------------- 1 | class Solution(object): 2 | def isAnagram(self, s, t): 3 | """ 4 | :type s: str 5 | :type t: str 6 | :rtype: bool 7 | """ 8 | if len(s) != len(t): 9 | return False 10 | 11 | s_list = [0] * 26 12 | t_list = [0] * 26 13 | for x in s: 14 | s_list[ord(x) - 97] += 1 15 | for y in t: 16 | t_list[ord(y) - 97] += 1 17 | return s_list == t_list -------------------------------------------------------------------------------- /Week_02/id_94/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_95/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_96/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_97/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_98/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_02/id_99/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_0/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_1/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_10/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_100/LeetCode_104_100: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if(root == null){ 13 | return 0; 14 | } 15 | int left = maxDepth(root.left)+1; 16 | int right = maxDepth(root.right)+1; 17 | return Math.max(left,right); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Week_03/id_100/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_101/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_102/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_102/leetcode_104_102.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int maxDepth(TreeNode* root) { 13 | if (root == NULL) { 14 | return 0; 15 | } 16 | return max(maxDepth(root->left), maxDepth(root->right)) + 1; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Week_03/id_102/leetcode_997_102.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int findJudge(int N, vector>& trust) { 4 | vector degrees(N+1); 5 | for (const auto & t:trust) { 6 | --degrees[t[0]]; 7 | ++degrees[t[1]]; 8 | } 9 | 10 | for (int i = 1; i <= N; i++) { 11 | if (degrees[i] == N - 1) { 12 | return i; 13 | } 14 | } 15 | 16 | return -1;; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /Week_03/id_103/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_104/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_105/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_106/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_107/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_108/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_109/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_11/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_110/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_111/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_112/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_113/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_113/leetcode_104_113.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if (root == null) return 0; 13 | 14 | int l = maxDepth(root.left) + 1; 15 | int r = maxDepth(root.right) + 1; 16 | 17 | return l > r ? l : r; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Week_03/id_114/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_115/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_116/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_117/Helper.go: -------------------------------------------------------------------------------- 1 | package solution 2 | 3 | import "reflect" 4 | 5 | type TreeNode struct { 6 | Val int 7 | Left *TreeNode 8 | Right *TreeNode 9 | } 10 | 11 | type TreeNodeMul struct { 12 | Val int 13 | Children []*TreeNodeMul 14 | } 15 | 16 | func StringSliceReflectEqual(a, b []int) bool { 17 | return reflect.DeepEqual(a, b) 18 | } 19 | -------------------------------------------------------------------------------- /Week_03/id_117/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 关于review他人作业的时候收获: 4 | 5 | 1.针对做过的题目都写下思路和涉及技术 6 | 7 | 2.针对某个问题可以衍生思考,或者做专题总结 8 | -------------------------------------------------------------------------------- /Week_03/id_118/src/928草稿.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_118/src/928草稿.pdf -------------------------------------------------------------------------------- /Week_03/id_118/src/字符串匹配-图例.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_118/src/字符串匹配-图例.pdf -------------------------------------------------------------------------------- /Week_03/id_118/src/字符串匹配-思维导图.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_118/src/字符串匹配-思维导图.pdf -------------------------------------------------------------------------------- /Week_03/id_119/LeetCode_104_119.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int maxDepth(TreeNode* root) { 13 | if (!root) return 0; 14 | if (!root->left && !root->right) return 1; 15 | return max(maxDepth(root->left), maxDepth(root->right)) + 1; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /Week_03/id_119/LeetCode_703_119.cpp: -------------------------------------------------------------------------------- 1 | class KthLargest { 2 | public: 3 | KthLargest(int k, vector& nums) { 4 | for (auto num:nums) { 5 | q.push(num); 6 | if(q.size() > k) q.pop(); 7 | } 8 | K = k; 9 | } 10 | 11 | int add(int val) { 12 | q.push(val); 13 | if (q.size() > K) q.pop(); 14 | 15 | return q.top(); 16 | } 17 | private: 18 | int K; 19 | priority_queue, greater> q; 20 | }; 21 | -------------------------------------------------------------------------------- /Week_03/id_119/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_12/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_120/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_121/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_122/LeetCode_104_122.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_122/LeetCode_104_122.php -------------------------------------------------------------------------------- /Week_03/id_122/LeetCode_200_122.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_122/LeetCode_200_122.php -------------------------------------------------------------------------------- /Week_03/id_122/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_123/LeetCode_104_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | //Definition for a binary tree node. 4 | type TreeNode struct { 5 | Val int 6 | Left *TreeNode 7 | Right *TreeNode 8 | } 9 | 10 | func maxDepth(root *TreeNode) int { 11 | if root == nil { 12 | return 0 13 | } 14 | 15 | return max(maxDepth(root.Left), maxDepth(root.Right)) + 1 16 | } 17 | 18 | func max(x, y int) int { 19 | if x > y { 20 | return x 21 | } 22 | 23 | return y 24 | } 25 | -------------------------------------------------------------------------------- /Week_03/id_123/LeetCode_997_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | func findJudge(N int, trust [][]int) int { 4 | inMap := make(map[int]int) 5 | outMap := make(map[int]int) 6 | 7 | for _, v := range trust { 8 | inMap[v[1]]++ 9 | outMap[v[0]]++ 10 | } 11 | 12 | for i := 1; i <= N; i++ { 13 | if inMap[i] == N-1 && outMap[i] == 0 { 14 | return i 15 | } 16 | } 17 | 18 | return -1 19 | } 20 | -------------------------------------------------------------------------------- /Week_03/id_123/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_124/LeetCode_104_124.java: -------------------------------------------------------------------------------- 1 | import common.TreeNode; 2 | 3 | public class MaxDepth { 4 | 5 | public int maxDepth(TreeNode root) { 6 | if(root == null){ 7 | return 0; 8 | } 9 | int leftDepth = maxDepth(root.left) +1; 10 | int rightDepth = maxDepth(root.right) + 1; 11 | return Math.max(leftDepth, rightDepth); 12 | } 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Week_03/id_124/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_125/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_126/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_127/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_128/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_129/LeetCode_104_129.java: -------------------------------------------------------------------------------- 1 | import java.util.PriorityQueue; 2 | 3 | public class LeetCode_104_129 { 4 | public int maxDepth(TreeNode root) { 5 | return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Week_03/id_129/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_129/TreeNode.java: -------------------------------------------------------------------------------- 1 | public class TreeNode { 2 | int val; 3 | TreeNode left; 4 | TreeNode right; 5 | 6 | TreeNode(int x) { 7 | val = x; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Week_03/id_13/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_130/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | 1. 前两周解题之前都会去看一遍对应的数据结构和算法,本周是直接做题的。 4 | 2. 第一遍先按照自己能想到的思路解决问题,第二遍查看下其他解决方法。 5 | 3. 对于数,图,BFS,DFS等内容还是需要系统性学习。 -------------------------------------------------------------------------------- /Week_03/id_131/LeetCode_104_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_131/LeetCode_104_131.cpp -------------------------------------------------------------------------------- /Week_03/id_131/LeetCode_997_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_03/id_131/LeetCode_997_131.cpp -------------------------------------------------------------------------------- /Week_03/id_131/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_132/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_133/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_134/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_135/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_136/LeetCode_104_136.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * function TreeNode(val) { 4 | * this.val = val; 5 | * this.left = this.right = null; 6 | * } 7 | */ 8 | /** 9 | * @param {TreeNode} root 10 | * @return {number} 11 | */ 12 | var maxDepth = function(root) { 13 | return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 14 | }; 15 | 16 | -------------------------------------------------------------------------------- /Week_03/id_136/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_137/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_138/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_139/Leetcode_139_997.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findJudge(int N, int[][] trust) { 3 | int[][] people = new int[N][2]; 4 | for(int[] person : trust){ 5 | int out = person[0]; 6 | int in = person[1]; 7 | people[out - 1][0] ++; 8 | people[in - 1][1] ++; 9 | } 10 | for(int i = 0; i < N; i ++){ 11 | if(people[i][0] == 0 && people[i][1] == N - 1) 12 | return i + 1; 13 | } 14 | return -1; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Week_03/id_139/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_14/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_140/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_141/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_142/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_143/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_144/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_145/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_146/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_147/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_148/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_149/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_15/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_150/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_151/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_152/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_153/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_154/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_155/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_156/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_157/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_158/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_159/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_16/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_160/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_161/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_162/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_163/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_164/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_165/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_166/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_167/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_168/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_17/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_18/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_19/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_2/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_20/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_21/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_22/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_23/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_25/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_26/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_28/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_29/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_30/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_31/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_32/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_33/LeetCode_104_33.py: -------------------------------------------------------------------------------- 1 | # Definition for a binary tree node. 2 | # class TreeNode: 3 | # def __init__(self, x): 4 | # self.val = x 5 | # self.left = None 6 | # self.right = None 7 | 8 | class Solution: 9 | def maxDepth(self, root: TreeNode): 10 | if root is None: 11 | return 0 12 | else: 13 | return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right)) -------------------------------------------------------------------------------- /Week_03/id_33/LeetCode_997_33.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def findJudge(self, N: int, trust: List[List[int]]) -> int: 3 | trustNum = [0] * N #信任别人的数目 4 | trustedNum = [0] * N #被别人信任的数目 5 | for a, b in trust: 6 | trustNum[a-1] += 1 7 | trustedNum[b-1] += 1 8 | for i in range(N): 9 | if trustNum[i] == 0 and trustedNum == N-1: 10 | return i+1 11 | return -1 -------------------------------------------------------------------------------- /Week_03/id_33/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_34/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_35/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_36/LeetCode_104_036.java: -------------------------------------------------------------------------------- 1 | package com.potato.leetcode.tree; 2 | 3 | 4 | import com.potato.leetcode.model.TreeNode; 5 | 6 | public class LeetCode_104_036 { 7 | public int maxDepth(TreeNode root) { 8 | if (root == null) { 9 | return 0; 10 | } 11 | 12 | return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Week_03/id_36/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_37/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_38/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_39/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_4/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_40/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_41/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_42/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_43/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_44/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_45/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_46/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_47/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_48/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_49/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | ### 关于图 3 | 4 | 在寻找镇法官的算法中,理解有向图的出度和入度是关键。用数组的下标和值来表示有向边的映射关系,是个很高效的解决方案。 5 | 6 | ### TopK问题 7 | 8 | 大部分的topK问题都可以用大顶堆和小顶堆来解决。在Java实现中PriorityQueue是一个很实用的集合,它实现了小顶堆或大顶堆,而LinkedList则实现了栈。 9 | 10 | ### 关于二叉树 11 | 12 | 不管是二叉树的遍历还是求树的高度,感觉递归就是二叉树的绝配,很多简洁优雅的代码都是用递归来实现的。 13 | -------------------------------------------------------------------------------- /Week_03/id_5/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_50/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_51/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_52/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_53/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_54/LeetCode_104_54.java: -------------------------------------------------------------------------------- 1 | int maxDepth(struct TreeNode* root){ 2 | int left, right; 3 | if(0 == root) return 0; 4 | if(0 == root->left && 0 == root->right) return 1; 5 | 6 | left = maxDepth(root->left); 7 | right = maxDepth(root->right); 8 | 9 | return 1+(left>right?left:right); 10 | } 11 | -------------------------------------------------------------------------------- /Week_03/id_55/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_56/LeetCode_997_056.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int findJudge(int N, vector>& trust) { 4 | int record[1001]={0}; 5 | for(auto item:trust){ 6 | record[item[1]]++; 7 | record[item[0]]--; 8 | } 9 | for(int i=1;i<=N;i++){ 10 | if(record[i]==N-1){ 11 | return i; 12 | } 13 | } 14 | return -1; 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /Week_03/id_57/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_58/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 本周的学习笔记: 3 | 1.本周主要学习了有向图、最小堆的两个题解 4 | 2.题997,有向图的题解。 5 | 这题的解题思路非常的巧妙,利用了一个二维数组来存储入度和出度, 6 | 这里类似有向图的邻接矩阵的思想,只有拥有了类似的思想,再解类似的问题, 7 | 就可以游刃有余了。 8 | 3.题703,取第k大个值。 9 | 这里是取第k大的值,可以借助Java里的最小堆的数据结构 PriorityQueue 10 | 主要是熟悉Java的最小堆的实现。 11 | 这里需要注意,PriorityQueue默认支持最小堆,如果支持最大堆需要实现Comparator接口 12 | 4.本周节假日。时间过半,还得多练习。 -------------------------------------------------------------------------------- /Week_03/id_59/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_6/LeetCode_104_6.java: -------------------------------------------------------------------------------- 1 | 2 | 3 | // LeetCode 104 4 | 5 | // [ 1. DFS ] 6 | 7 | 8 | // maxDepth = max(left, right) + 1 9 | public int maxDepth(TreeNode root) { 10 | if (root == null){ 11 | return 0; 12 | } 13 | 14 | int left = maxDepth(root.left); 15 | int right = maxDepth(root.right); 16 | 17 | return 1 + Math.max(left, right); 18 | } 19 | -------------------------------------------------------------------------------- /Week_03/id_6/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_60/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_61/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_62/LeetCode_104_62.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * struct TreeNode { 4 | * int val; 5 | * TreeNode *left; 6 | * TreeNode *right; 7 | * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 | * }; 9 | */ 10 | class Solution { 11 | public: 12 | int maxDepth(TreeNode* root) { 13 | if (NULL == root) 14 | return 0; 15 | int l = maxDepth(root->left); 16 | int r = maxDepth(root->right); 17 | return l > r ? l + 1:r + 1; 18 | } 19 | }; -------------------------------------------------------------------------------- /Week_03/id_62/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_63/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_65/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_66/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_67/LeetCode_104_67.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 13 | } 14 | } -------------------------------------------------------------------------------- /Week_03/id_67/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_68/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_69/LeetCode_104_69.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if (root == null) { 13 | return 0; 14 | } 15 | 16 | return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Week_03/id_69/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_7/LeetCode_104_7.go: -------------------------------------------------------------------------------- 1 | package geekcode 2 | 3 | /** 4 | * Definition for a binary tree node. 5 | * type TreeNode struct { 6 | * Val int 7 | * Left *TreeNode 8 | * Right *TreeNode 9 | * } 10 | */ 11 | func maxDepth(root *TreeNode) int { 12 | if root == nil { 13 | return 0 14 | } 15 | l0 := maxDepth(root.Left) 16 | l1 := maxDepth(root.Right) 17 | if l0 > l1 { 18 | return l0 + 1 19 | } else { 20 | return l1 + 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Week_03/id_7/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | --- 4 | 5 | * [二叉树的最大深度](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/submissions/) 6 | [LeetCode_104_7.go](LeetCode_104_7.go) 7 | 8 | * [找到小镇的法官](https://leetcode-cn.com/problems/find-the-town-judge/comments/) 9 | [LeetCode_997_7.go](LeetCode_997_7.go) 10 | -------------------------------------------------------------------------------- /Week_03/id_7/geek_test.go: -------------------------------------------------------------------------------- 1 | package geekcode 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func TestMaxDepth(t *testing.T) { 9 | tree := Node(1) 10 | l := tree.addLeft(2) 11 | l2, r2 := l.addBoth(3, 4) 12 | r2.addLeft(15).addLeft(16).addLeft(34).addRight(50) 13 | l2.addRight(5).addBoth(3, 4) 14 | log.Println(maxDepth(tree)) 15 | } 16 | 17 | func TestFindJudge(t *testing.T) { 18 | 19 | N := 3 20 | params := [][]int{ 21 | {1, 3}, 22 | {2, 3}, 23 | } 24 | 25 | t.Log(findJudge(N, params)) 26 | } 27 | -------------------------------------------------------------------------------- /Week_03/id_7/readme.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | --- 4 | 5 | * [二叉树的最大深度](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/submissions/) 6 | [LeetCode_104_7.go](LeetCode_104_7.go) 7 | 8 | * [找到小镇的法官](https://leetcode-cn.com/problems/find-the-town-judge/comments/) 9 | [LeetCode_997_7.go](LeetCode_997_7.go) 10 | -------------------------------------------------------------------------------- /Week_03/id_70/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_71/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_71/leetCode_104_71.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * function TreeNode(val) { 4 | * this.val = val; 5 | * this.left = this.right = null; 6 | * } 7 | */ 8 | /** 9 | * @param {TreeNode} root 10 | * @return {number} 11 | */ 12 | var maxDepth = function(root) { 13 | if (root === null) { 14 | return 0 15 | } 16 | let leftMaxDepth = maxDepth(root.left) 17 | let rightMaxDepth = maxDepth(root.right) 18 | return (leftMaxDepth > rightMaxDepth ? leftMaxDepth : rightMaxDepth) + 1 19 | }; 20 | -------------------------------------------------------------------------------- /Week_03/id_72/LeetCode_104_72.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if (root == null) { 13 | return 0; 14 | } 15 | int maxLeft = maxDepth(root.left) + 1; 16 | int maxRight = maxDepth(root.right) + 1; 17 | return Math.max(maxLeft, maxRight); 18 | } 19 | } -------------------------------------------------------------------------------- /Week_03/id_72/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_73/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_74/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_75/LeetCode_104_75.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Definition for a binary tree node. 3 | * public class TreeNode { 4 | * int val; 5 | * TreeNode left; 6 | * TreeNode right; 7 | * TreeNode(int x) { val = x; } 8 | * } 9 | */ 10 | class Solution { 11 | public int maxDepth(TreeNode root) { 12 | if(root == null)return 0; 13 | int leftDp = maxDepth(root.left); 14 | int rightDp = maxDepth(root.right); 15 | return Math.max(leftDp,rightDp) + 1; 16 | } 17 | } -------------------------------------------------------------------------------- /Week_03/id_75/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_76/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_77/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_78/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_79/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_8/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_80/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_81/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_82/DFS/LeetCode_104_082.java: -------------------------------------------------------------------------------- 1 | static private int max(int x, int y){ 2 | return x > y ? x : y; 3 | } 4 | static int maxDepth(BinaryTree.TreeNode root) { 5 | if (root == null) return 0; 6 | if (root.left == null && root.right == null) return 1; 7 | return max(maxDepth(root.left), maxDepth(root.right)) + 1; 8 | } -------------------------------------------------------------------------------- /Week_03/id_82/DFS/ReadMe: -------------------------------------------------------------------------------- 1 | 目前仅为DFS部分题目,后续会补上。 2 | -------------------------------------------------------------------------------- /Week_03/id_82/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_82/图/ReadMe: -------------------------------------------------------------------------------- 1 | 目前只包含图类第一个问题,后续会补充。 2 | -------------------------------------------------------------------------------- /Week_03/id_83/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_84/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_86/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_87/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_88/Leetcode_104_088.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int maxDepth(TreeNode* root) { 4 | if (root == NULL) return 0; 5 | 6 | int maxDepthLeft = 1; 7 | int maxDepthRight = 1; 8 | 9 | maxDepthLeft += maxDepth(root->left); 10 | maxDepthRight += maxDepth(root->right); 11 | 12 | return maxDepthLeft > maxDepthRight ? maxDepthLeft : maxDepthRight; 13 | } 14 | }; -------------------------------------------------------------------------------- /Week_03/id_88/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_89/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_9/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 1. 本次重点学习了图的相关算法 3 | 2. 题目一,遍历图的关系,统计出入度和出度,依据题目的意思,找出拥有特殊入度和出度的节点即是目标; 4 | 3. 题目二,遍历图的关系,统计入度,同时还要能快速找到出度的哪些点(使用HashTable),并且巧妙的更新入度,里面借用了BFS的算法思想; 5 | 4. 总结,图是抽象意义的结构,在实际存储表示中,通常会被表示为数组,我们需要依据实现的功能,决定在遍历图数组时,构造出怎样的数据结构来满足最终的功能实现;简单来说就是,遍历图的关系,得到特定的数据结构,再依据特定的数据结构来实现我们所期望的功能; -------------------------------------------------------------------------------- /Week_03/id_90/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_91/LeetCode_104_091.java: -------------------------------------------------------------------------------- 1 | class TreeNode{ 2 | TreeNode left; 3 | TreeNode right; 4 | int value; 5 | 6 | } 7 | class Solution { 8 | public int maxDepth(TreeNode root) { 9 | if (root == null) { 10 | return 0; 11 | } else { 12 | int left_height = maxDepth(root.left); 13 | int right_height = maxDepth(root.right); 14 | return java.lang.Math.max(left_height, right_height) + 1; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Week_03/id_91/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_92/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_93/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_94/LeetCode_104_094.java: -------------------------------------------------------------------------------- 1 | public class TreeNode { 2 | int val; 3 | TreeNode left; 4 | TreeNode right; 5 | 6 | TreeNode(int x) { 7 | val = x; 8 | } 9 | } 10 | 11 | class Solution { 12 | public int maxDepth(TreeNode root) { 13 | if (root == null) { 14 | return 0; 15 | } 16 | int left = maxDepth(root.left) + 1; 17 | int right = maxDepth(root.right) + 1; 18 | return left > right ? left : right; 19 | } 20 | } -------------------------------------------------------------------------------- /Week_03/id_94/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_03/id_95/LeetCode_997_95.java: -------------------------------------------------------------------------------- 1 | class LeetCode_997_95 { 2 | public int findJudge(int N, int[][] trust) { 3 | int i,j; 4 | int[] res = new int[N]; 5 | int[] flag = new int[N]; 6 | for(i=0;i& words) { 4 | string res = ""; 5 | unordered_set s; 6 | sort(words.begin(), words.end()); 7 | for (string word:words) { 8 | if (word.size() == 1 || s.count(word.substr(0, word.size() - 1))) { 9 | res = word.size() > res.size() ? word : res; 10 | s.insert(word); 11 | } 12 | } 13 | return res; 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /Week_04/id_0/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_1/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_10/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_100/LeetCode_746_100.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minCostClimbingStairs(int[] cost) { 3 | int len = cost.length; 4 | for (int i = 2; i < cost.length; i++) { 5 | cost[i] += Math.min(cost[i - 1],cost[i - 2]); 6 | } 7 | return Math.min(cost[len - 2],cost[len - 1]); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Week_04/id_100/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_101/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_102/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_102/leetcode_242_102.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int majorityElement(vector& nums) { 4 | /* 建立hash表 key-value */ 5 | unordered_map map; 6 | int ret = 0; 7 | int len = nums.size(); 8 | for (int i = 0; i < len; i++) { 9 | map[nums[i]]++; 10 | if (map[nums[i]]>len/2) { 11 | ret = nums[i]; 12 | break; 13 | } 14 | } 15 | return ret; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /Week_04/id_102/leetcode_746_102.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int minCostClimbingStairs(vector& cost) { 4 | vector dp(cost.size(), 0); 5 | dp[0] = cost[0]; 6 | dp[1] = cost[1]; 7 | 8 | for (int i = 2; i < cost.size(); i++) { 9 | dp[i] = min(dp[i-1], dp[i-2]) + cost[i]; 10 | } 11 | 12 | return min(dp[dp.size()-1], dp[dp.size()-2]); 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /Week_04/id_103/.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # Test binary, build with `go test -c` 9 | *.test 10 | 11 | # Output of the go coverage tool, specifically when used with LiteIDE 12 | *.out 13 | 14 | .idea -------------------------------------------------------------------------------- /Week_04/id_103/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | - 169 既然一个数半数都存在,那排好序之后,一定在中间 4 | - 455 这个排序后,看每块饼干能否满足小朋友,能的话,就递增,不能就再继续,就能判断出来了,不过对小朋友的胃口和饼干要提前排序。 5 | - 746 到达当前台阶时判断下从前一个台阶过来省事,还是从前一个的前一个过来省事,一直累加到最后一个台阶完,最小值就是最省体力的。 用p1和p2表示前两个和前一个台阶所耗费的体力,一遍循环就可以了。 -------------------------------------------------------------------------------- /Week_04/id_103/leetcode_103_169.go: -------------------------------------------------------------------------------- 1 | package id_103 2 | 3 | import "sort" 4 | 5 | func majorityElement(nums []int) int { 6 | sort.Ints(nums) 7 | return nums[len(nums) / 2] 8 | } 9 | -------------------------------------------------------------------------------- /Week_04/id_103/leetcode_103_455.go: -------------------------------------------------------------------------------- 1 | package id_103 2 | 3 | import "sort" 4 | 5 | func findContentChildren(g []int, s []int) int { 6 | sort.Ints(g) 7 | sort.Ints(s) 8 | child, cookie := 0,0 9 | for child < len(g) && cookie < len(s){ 10 | if g[child] <= s[cookie]{ 11 | child++ 12 | } 13 | cookie++ 14 | } 15 | return child 16 | } 17 | -------------------------------------------------------------------------------- /Week_04/id_103/leetcode_103_746.go: -------------------------------------------------------------------------------- 1 | package id_103 2 | 3 | func minCostClimbingStairs(cost []int) int { 4 | p1,p2 := 0,0 5 | for i := 2; i <= len(cost); i++ { 6 | p1 , p2 = p2, min(p2 + cost[i-1],p1+cost[i-2]) 7 | } 8 | return p2 9 | } 10 | 11 | func min(a,b int) int { 12 | if a > b{ 13 | return b 14 | }else{ 15 | return a 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Week_04/id_104/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_105/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_106/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_107/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_108/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_109/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_11/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_110/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_111/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_112/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_113/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_114/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_115/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_115/leetcode_746_115.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minCostClimbingStairs(int[] cost) { 3 | int[] f = new int[cost.length + 1];//到达每层楼最小花费 4 | f[0] = 0; 5 | f[1] = 0; 6 | for (int i = 2; i <= cost.length; i++) { 7 | f[i] = Math.min(f[i - 1] + cost[i - 1], f[i - 2] + cost[i - 2]); 8 | } 9 | return f[cost.length]; 10 | } 11 | } -------------------------------------------------------------------------------- /Week_04/id_116/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_117/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_118/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_118/src/leetcode-买卖股票问题.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_118/src/leetcode-买卖股票问题.pdf -------------------------------------------------------------------------------- /Week_04/id_118/src/四大算法思想.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_118/src/四大算法思想.pdf -------------------------------------------------------------------------------- /Week_04/id_119/LeetCode_720_119.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | string longestWord(vector& words) { 4 | string res = ""; 5 | unordered_set s; 6 | sort(words.begin(), words.end()); 7 | for (string word:words) { 8 | if (word.size() == 1 || s.count(word.substr(0, word.size() - 1))) { 9 | res = word.size() > res.size() ? word : res; 10 | s.insert(word); 11 | } 12 | } 13 | return res; 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /Week_04/id_119/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_12/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_120/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_121/LeetCode_455_121.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int findContentChildren(int[] g, int[] s) { 3 | Arrays.sort(g); 4 | Arrays.sort(s); 5 | int child = 0; 6 | int num = 0; 7 | while(child < g.length && num < s.length){ 8 | if(g[child] <= s[num]){ 9 | child ++; 10 | } 11 | num ++; 12 | } 13 | return child; 14 | } 15 | } -------------------------------------------------------------------------------- /Week_04/id_121/LeetCode_720_121.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public String longestWord(String[] words) { 3 | Arrays.sort(words); 4 | Set built = new HashSet(); 5 | String res = ""; 6 | for (String w : words) { 7 | if (w.length() == 1 || built.contains(w.substring(0, w.length() - 1))) { 8 | res = w.length() > res.length() ? w : res; 9 | built.add(w); 10 | } 11 | } 12 | return res; 13 | } 14 | } -------------------------------------------------------------------------------- /Week_04/id_121/LeetCode_746_121.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minCostClimbingStairs(int[] cost) { 3 | for (int i = 2; i < cost.length; i++) { 4 | cost[i] += Math.min(cost[i-1], cost[i-2]); 5 | } 6 | return Math.min(cost[cost.length-1], cost[cost.length-2]); 7 | } 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /Week_04/id_121/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_122/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_123/LeetCode_455_123.go: -------------------------------------------------------------------------------- 1 | package id_123 2 | 3 | import ( 4 | "sort" 5 | ) 6 | 7 | func findContentChildren(g []int, s []int) int { 8 | count := 0 9 | 10 | sort.Ints(g) 11 | sort.Ints(s) 12 | 13 | for _, needSize := range g { 14 | for index, actualSize := range s { 15 | if needSize <= actualSize { 16 | count += 1 17 | s = s[index+1:] 18 | break 19 | } 20 | } 21 | } 22 | 23 | return count 24 | } 25 | -------------------------------------------------------------------------------- /Week_04/id_123/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_124/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_125/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_126/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_127/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_128/LeetCode_169_128.go: -------------------------------------------------------------------------------- 1 | func majorityElement(nums []int) int { 2 | m := make(map[int]int) 3 | for i := 0; i < len(nums); i++ { 4 | num := nums[i] 5 | m[num] = m[num] + 1 6 | if m[num] > len(nums)/2{ 7 | return num 8 | } 9 | } 10 | return 0 11 | } 12 | -------------------------------------------------------------------------------- /Week_04/id_128/LeetCode_720_128.go: -------------------------------------------------------------------------------- 1 | func longestWord(s string) string { 2 | best, length := "", 0 3 | for _, word := range strings.Split(s, " ") { 4 | if len(word) > length { 5 | best, length = word, len(word) 6 | } 7 | } 8 | return best 9 | } 10 | -------------------------------------------------------------------------------- /Week_04/id_128/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_129/LeetCode_169_129.java: -------------------------------------------------------------------------------- 1 | import java.util.*; 2 | 3 | public class LeetCode_169_129 { 4 | public int majorityElement(int[] num) { 5 | int major = num[0], count = 1; 6 | for (int i = 1; i < num.length; i++) { 7 | if (count == 0) { 8 | count++; 9 | major = num[i]; 10 | } else if (major == num[i]) { 11 | count++; 12 | } else count--; 13 | 14 | } 15 | return major; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Week_04/id_129/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_13/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_130/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 2 | 3 | - 没学习相关知识前,用的是普通解法。复杂度会高。 4 | - 后面思考优化的地方,学习解题的基本套路是很有必要的 -------------------------------------------------------------------------------- /Week_04/id_131/LeetCode_169_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_131/LeetCode_169_131.cpp -------------------------------------------------------------------------------- /Week_04/id_131/LeetCode_455_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_131/LeetCode_455_131.cpp -------------------------------------------------------------------------------- /Week_04/id_131/LeetCode_720_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_131/LeetCode_720_131.cpp -------------------------------------------------------------------------------- /Week_04/id_131/LeetCode_746_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_131/LeetCode_746_131.cpp -------------------------------------------------------------------------------- /Week_04/id_131/LeetCode_784_131.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorithm001/algorithm/81cbe610f27c2d6167877822c703650382f084f7/Week_04/id_131/LeetCode_784_131.cpp -------------------------------------------------------------------------------- /Week_04/id_131/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_132/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_133/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_134/LeetCode_169_134.java: -------------------------------------------------------------------------------- 1 | public class Solution { 2 | public int majorityElement(int[] num) { 3 | 4 | int ans = 0, cnt = 0; 5 | for(int i=0; i int: 3 | d = {} 4 | for i in nums: 5 | d[i] = d.get(i, 0) + 1 6 | for i in d: 7 | if d[i] > len(nums) // 2: 8 | return i -------------------------------------------------------------------------------- /Week_04/id_33/LeetCode_746_33.py: -------------------------------------------------------------------------------- 1 | class Solution: 2 | def minCostClimbingStairs(self, cost: List[int]) -> int: 3 | cost.append(0) 4 | p1, p2 = cost[0], cost[1] 5 | for i in range(2, len(cost)): 6 | p1, p2 = p2, min(p1, p2)+cost[i] 7 | return p2 -------------------------------------------------------------------------------- /Week_04/id_33/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_34/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_35/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_36/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_37/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_38/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_39/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_4/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_40/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_41/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_42/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_43/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_44/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_45/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_46/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_46/leetcode_746_046.cpp: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public: 3 | int minCostClimbingStairs(vector& cost) { 4 | int dp1= cost[0]; 5 | int dp2 = cost[1]; 6 | for(int i=2; i& g, vector& s) { 4 | sort(g.begin(),g.begin()+g.size()); 5 | sort(s.begin(),s.begin()+s.size()); 6 | int i=0,j=0; 7 | while(i { 8 | if (numCounts.has(i)) { 9 | numCounts.set(i, numCounts.get(i) + 1) 10 | } else { 11 | numCounts.set(i, 1) 12 | } 13 | }) 14 | for (let [key, value] of numCounts.entries()) { 15 | if (value > nums.length / 2) { 16 | return key 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Week_04/id_72/LeetCode_169_72.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int majorityElement(int[] nums) { 3 | int result = Integer.MAX_VALUE; 4 | Map countMap = new HashMap<>(); 5 | for (int num : nums) { 6 | Integer count = countMap.getOrDefault(num, 0); 7 | count++; 8 | if (count > nums.length / 2) { 9 | result = num; 10 | break; 11 | } 12 | countMap.put(num, count); 13 | } 14 | return result; 15 | } 16 | } -------------------------------------------------------------------------------- /Week_04/id_72/LeetCode_746.java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public int minCostClimbingStairs(int[] cost) { 3 | int length = cost.length + 1; 4 | int dp0 = 0; 5 | int dp1 = 0; 6 | int dp2 = 0; 7 | for (int i = 2; i < length; i++) { 8 | dp2 = Math.min(dp0 + cost[i - 2] , dp1 + cost[i - 1]); 9 | dp0 = dp1; 10 | dp1 = dp2; 11 | } 12 | return dp2; 13 | } 14 | } -------------------------------------------------------------------------------- /Week_04/id_72/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_73/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_74/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_75/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_76/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_77/NOTE.md: -------------------------------------------------------------------------------- 1 | # 学习笔记 -------------------------------------------------------------------------------- /Week_04/id_77/leetcode_746_077 .java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | 3 | public int minCostClimbingStairs(int[] cost) { 4 | int l = cost.length; 5 | for(int i=2;i