{"id":485,"date":"2022-10-14T23:37:01","date_gmt":"2022-10-14T23:37:01","guid":{"rendered":"http:\/\/www.gislxz.top\/?p=485"},"modified":"2023-03-26T12:36:14","modified_gmt":"2023-03-26T12:36:14","slug":"leetcode%e4%b8%ad%e7%ba%a7%e7%ae%97%e6%b3%95%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/www.gislxz.com\/index.php\/2022\/10\/14\/leetcode%e4%b8%ad%e7%ba%a7%e7%ae%97%e6%b3%95%e6%80%bb%e7%bb%93\/","title":{"rendered":"Leetcode\u4e2d\u7ea7\u7b97\u6cd5\u603b\u7ed3"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u6570\u7ec4\u4e0e\u5b57\u7b26\u4e32<\/h2>\n\n\n\n<p>1\u4e09\u6570\u4e4b\u548c \u5148\u6392\u5e8f\u518d\u5efa\u7acbmap\u8fdb\u884c\u67e5\u627e\uff0c\u6ce8\u610fcontinue\u6761\u4ef6\u4ee5\u9632\u91cd\u590d\u5143\u7d20<\/p>\n\n\n\n<p>2\u77e9\u9635\u7f6e\u96f6 \u4ec5\u7528\u5e38\u91cf\u7a7a\u95f4\u89e3\u51b3\uff1f\u5c06\u539f\u77e9\u9635\u7684\u7b2c\u4e00\u884c\u548c\u7b2c\u4e00\u5217\u4f5c\u4e3a\u8bb0\u5f55\uff0c\u5355\u72ec\u8bb0\u5f55\u5de6\u4e0a\u89d2<\/p>\n\n\n\n<p>3\u5b57\u6bcd\u5f02\u4f4d\u8bcd\u5206\u7ec4 \u5c06\u5b57\u7b26\u4e32\u6392\u5e8f\u540e\u5efa\u7acb\u54c8\u5e0c\u8868\u505a\u641c\u7d22  sort(temp.begin(),temp.end());\u76f4\u63a5\u6392\u5e8f<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    vector&lt;vector&lt;string&gt;&gt; groupAnagrams(vector&lt;string&gt;&amp; strs) {\n        vector&lt;vector&lt;string&gt;&gt; answer;\n        if(strs.size()==0)\n            return answer;\n        unordered_map&lt;string,int&gt; a;\n        for(int i=0;i&lt;strs.size();i++){\n            string temp =  strs&#91;i];\n            sort(temp.begin(),temp.end());\n            if(a.find(temp)==a.end()){\n                vector&lt;string&gt; newvec{strs&#91;i]};\n                answer.push_back(newvec);\n                a.insert(pair&lt;string,int&gt;(temp,answer.size()-1));\n            }\n            else{\n                answer&#91;a&#91;temp]].push_back(strs&#91;i]);\n            }\n        }\n        return answer;\n    }\n};<\/code><\/pre>\n\n\n\n<p>4\u65e0\u91cd\u590d\u5b57\u7b26\u7684\u6700\u957f\u5b50\u4e32 \u5feb\u6162\u6307\u9488+\u5efa\u4e00\u4e2a\u6570\u7ec4\/\u54c8\u5e0c\u8868\u505a\u8bb0\u5f55<\/p>\n\n\n\n<p>5\u6700\u957f\u56de\u6587\u5b50\u4e32 \u4e2d\u5fc3\u6269\u6563\u6cd5\/\u52a8\u6001\u89c4\u5212\/\u9a6c\u62c9\u8f66<\/p>\n\n\n\n<p>6\u9012\u589e\u7684\u4e09\u5143\u5b50\u5e8f\u5217 \u8bb0\u5f55\u6700\u5c0f\u503c\u548c\u7b2c\u4e8c\u5c0f\u503c\u5373\u53ef<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    bool increasingTriplet(vector&lt;int&gt;&amp; nums) {\n        int l1=nums&#91;0];int l2=INT_MAX;\n        for(int i=1;i&lt;nums.size();i++){\n            if(nums&#91;i]&lt;=l1){\n                l1=nums&#91;i];\n            }\n            else if(nums&#91;i]&lt;=l2){\n                l2=nums&#91;i];\n            }\n            else\n                return true;\n        }\n        return false;\n    }\n};<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u94fe\u8868<\/h2>\n\n\n\n<p>1\u4e24\u6570\u76f8\u52a0 \u5efa\u7acb\u65b0\u94fe\u8868\u8bb0\u5f55\u6bcf\u4f4d\u548c\uff0c\u7ec8\u6b62\u6761\u4ef6\u4e3a\u67d0\u4e00\u94fe\u8868\u5230nullptr\u4ee5\u53ca\u4e0d\u8fdb\u4f4d<\/p>\n\n\n\n<p>2\u5947\u5076\u94fe\u8868 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    ListNode* oddEvenList(ListNode* head) {\n        if(head==nullptr || head-&gt;next==nullptr || head-&gt;next-&gt;next==nullptr)\n            return head;\n        ListNode* oddHead = head;\n        \/\/\u5947\u6570\u94fe\u8868\u7684\u5f53\u524d\u8282\u70b9\n        ListNode* oddCur = oddHead;\n\n        \/\/\u5076\u6570\u94fe\u8868\u7684\u5934\u8282\u70b9\n        ListNode* evenHead = head-&gt;next;\n        \/\/\u5076\u6570\u94fe\u8868\u7684\u5f53\u524d\u8282\u70b9\n        ListNode* evenCur = evenHead;\n\n        while (evenCur != nullptr &amp;&amp; evenCur-&gt;next != nullptr) {\n            \/\/\u5947\u6570\u8282\u70b9\u4e32\u4e00\u8d77\n            oddCur-&gt;next = oddCur-&gt;next-&gt;next;\n            \/\/\u5076\u6570\u8282\u70b9\u4e32\u4e00\u8d77\n            evenCur-&gt;next = evenCur-&gt;next-&gt;next;\n            \/\/\u5947\u5076\u6307\u9488\u5f80\u540e\u79fb\n            oddCur = oddCur-&gt;next;\n            evenCur = evenCur-&gt;next;\n        }\n        \/\/\u6700\u540e\u5076\u6570\u94fe\u8868\u548c\u5947\u6570\u94fe\u8868\u9700\u8981\u4e32\u5728\u4e00\u8d77\n        oddCur-&gt;next = evenHead;\n        return oddHead;\n    }\n};<\/code><\/pre>\n\n\n\n<p>3\u76f8\u4ea4\u94fe\u8868 \u8d70\u5230\u5c3e\u540e\u4ece\u53e6\u4e00\u94fe\u8868\u5934\u5f00\u59cb\uff0c\u6700\u7ec8\u76f8\u4ea4\u4e8e\u4ea4\u70b9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Solution {\npublic:\n    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {\n        ListNode *l1=headA;\n        ListNode *l2=headB;\n        while(l1!=l2){\n            if(l1-&gt;next==nullptr &amp;&amp; l2-&gt;next==nullptr)\n                return nullptr;\n            if(l1-&gt;next==nullptr)\n                l1=headB;\n            else\n                l1=l1-&gt;next;\n            if(l2-&gt;next==nullptr)\n                l2=headA;\n            else\n                l2=l2-&gt;next;\n        }\n        return l1;\n    }\n};<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6811\u548c\u56fe<\/h2>\n\n\n\n<p>1\u4e8c\u53c9\u6811\u7684\u4e2d\u5e8f\u904d\u5386 \u5de6\u4e2d\u53f3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u9012\u5f52\u89e3\u6cd5\nclass Solution {\npublic:\n    void order(TreeNode* currentNode,vector&lt;int&gt; &amp;result){\n        if (!currentNode)\n            return;\n        order(currentNode-&gt;left,result);\n        result.push_back(currentNode-&gt;val);  \n        order(currentNode-&gt;right,result);\n    }\n    vector&lt;int&gt; inorderTraversal(TreeNode* root) {\n        vector&lt;int&gt; res;\n        order(root,res);\n        return res;\n    }\n};\n#\u8fed\u4ee3\u89e3\u6cd5\npublic:\n    vector&lt;int&gt; inorderTraversal(TreeNode* root) {\n        if (root == nullptr) {\n            return vector&lt;int&gt;();\n        }\n        vector&lt;int&gt; answer;\n        stack&lt;TreeNode*&gt; stack0;\n        while (root != nullptr || !stack0.empty()) {\n            while (root != nullptr) {\n                stack0.push(root);\n                root = root-&gt;left;\n            }\n            if (!stack0.empty()) {\n                TreeNode *node = stack0.top();\n                stack0.pop();\n                answer.push_back(node-&gt;val);\n                root = node-&gt;right;\n            }\n        }\n        return answer;\n    }\n};<\/code><\/pre>\n\n\n\n<p>2\u4e8c\u53c9\u6811\u7684\u952f\u9f7f\u5f62\u5c42\u6b21\u904d\u5386<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BFS\u89e3\u6cd5\nclass Solution {\npublic:\n    vector&lt;vector&lt;int&gt;&gt; zigzagLevelOrder(TreeNode* root) {\n    vector&lt;vector&lt;int&gt;&gt; answer;\n    if(root==nullptr)\n        return answer;\n    int index = 0;\n    answer.push_back({ root-&gt;val });\n    queue&lt;TreeNode*&gt; nodes;\n    nodes.push(root);\n    while (!nodes.empty()) {\n        int size0 = nodes.size();\n        vector&lt;int&gt; temp;\n        stack&lt;TreeNode*&gt; s1;\n        for (int i = 0; i &lt; size0; i++) {\n            s1.push(nodes.front());\n            nodes.pop();\n        }\n        for (int i = 0; i &lt; size0; i++) {\n            TreeNode* temp_node=s1.top();\n            s1.pop();\n            if (index % 2 == 0) {\n                if (temp_node-&gt;right != nullptr) {\n                    temp.push_back(temp_node-&gt;right-&gt;val);\n                    nodes.push(temp_node-&gt;right);\n                }\n                if (temp_node-&gt;left != nullptr) {\n                    temp.push_back(temp_node-&gt;left-&gt;val);\n                    nodes.push(temp_node-&gt;left);\n                }\n            }\n            else {\n                if (temp_node-&gt;left != nullptr)\n                {\n                    temp.push_back(temp_node-&gt;left-&gt;val);\n                    nodes.push(temp_node-&gt;left);\n                }\n                if (temp_node-&gt;right != nullptr)\n                {\n                    temp.push_back(temp_node-&gt;right-&gt;val);\n                    nodes.push(temp_node-&gt;right);\n                }\n            }\n        }\n        if(!temp.empty())\n            answer.push_back(temp);\n        index++;\n    }\n    return answer;\n    }\n};\nDFS\u89e3\u6cd5\nclass Solution {\npublic:\n    vector&lt;vector&lt;int&gt;&gt; zigzagLevelOrder(TreeNode* root) {\n        vector&lt;deque&lt;int&gt;&gt; res;\n        travel(root,&amp;res, 0);\n        vector&lt;vector&lt;int&gt;&gt; res0;\n        for(int i=0;i&lt;res.size();i++){\n            vector&lt;int&gt; temp(res&#91;i].begin(),res&#91;i].end());\n            res0.push_back(temp);\n        }\n        return res0;\n        }\n\n    void travel(TreeNode* cur, vector&lt;deque&lt;int&gt;&gt;* res, int level) {\n        if (cur == nullptr)\n            return;\n        \/\/\u5982\u679cres.size() &lt;= level\u8bf4\u660e\u4e0b\u4e00\u5c42\u7684\u96c6\u5408\u8fd8\u6ca1\u521b\u5efa\uff0c\u6240\u4ee5\u8981\u5148\u521b\u5efa\u4e0b\u4e00\u5c42\u7684\u96c6\u5408\n        if (res-&gt;size() &lt;= level) {\n            deque&lt;int&gt; newLevel;\n            res-&gt;push_back(newLevel);\n        }\n        \/\/\u904d\u5386\u5230\u7b2c\u51e0\u5c42\u6211\u4eec\u5c31\u64cd\u4f5c\u7b2c\u51e0\u5c42\u7684\u6570\u636e\n        deque&lt;int&gt; *list = &amp;(*res)&#91;level];\n        \/\/\u8fd9\u91cc\u9ed8\u8ba4\u6839\u8282\u70b9\u662f\u7b2c0\u5c42\uff0c\u5076\u6570\u5c42\u76f8\u5f53\u4e8e\u4ece\u5de6\u5f80\u53f3\u904d\u5386\uff0c\n        \/\/ \u6240\u4ee5\u8981\u6dfb\u52a0\u5230\u96c6\u5408\u7684\u672b\u5c3e\uff0c\u5982\u679c\u662f\u5947\u6570\u5c42\u76f8\u5f53\u4e8e\u4ece\u53f3\u5f80\u5de6\u904d\u5386\uff0c\n        \/\/ \u8981\u628a\u6570\u636e\u6dfb\u52a0\u5230\u96c6\u5408\u7684\u5f00\u5934\n        if (level % 2 == 0)\n            list-&gt;push_back(cur-&gt;val);\n        else\n            list-&gt;push_front(cur-&gt;val);\n        \/\/\u5206\u522b\u904d\u5386\u5de6\u53f3\u4e24\u4e2a\u5b50\u8282\u70b9\uff0c\u5230\u4e0b\u4e00\u5c42\u4e86\uff0c\u6240\u4ee5\u5c42\u6570\u8981\u52a01\n        travel(cur-&gt;left, res, level + 1);\n        travel(cur-&gt;right, res, level + 1);\n    }\n};<\/code><\/pre>\n\n\n\n<p>3\u4ece\u524d\u5e8f\u4e0e\u4e2d\u5e8f\u904d\u5386\u5e8f\u5217\u6784\u9020\u4e8c\u53c9\u6811<\/p>\n\n\n\n<p>\u89e3\u9898\u5173\u952e\uff1a\u53f3\u8282\u70b9\u6c38\u8fdc\u90fd\u4e0d\u53ef\u80fd\u6bd4\u5de6\u8282\u70b9\u5148\u904d\u5386<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\u56db\u6307\u9488\u8fed\u4ee3\u89e3\u6cd5\nclass Solution {\npublic:\n    TreeNode* buildTree(vector&lt;int&gt;&amp; preorder, vector&lt;int&gt;&amp; inorder) \n    {\n    TreeNode* root = new TreeNode(preorder&#91;0]);\n    if(inorder.empty())\n        return root;\n    btree(root, preorder, inorder, 0 , inorder.size()-1 ,0 ,inorder.size()-1);\n    return root;\n    }\nvoid btree(TreeNode* root, vector&lt;int&gt;&amp; preorder, vector&lt;int&gt;&amp; inorder, int index1,int index2, int index3, int index4) {\n    for (int i = index3;; i++) {\n        if (preorder&#91;index1] == inorder&#91;i]) {\n            if (i&gt;index3) {\n                TreeNode* left = new TreeNode(preorder&#91;index1 + 1]);\n                root-&gt;left = left;\n                btree(left, preorder, inorder, index1 + 1 ,index1+i-index3 ,index3,i-1);\n            }\n            else {\n                root-&gt;left = nullptr;\n            }\n            if (index4&gt;i) {\n                TreeNode* right = new TreeNode(preorder&#91;index1+i-index3+1]);\n                root-&gt;right = right;\n                btree(right, preorder, inorder,index1 + i - index3 + 1, index2,i + 1 ,index4);\n            }\n            else {\n                root-&gt;right == nullptr;\n            }\n            break;\n        }\n    }\n}\n};<\/code><\/pre>\n\n\n\n<p>\u6301\u7eed\u66f4\u65b0\u3002\u3002\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6570\u7ec4\u4e0e\u5b57\u7b26\u4e32 1\u4e09\u6570\u4e4b\u548c \u5148\u6392\u5e8f\u518d\u5efa\u7acbmap\u8fdb\u884c\u67e5\u627e\uff0c\u6ce8\u610fcontinue\u6761\u4ef6\u4ee5\u9632\u91cd\u590d\u5143\u7d20 2\u77e9\u9635\u7f6e\u96f6 \u4ec5\u7528\u5e38\u91cf\u7a7a\u95f4\u89e3\u51b3\uff1f\u5c06\u539f\u77e9\u9635 &#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12,5,11],"tags":[],"class_list":["post-485","post","type-post","status-publish","format-standard","hentry","category-leetcode","category-5","category-11"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/posts\/485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/comments?post=485"}],"version-history":[{"count":2,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":505,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/posts\/485\/revisions\/505"}],"wp:attachment":[{"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/media?parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/categories?post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gislxz.com\/index.php\/wp-json\/wp\/v2\/tags?post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}