{"id":2503,"date":"2024-12-19T21:15:46","date_gmt":"2024-12-19T13:15:46","guid":{"rendered":"https:\/\/guapicoding.com\/?p=2503"},"modified":"2025-03-03T21:56:08","modified_gmt":"2025-03-03T13:56:08","slug":"leetcode-hot100%e6%8a%80%e5%b7%a7","status":"publish","type":"post","link":"https:\/\/guapicoding.com\/?p=2503","title":{"rendered":"LeetCode hot100@\u6280\u5de7"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/leetcode.cn\/problems\/single-number\/\">136. \u53ea\u51fa\u73b0\u4e00\u6b21\u7684\u6570\u5b57<\/a>\u274c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>\u5982\u679c\u80fd\u7528sort\u51fd\u6570\u6216\u8005set\u5bb9\u5668\u5c31\u5f88\u7b80\u5355\uff0c\u53ef\u60dc\u4e0d\u5141\u8bb8<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>\u5f02\u6216\u89e3\u51b3<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    int singleNumber(vector&lt;int&gt;&amp; nums) {\n        int res = 0;  \n        for(int num : nums) {\n            res ^= num;\n        }      \n        return res;                                                                                                                                                                                                  \n    }\n};<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/leetcode.cn\/problems\/majority-element\/\">169. \u591a\u6570\u5143\u7d20<\/a>\u2705<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>\u4ee5\u7a7a\u95f4\u6362\u8111\u7ec6\u80de \u76f4\u63a5map+set<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    int majorityElement(vector&lt;int&gt;&amp; nums) {\n        unordered_map&lt;int, int&gt; mp;\n        unordered_set&lt;int&gt; st;\n        for(int &amp;num : nums) {\n            st.insert(num);\n            mp&#91;num]++;\n        }\n        for(auto &amp;num : st) {\n            if(mp&#91;num] &gt; nums.size() \/ 2) return num;\n        }\n        return 0;\n    }\n};<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/leetcode.cn\/problems\/sort-colors\/\">75. \u989c\u8272\u5206\u7c7b<\/a>\u2705<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>\u7edf\u8ba1\u4e00\u4e0b\u5404\u989c\u8272\u6570\u91cf\uff0c\u518d\u539f\u5730\u4fee\u6539\u6570\u7ec4<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    void sortColors(vector&lt;int>&amp; nums) {\n        int cnt&#91;3] = {0, 0, 0};\n        for(int num : nums) cnt&#91;num]++;\n        for(int i = 0; i &lt; cnt&#91;0]; i++) nums&#91;i] = 0;\n        for(int i = cnt&#91;0]; i &lt; cnt&#91;0] + cnt&#91;1]; i++) nums&#91;i] = 1;\n        for(int i = cnt&#91;0] + cnt&#91;1]; i &lt; cnt&#91;0] + cnt&#91;1] + cnt&#91;2]; i++) nums&#91;i] = 2;\n    }\n};<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/leetcode.cn\/problems\/next-permutation\/\">31. \u4e0b\u4e00\u4e2a\u6392\u5217<\/a>\u274c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/next-permutation\/solutions\/345194\/c-4msti-jie-si-lu-jian-dan-4bu-jie-jue-by-jie-yi\/?envType=study-plan-v2&amp;envId=top-100-liked\"><strong><em>\u60f3\u4e0d\u5230<\/em><\/strong><\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    void nextPermutation(vector&lt;int>&amp; nums) {\n        int pos1 = -1, pos2;\n        for(int i = nums.size() - 1; i > 0; i--) {\n            if(nums&#91;i] > nums&#91;i-1]) {\n                pos1 = i;\n                break;\n            }\n        }\n\n        if(pos1 == -1) { \/\/\u8bf4\u660e\u662f\u6700\u5927\u6392\u5217\n            reverse(nums.begin(), nums.end());\n            return ;\n        }\n\n        for(int i = nums.size() - 1; i >= 0; i--) {\n            if(nums&#91;i] > nums&#91;pos1 - 1]) {\n                pos2 = i;\n                break;\n            }\n        }\n        cout &lt;&lt; \"pos1:\" &lt;&lt; pos1 &lt;&lt; \" \" &lt;&lt; \"pos2:\" &lt;&lt; pos2 &lt;&lt; endl;\n        swap(nums&#91;pos1-1], nums&#91;pos2]);\n        reverse(nums.begin() + pos1, nums.end());\n    }\n};<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/leetcode.cn\/problems\/find-the-duplicate-number\/\">287. \u5bfb\u627e\u91cd\u590d\u6570<\/a>\u274c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>\u4e0d\u80fd\u4fee\u6539\u6570\u7ec4\u4e14\u53ea\u80fd\u7528\u5e38\u91cf\u7ea7\u989d\u5916\u7a7a\u95f4<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u300c\u4e8c\u5206\u67e5\u627e\u300d\u7684\u601d\u8def\u662f\u5148\u731c\u4e00\u4e2a\u6570\uff08\u641c\u7d22\u8303\u56f4[left..right]\u91cc\u4f4d\u4e8e\u4e2d\u95f4\u7684\u6570mid\uff09\uff0c\u7136\u540e\u7edf\u8ba1\u539f\u59cb\u6570\u7ec4\u4e2d\u5c0f\u4e8e\u7b49\u4e8emid\u7684\u5143\u7d20\u7684\u4e2a\u6570count\uff1a\u5982\u679ccount\u4e25\u683c\u5927\u4e8emid\uff0c\u6839\u636e\u62bd\u5c49\u539f\u7406\uff0c\u91cd\u590d\u5143\u7d20\u5c31\u5728\u533a\u95f4[left..mid]\u91cc\uff1b\u5426\u5219\uff0c\u91cd\u590d\u5143\u7d20\u53ef\u4ee5\u5728\u533a\u95f4[mid + 1..right]\u91cc\u627e\u5230<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>\u4e0d\u662f\u4e8c\u5206\u6570\u5b57\uff0c\u800c\u662f\u4e8c\u5206\u4e0b\u6807\uff0c\u56e0\u4e3a\u4e0b\u6807\u662f\u6709\u5e8f\u7684<\/strong><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    int findDuplicate(vector&lt;int>&amp; nums) {\n        int left = 0, right = nums.size() - 1, mid, count;\n        while(left &lt; right) {\n            mid = (left + right) \/ 2;\n            count = 0;\n            for(int &amp;num : nums) {\n                if(num &lt;= mid) count++;\n            }\n            if(count > mid) right = mid;\n            else left = mid + 1;\n        }\n        return left;\n    }\n};<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>136. \u53ea\u51fa\u73b0\u4e00\u6b21\u7684\u6570\u5b57\u274c \u5982\u679c\u80fd\u7528sort\u51fd\u6570\u6216\u8005set\u5bb9\u5668\u5c31\u5f88\u7b80\u5355\uff0c\u53ef\u60dc\u4e0d\u5141\u8bb8 \u5f02\u6216\u89e3\u51b3 169. \u591a\u6570 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[18,19,84],"class_list":["post-2503","post","type-post","status-publish","format-standard","hentry","category-suanfa","tag-leetcode","tag-19","tag-84"],"_links":{"self":[{"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/posts\/2503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guapicoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2503"}],"version-history":[{"count":6,"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/posts\/2503\/revisions"}],"predecessor-version":[{"id":2513,"href":"https:\/\/guapicoding.com\/index.php?rest_route=\/wp\/v2\/posts\/2503\/revisions\/2513"}],"wp:attachment":[{"href":"https:\/\/guapicoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guapicoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guapicoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}