{"id":76216,"date":"2026-02-21T23:50:02","date_gmt":"2026-02-21T15:50:02","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/76216.html"},"modified":"2026-02-21T23:50:02","modified_gmt":"2026-02-21T15:50:02","slug":"%e3%80%8aleetcode-%e9%a1%ba%e5%ba%8f%e5%88%b7%e9%a2%98%e3%80%8b11-20","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/76216.html","title":{"rendered":"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20"},"content":{"rendered":"<h4>11\u3001[\u4e2d\u7b49] \u76db\u6700\u591a\u6c34\u7684\u5bb9\u5668<\/h4>\n<p>\u53cc\u6307\u9488<\/p>\n<h5>c&#043;&#043;<\/h5>\n<p>class Solution {<br \/>\npublic:<br \/>\n    int maxArea(vector&lt;int&gt;&amp; height) {<br \/>\n        int left &#061; 0;<br \/>\n        int right &#061; height.size() &#8211; 1;<br \/>\n        int ret &#061; 0;<br \/>\n        while (left &lt; right) {<br \/>\n            int v &#061; min(height[left], height[right]) * (right &#8211; left);<br \/>\n            ret &#061; max(ret, v);<\/p>\n<p>            \/\/ \u79fb\u52a8\u6307\u9488<br \/>\n            if (height[left] &lt; height[right]) {<br \/>\n                &#043;&#043;left;<br \/>\n            } else {<br \/>\n                &#8211;right;<br \/>\n            }<br \/>\n        }<br \/>\n        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h5>Java<\/h5>\n<p><span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Solution<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">maxArea<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> height<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> left <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5de6\u6307\u9488<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> right <span class=\"token operator\">&#061;<\/span> height<span class=\"token punctuation\">.<\/span>length <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u53f3\u6307\u9488<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> maxArea <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u6700\u5927\u9762\u79ef<\/span><\/p>\n<p>        <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>left <span class=\"token operator\">&lt;<\/span> right<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u8ba1\u7b97\u5f53\u524d\u5bb9\u5668\u7684\u9762\u79ef<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> currentArea <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">min<\/span><span class=\"token punctuation\">(<\/span>height<span class=\"token punctuation\">[<\/span>left<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> height<span class=\"token punctuation\">[<\/span>right<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>right <span class=\"token operator\">&#8211;<\/span> left<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u66f4\u65b0\u6700\u5927\u9762\u79ef<\/span><br \/>\n            maxArea <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>maxArea<span class=\"token punctuation\">,<\/span> currentArea<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/ \u79fb\u52a8\u6307\u9488<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>height<span class=\"token punctuation\">[<\/span>left<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;<\/span> height<span class=\"token punctuation\">[<\/span>right<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                left<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5982\u679c\u5de6\u8fb9\u9ad8\u5ea6\u8f83\u5c0f&#xff0c;\u79fb\u52a8\u5de6\u6307\u9488<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                right<span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5982\u679c\u53f3\u8fb9\u7684\u9ad8\u5ea6\u8f83\u5c0f&#xff0c;\u79fb\u52a8\u53f3\u6307\u9488<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">return<\/span> maxArea<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>12\u3001[\u4e2d\u7b49] \u6574\u6570\u8f6c\u7f57\u9a6c\u6570\u5b57<\/h4>\n<p>\u6570\u5b66 \u5b57\u7b26\u4e32<\/p>\n<p>\u6a21\u62df<\/p>\n<p>const pair&lt;int, string&gt; valueSymbols[] &#061; {<br \/>\n    {1000, &#034;M&#034;}, {900, &#034;CM&#034;}, {500, &#034;D&#034;}, {400, &#034;CD&#034;}, {100, &#034;C&#034;},<br \/>\n    {90, &#034;XC&#034;},  {50, &#034;L&#034;},   {40, &#034;XL&#034;}, {10, &#034;X&#034;},   {9, &#034;IX&#034;},<br \/>\n    {5, &#034;V&#034;},    {4, &#034;IV&#034;},   {1, &#034;I&#034;},<br \/>\n};<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string intToRoman(int num) {<br \/>\n        string roman;<br \/>\n        for (const auto&amp; [value, symbol] : valueSymbols) {<br \/>\n            while (num &gt;&#061; value) {<br \/>\n                num -&#061; value;<br \/>\n                roman &#043;&#061; symbol;<br \/>\n            }<br \/>\n            if (num &#061;&#061; 0) {<br \/>\n                break;<br \/>\n            }<br \/>\n        }<br \/>\n        return roman;<br \/>\n    }<br \/>\n};<\/p>\n<p>\u786c\u7f16\u7801\u6570\u5b57<\/p>\n<p>const string thousands[] &#061; {&#034;&#034;, &#034;M&#034;, &#034;MM&#034;, &#034;MMM&#034;};<br \/>\nconst string hundreds[] &#061; {&#034;&#034;, &#034;C&#034;, &#034;CC&#034;, &#034;CCC&#034;, &#034;CD&#034;, &#034;D&#034;, &#034;DC&#034;, &#034;DCC&#034;, &#034;DCCC&#034;, &#034;CM&#034;};<br \/>\nconst string tens[] &#061; {&#034;&#034;, &#034;X&#034;, &#034;XX&#034;, &#034;XXX&#034;, &#034;XL&#034;, &#034;L&#034;, &#034;LX&#034;, &#034;LXX&#034;, &#034;LXXX&#034;, &#034;XC&#034;};<br \/>\nconst string ones[] &#061; {&#034;&#034;, &#034;I&#034;, &#034;II&#034;, &#034;III&#034;, &#034;IV&#034;, &#034;V&#034;, &#034;VI&#034;, &#034;VII&#034;, &#034;VIII&#034;, &#034;IX&#034;};<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string intToRoman(int num) {<br \/>\n        return thousands[num \/ 1000] &#043; hundreds[num % 1000 \/ 100] &#043; tens[num % 100 \/ 10] &#043; ones[num % 10];<br \/>\n    }<br \/>\n};<\/p>\n<h4>13\u3001[\u7b80\u5355] \u7f57\u9a6c\u6570\u5b57\u8f6c\u6574\u6570<\/h4>\n<p>\u54c8\u5e0c\u8868 \u6570\u5b66 \u5b57\u7b26\u4e32<\/p>\n<p>class Solution {<br \/>\nprivate:<br \/>\n    unordered_map&lt;char, int&gt; symbolValue &#061; {{&#039;I&#039;, 1},   {&#039;V&#039;, 5},   {&#039;X&#039;, 10}, {&#039;L&#039;, 50},  {&#039;C&#039;, 100}, {&#039;D&#039;, 500}, {&#039;M&#039;, 1000}};<\/p>\n<p>public:<br \/>\n    int romanToInt(string s) {<br \/>\n        int ret &#061; 0;<br \/>\n        int n &#061; s.size();<br \/>\n        for (int i &#061; 0; i &lt; n; &#043;&#043;i) {<br \/>\n            int value &#061; symbolValue[s[i]];<br \/>\n            if (i &lt; n &#8211; 1 &amp;&amp; value &lt; symbolValue[s[i &#043; 1]]) {<br \/>\n                ret -&#061; value;<br \/>\n            } else {<br \/>\n                ret &#043;&#061; value;<br \/>\n            }<br \/>\n        }<br \/>\n        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h4>14\u3001[\u7b80\u5355] \u6700\u957f\u516c\u5171\u524d\u7f00<\/h4>\n<p>\u5b57\u7b26\u4e32 \u4e8c\u5206\u67e5\u627e<\/p>\n<p>\u6a2a\u5411\u626b\u63cf<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string longestCommonPrefix(vector&lt;string&gt;&amp; strs) {<br \/>\n        \/\/ \u89e3\u6cd5\u4e00&#xff1a;\u4e24\u4e24\u6bd4\u8f83<br \/>\n        string ret &#061; strs[0];<br \/>\n        for (int i &#061; 1; i &lt; strs.size(); i&#043;&#043;) {<br \/>\n            ret &#061; findCommon(ret, strs[i]);<br \/>\n        }<br \/>\n        return ret;<br \/>\n    }<\/p>\n<p>    string findCommon(string&amp; s1, string&amp; s2)<br \/>\n    {<br \/>\n        int i &#061; 0;<br \/>\n        while (i &lt; min(s1.size(), s2.size()) &amp;&amp; s1[i] &#061;&#061; s2[i]) {<br \/>\n            i&#043;&#043;;<br \/>\n        }<br \/>\n        return s1.substr(0, i);<br \/>\n    }<br \/>\n};<\/p>\n<p>\u7eb5\u5411\u626b\u63cf<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string longestCommonPrefix(vector&lt;string&gt;&amp; strs) {<br \/>\n        if (!strs.size()) {<br \/>\n            return &#034;&#034;;<br \/>\n        }<\/p>\n<p>        int length &#061; strs[0].size();<br \/>\n        int count &#061; strs.size();<br \/>\n        for (int i &#061; 0; i &lt; length; i&#043;&#043;) {<br \/>\n            char c &#061; strs[0][i];<br \/>\n            for (int j &#061; 1; j &lt; count; j&#043;&#043;) {<br \/>\n                if (i &#061;&#061; strs[j].size() || strs[j][i] !&#061; c) {<br \/>\n                    return strs[0].substr(0, i);<br \/>\n                }<br \/>\n            }<br \/>\n        }<\/p>\n<p>        return strs[0];<br \/>\n    }<br \/>\n};<\/p>\n<p>\u5206\u6cbb<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string longestCommonPrefix(vector&lt;string&gt;&amp; strs) {<br \/>\n        if (!strs.size()) {<br \/>\n            return &#034;&#034;;<br \/>\n        } else {<br \/>\n            return longestCommonPrefix(strs, 0, strs.size() &#8211; 1);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    string longestCommonPrefix(const vector&lt;string&gt;&amp; strs, int start, int end) {<br \/>\n        if (start &#061;&#061; end) {<br \/>\n            return strs[start];<br \/>\n        } else {<br \/>\n            int mid &#061; (start &#043; end) \/ 2;<br \/>\n            string lcpLeft &#061; longestCommonPrefix(strs, start, mid);<br \/>\n            string lcpRight &#061; longestCommonPrefix(strs, mid &#043; 1, end);<br \/>\n            return commonPrefix(lcpLeft, lcpRight);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    string commonPrefix(const string&amp; lcpLeft, const string&amp; lcpRight) {<br \/>\n        int minLength &#061; min(lcpLeft.size(), lcpRight.size());<br \/>\n        for (int i &#061; 0; i &lt; minLength; i&#043;&#043;) {<br \/>\n            if (lcpLeft[i] !&#061; lcpRight[i]) {<br \/>\n                return lcpLeft.substr(0, i);<br \/>\n            }<br \/>\n        }<br \/>\n        return lcpLeft.substr(0, minLength);<br \/>\n    }<br \/>\n};<\/p>\n<p>\u6392\u5e8f<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    string longestCommonPrefix(vector&lt;string&gt;&amp; strs) {<br \/>\n        if (strs.empty()) {<br \/>\n            return &#034;&#034;;<br \/>\n        }<\/p>\n<p>        sort(strs.begin(), strs.end());<br \/>\n        string start &#061; strs.front();<br \/>\n        string end &#061; strs.back();<br \/>\n        int n &#061; min(start.size(), end.size());<br \/>\n        int i &#061; 0;<br \/>\n        for (i &#061; 0; i &lt; n &amp;&amp; start[i] &#061;&#061; end[i]; i&#043;&#043;)<br \/>\n            ;<\/p>\n<p>        return string(start, 0, i);<br \/>\n    }<br \/>\n};<\/p>\n<h4>15\u3001[\u4e2d\u7b49] \u4e09\u6570\u4e4b\u548c<\/h4>\n<p>\u6392\u5e8f \u6570\u7ec4 \u53cc\u6307\u9488<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    vector&lt;vector&lt;int&gt;&gt; threeSum(vector&lt;int&gt;&amp; nums) {<br \/>\n        sort(nums.begin(), nums.end());<br \/>\n        vector&lt;vector&lt;int&gt;&gt; ret;<\/p>\n<p>        int n &#061; nums.size();<br \/>\n        for (int i &#061; 0; i &lt; n; &#043;&#043;i) {<br \/>\n            if (nums[i] &gt; 0) {<br \/>\n                break;<br \/>\n            }<br \/>\n            int left &#061; i &#043; 1;<br \/>\n            int right &#061; n &#8211; 1;<br \/>\n            int target &#061; -nums[i];<\/p>\n<p>            while (left &lt; right) {<br \/>\n                int sum &#061; nums[left] &#043; nums[right];<br \/>\n                if (sum &gt; target) {<br \/>\n                    &#8211;right;<br \/>\n                } else if (sum &lt; target) {<br \/>\n                    &#043;&#043;left;<br \/>\n                } else {<br \/>\n                    ret.push_back({nums[i], nums[left], nums[right]});<br \/>\n                    &#043;&#043;left;<br \/>\n                    &#8211;right;<\/p>\n<p>                    while (left &lt; right &amp;&amp; nums[left] &#061;&#061; nums[left &#8211; 1]) {<br \/>\n                        &#043;&#043;left;<br \/>\n                    }<br \/>\n                    while(left &lt; right &amp;&amp; nums[right] &#061;&#061; nums[right &#043; 1]) {<br \/>\n                        &#8211;right;<br \/>\n                    }<br \/>\n                }<br \/>\n            }<\/p>\n<p>            while (i &lt; n &#8211; 1 &amp;&amp; nums[i] &#061;&#061; nums[i &#043; 1]) {<br \/>\n                &#043;&#043;i;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h4>16\u3001[\u4e2d\u7b49] \u6700\u63a5\u8fd1\u7684\u4e09\u6570\u4e4b\u548c<\/h4>\n<p>\u6392\u5e8f \u6570\u7ec4 \u53cc\u6307\u9488<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    int threeSumClosest(vector&lt;int&gt;&amp; nums, int target) {<br \/>\n        sort(nums.begin(), nums.end());<br \/>\n        int n &#061; nums.size();<br \/>\n        int ret &#061; 1e7;<\/p>\n<p>        \/\/ \u6839\u636e\u5dee\u503c\u7684\u7edd\u5bf9\u503c\u6765\u66f4\u65b0\u7b54\u6848<br \/>\n        auto update &#061; [&amp;](int cur) {<br \/>\n            if (abs(cur &#8211; target) &lt; abs(ret &#8211; target)) {<br \/>\n                ret &#061; cur;<br \/>\n            }<br \/>\n        };<\/p>\n<p>        \/\/ \u679a\u4e3e a<br \/>\n        for (int i &#061; 0; i &lt; nums.size(); i&#043;&#043;) {<br \/>\n            \/\/ \u4fdd\u8bc1\u548c\u4e0a\u4e00\u6b21\u679a\u4e3e\u7684\u5143\u7d20\u4e0d\u76f8\u7b49<br \/>\n            if (i &gt; 0 &amp;&amp; nums[i] &#061;&#061; nums[i &#8211; 1]) {<br \/>\n                continue;<br \/>\n            }<\/p>\n<p>            \/\/ \u4f7f\u7528\u53cc\u6307\u9488\u679a\u4e3e b \u548c c<br \/>\n            int left &#061; i &#043; 1, right &#061; n &#8211; 1;<br \/>\n            while (left &lt; right) {<br \/>\n                int sum &#061; nums[i] &#043; nums[left] &#043; nums[right];<br \/>\n                \/\/ \u5982\u679c\u548c\u4e3a target \u76f4\u63a5\u8fd4\u56de\u7b54\u6848<br \/>\n                if (sum &#061;&#061; target) {<br \/>\n                    return target;<br \/>\n                }<\/p>\n<p>                update(sum);<br \/>\n                if (sum &gt; target) {<br \/>\n                    \/\/ \u5982\u679c\u548c\u5927\u4e8e target&#xff0c;\u79fb\u52a8 c \u5bf9\u5e94\u7684\u6307\u9488<br \/>\n                    right&#8211;;<br \/>\n                    while (left &lt; right &amp;&amp; nums[right] &#061;&#061; nums[right &#043; 1]) {<br \/>\n                        right&#8211;;<br \/>\n                    }<\/p>\n<p>                } else {<br \/>\n                    \/\/ \u5982\u679c\u548c\u5c0f\u4e8e target&#xff0c;\u79fb\u52a8 b \u5bf9\u5e94\u7684\u6307\u9488<br \/>\n                    left&#043;&#043;;<br \/>\n                    while (left &lt; right &amp;&amp; nums[left] &#061;&#061; nums[left &#8211; 1]) {<br \/>\n                        left&#043;&#043;;<br \/>\n                    }<br \/>\n                }<br \/>\n            }<br \/>\n        }<\/p>\n<p>        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h4>17\u3001[\u4e2d\u7b49] \u7535\u8bdd\u53f7\u7801\u7684\u5b57\u6bcd\u7ec4\u5408<\/h4>\n<p>\u54c8\u5e0c\u8868 \u5b57\u7b26\u4e32 \u56de\u6eaf<\/p>\n<p>class Solution {<br \/>\nprivate:<br \/>\n    string hash[10] &#061; {&#034;&#034;, &#034;&#034;, &#034;abc&#034;, &#034;def&#034;, &#034;ghi&#034;, &#034;jkl&#034;, &#034;mno&#034;, &#034;pqrs&#034;, &#034;tuv&#034;, &#034;wxyz&#034;};<br \/>\n    string path;<br \/>\n    vector&lt;string&gt; ret;<\/p>\n<p>    void dfs(string&amp; digits, int pos) {<br \/>\n        if (pos &#061;&#061; digits.size()) {<br \/>\n            ret.push_back(path);<br \/>\n            return;<br \/>\n        }<br \/>\n        for (const auto&amp; ch : hash[digits[pos] &#8211; &#039;0&#039;]) {<br \/>\n            path.push_back(ch);<br \/>\n            dfs(digits, pos &#043; 1);<br \/>\n            path.pop_back();<br \/>\n        }<br \/>\n    }<\/p>\n<p>public:<br \/>\n    vector&lt;string&gt; letterCombinations(string digits) {<br \/>\n        if (digits.empty()) {<br \/>\n            return {};<br \/>\n        }<br \/>\n        dfs(digits, 0);<br \/>\n        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h4>18\u3001[\u4e2d\u7b49] \u56db\u6570\u4e4b\u548c<\/h4>\n<p>\u6392\u5e8f \u6570\u7ec4 \u53cc\u6307\u9488<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    vector&lt;vector&lt;int&gt;&gt; fourSum(vector&lt;int&gt;&amp; nums, int target) {<br \/>\n        int n &#061; nums.size();<br \/>\n        if (n &lt; 4) {<br \/>\n            return {};<br \/>\n        }<br \/>\n        vector&lt;vector&lt;int&gt;&gt; ret;<br \/>\n        sort(nums.begin(), nums.end());<\/p>\n<p>        for (int i &#061; 0; i &lt; n &#8211; 3; i&#043;&#043;) {<br \/>\n            for (int j &#061; i &#043; 1; j &lt; n &#8211; 2; j&#043;&#043;) {<br \/>\n                long long newtarget &#061; (long long)target &#8211; nums[i] &#8211; nums[j];<br \/>\n                int left &#061; j &#043; 1, right &#061; n &#8211; 1;<br \/>\n                while (left &lt; right) {<br \/>\n                    int sum &#061; nums[left] &#043; nums[right];<br \/>\n                    if (sum &gt; newtarget) {<br \/>\n                        right&#8211;;<br \/>\n                    } else if (sum &lt; newtarget) {<br \/>\n                        left&#043;&#043;;<br \/>\n                    } else {<br \/>\n                        ret.push_back({nums[i], nums[j], nums[left&#043;&#043;], nums[right&#8211;]});<\/p>\n<p>                        \/\/ \u53bb\u91cd<br \/>\n                        while (left &lt; right &amp;&amp; nums[left] &#061;&#061; nums[left &#8211; 1]) {<br \/>\n                            left&#043;&#043;;<br \/>\n                        }<br \/>\n                        while (left &lt; right &amp;&amp; nums[right] &#061;&#061; nums[right &#043; 1]) {<br \/>\n                            right&#8211;;<br \/>\n                        }<br \/>\n                    }<br \/>\n                }<\/p>\n<p>                while (j &lt; n &#8211; 2 &amp;&amp; nums[j] &#061;&#061; nums[j &#043; 1]) {<br \/>\n                    j&#043;&#043;;<br \/>\n                }<br \/>\n            }<\/p>\n<p>            while (i &lt; n &#8211; 3 &amp;&amp; nums[i] &#061;&#061; nums[i &#043; 1]) {<br \/>\n                i&#043;&#043;;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        return ret;<br \/>\n    }<br \/>\n};<\/p>\n<h4>19\u3001[\u4e2d\u7b49] \u5220\u9664\u94fe\u8868\u7684\u5012\u6570\u7b2c N \u4e2a\u8282\u70b9<\/h4>\n<p>\u6808 \u94fe\u8868 \u53cc\u6307\u9488<\/p>\n<p>\u8ba1\u7b97\u94fe\u8868\u7684\u957f\u5ea6<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* removeNthFromEnd(ListNode* head, int n) {<br \/>\n        ListNode* newhead &#061; new ListNode(0, head);<br \/>\n        int count &#061; 0;<br \/>\n        ListNode* cur &#061; head;<br \/>\n        while (cur) {<br \/>\n            cur &#061; cur-&gt;next;<br \/>\n            count&#043;&#043;;<br \/>\n        }<\/p>\n<p>        int gap &#061; count &#8211; n;<br \/>\n        cur &#061; newhead;<br \/>\n        while (gap&#8211;)<br \/>\n            cur &#061; cur-&gt;next;<br \/>\n        ListNode* del &#061; cur-&gt;next;<br \/>\n        cur-&gt;next &#061; del-&gt;next;<br \/>\n        cur &#061; newhead-&gt;next;<\/p>\n<p>        delete del;<br \/>\n        delete newhead;<br \/>\n        return cur;<br \/>\n    }<br \/>\n};<\/p>\n<p>\u6808<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* removeNthFromEnd(ListNode* head, int n) {<br \/>\n        ListNode* newhead &#061; new ListNode(0, head);<br \/>\n        stack&lt;ListNode*&gt; s;<br \/>\n        ListNode* cur &#061; newhead;<br \/>\n        while (cur) {<br \/>\n            s.push(cur);<br \/>\n            cur &#061; cur-&gt;next;<br \/>\n        }<br \/>\n        for (int i &#061; 0; i &lt; n; &#043;&#043;i) {<br \/>\n            s.pop();<br \/>\n        }<br \/>\n        ListNode* prev &#061; s.top();<br \/>\n        ListNode* del &#061; prev-&gt;next;<br \/>\n        prev-&gt;next &#061; del-&gt;next;<br \/>\n        cur &#061; newhead-&gt;next;<br \/>\n        delete del;<br \/>\n        delete newhead;<br \/>\n        return cur;<br \/>\n    }<br \/>\n};<\/p>\n<p>\u53cc\u6307\u9488<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    ListNode* removeNthFromEnd(ListNode* head, int n) {<br \/>\n        ListNode newhead;<br \/>\n        newhead.next &#061; head;<br \/>\n        ListNode* slow &#061; &amp;newhead;<br \/>\n        ListNode* fast &#061; &amp;newhead;<br \/>\n        while (n&#8211;) {<br \/>\n            fast &#061; fast-&gt;next;<br \/>\n        }<br \/>\n        while (fast-&gt;next) {<br \/>\n            slow &#061; slow-&gt;next;<br \/>\n            fast &#061; fast-&gt;next;<br \/>\n        }<br \/>\n        ListNode* del &#061; slow-&gt;next;<br \/>\n        slow-&gt;next &#061; del-&gt;next;<br \/>\n        delete del;<br \/>\n        return newhead.next;<br \/>\n    }<br \/>\n};<\/p>\n<h4>20\u3001[\u7b80\u5355] \u6709\u6548\u7684\u62ec\u53f7<\/h4>\n<p>\u6808 \u54c8\u5e0c\u8868 \u5b57\u7b26\u4e32<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    bool isValid(string s) {<br \/>\n        int n &#061; s.size();<br \/>\n        stack&lt;char&gt; st;<\/p>\n<p>        for (int i &#061; 0; i &lt; n; i&#043;&#043;) {<br \/>\n            if (s[i] &#061;&#061; &#039;(&#039; || s[i] &#061;&#061; &#039;{&#039; || s[i] &#061;&#061; &#039;[&#039;)<br \/>\n                st.push(s[i]);<br \/>\n            else if (s[i] &#061;&#061; &#039;)&#039; &amp;&amp; !st.empty() &amp;&amp; st.top() &#061;&#061; &#039;(&#039;)<br \/>\n                st.pop();<br \/>\n            else if (s[i] &#061;&#061; &#039;}&#039; &amp;&amp; !st.empty() &amp;&amp; st.top() &#061;&#061; &#039;{&#039;)<br \/>\n                st.pop();<br \/>\n            else if (s[i] &#061;&#061; &#039;]&#039; &amp;&amp; !st.empty() &amp;&amp; st.top() &#061;&#061; &#039;[&#039;)<br \/>\n                st.pop();<br \/>\n            else<br \/>\n                return false;<br \/>\n        }<\/p>\n<p>        return st.empty() &#061;&#061; true;<br \/>\n    }<br \/>\n};<\/p>\n<p>class Solution {<br \/>\npublic:<br \/>\n    bool isValid(string s) {<br \/>\n        int n &#061; s.size();<br \/>\n        if (n % 2 &#061;&#061; 1)<br \/>\n            return false;<\/p>\n<p>        unordered_map&lt;char, char&gt; pairs &#061; {{&#039;)&#039;, &#039;(&#039;}, {&#039;]&#039;, &#039;[&#039;}, {&#039;}&#039;, &#039;{&#039;}};<br \/>\n        stack&lt;char&gt; stk;<br \/>\n        for (const char&amp; ch : s) {<br \/>\n            if (pairs.count(ch)) {<br \/>\n                if (stk.empty() || stk.top() !&#061; pairs[ch])<br \/>\n                    return false;<br \/>\n                stk.pop();<br \/>\n            } else<br \/>\n                stk.push(ch);<br \/>\n        }<\/p>\n<p>        return stk.empty();<br \/>\n    }<br \/>\n};<\/p>\n","protected":false},"excerpt":{"rendered":"<p>11\u3001[\u4e2d\u7b49] \u76db\u6700\u591a\u6c34\u7684\u5bb9\u5668<br \/>\n\u53cc\u6307\u9488<br \/>\nc<br \/>\nclass Solution {<br \/>\npublic:int maxArea(vector&amp; height) {int left  0;int right  height.size() &#8211; 1;int ret  0;while (left &lt; right) {int v  min(height[left], height[right]) * (right &#8211; left);ret  max(ret, v);\/\/ \u79fb\u52a8\u6307\u9488if<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[8185,55,99,2692,81,427],"topic":[],"class_list":["post-76216","post","type-post","status-publish","format-standard","hentry","category-server","tag-lenyiin","tag-c","tag-java","tag-leetcode","tag-python","tag-427"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/76216.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"11\u3001[\u4e2d\u7b49] \u76db\u6700\u591a\u6c34\u7684\u5bb9\u5668 \u53cc\u6307\u9488 c class Solution { public:int maxArea(vector&amp; height) {int left 0;int right height.size() - 1;int ret 0;while (left &lt; right) {int v min(height[left], height[right]) * (right - left);ret max(ret, v);\/\/ \u79fb\u52a8\u6307\u9488if\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/76216.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T15:50:02+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76216.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/76216.html\",\"name\":\"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-02-21T15:50:02+00:00\",\"dateModified\":\"2026-02-21T15:50:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/76216.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/76216.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76216.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/76216.html","og_locale":"zh_CN","og_type":"article","og_title":"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"11\u3001[\u4e2d\u7b49] \u76db\u6700\u591a\u6c34\u7684\u5bb9\u5668 \u53cc\u6307\u9488 c class Solution { public:int maxArea(vector&amp; height) {int left 0;int right height.size() - 1;int ret 0;while (left &lt; right) {int v min(height[left], height[right]) * (right - left);ret max(ret, v);\/\/ \u79fb\u52a8\u6307\u9488if","og_url":"https:\/\/www.wsisp.com\/helps\/76216.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-02-21T15:50:02+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/76216.html","url":"https:\/\/www.wsisp.com\/helps\/76216.html","name":"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-02-21T15:50:02+00:00","dateModified":"2026-02-21T15:50:02+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/76216.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/76216.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/76216.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u300aLeetCode \u987a\u5e8f\u5237\u9898\u300b11 -20"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=76216"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76216\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=76216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=76216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=76216"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=76216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}