{"id":235740,"date":"2020-12-31T14:13:43","date_gmt":"2020-12-31T06:13:43","guid":{"rendered":"http:\/\/4563.org\/?p=235740"},"modified":"2020-12-31T14:13:43","modified_gmt":"2020-12-31T06:13:43","slug":"leetcode-lintcode-%e9%a2%98%e8%a7%a3%e9%98%bf%e9%87%8c%e5%b7%b4%e5%b7%b4%e9%9d%a2%e8%af%95%e9%a2%98%ef%bc%9a%e6%9c%80%e5%a4%a7%e5%ad%90%e6%95%b0%e7%bb%84-ii","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=235740","title":{"rendered":"[leetcode\/lintcode \u9898\u89e3]\u963f\u91cc\u5df4\u5df4\u9762\u8bd5\u9898\uff1a\u6700\u5927\u5b50\u6570\u7ec4 II"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  [leetcode\/lintcode \u9898\u89e3]\u963f\u91cc\u5df4\u5df4\u9762\u8bd5\u9898\uff1a\u6700\u5927\u5b50\u6570\u7ec4 II               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : hakunamatata11 <\/span>  <span><i><\/i> 0<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<h2><strong>\u63cf\u8ff0<\/strong><\/h2>\n<p>\u7ed9\u5b9a\u4e00\u4e2a\u6574\u6570\u6570\u7ec4\uff0c\u627e\u51fa\u4e24\u4e2a <em>\u4e0d\u91cd\u53e0<\/em> \u5b50\u6570\u7ec4\u4f7f\u5f97\u5b83\u4eec\u7684\u548c\u6700\u5927\u3002 \u6bcf\u4e2a\u5b50\u6570\u7ec4\u7684\u6570\u5b57\u5728\u6570\u7ec4\u4e2d\u7684\u4f4d\u7f6e\u5e94\u8be5\u662f\u8fde\u7eed\u7684\u3002 \u8fd4\u56de\u6700\u5927\u7684\u548c\u3002<\/p>\n<p>\u5728\u7ebf\u8bc4\u6d4b\u5730\u5740\uff1ahttps:\/\/www.lintcode.com\/problem\/maximum-subarray-ii\/?utm_source=sc-v2ex-fks<\/p>\n<p><strong>\u6837\u4f8b 1:<\/strong><\/p>\n<pre><code>\u8f93\u5165: [1, 3, -1, 2, -1, 2] \u8f93\u51fa: 7 \u89e3\u91ca: \u6700\u5927\u7684\u5b50\u6570\u7ec4\u4e3a [1, 3] \u548c [2, -1, 2] \u6216\u8005 [1, 3, -1, 2] \u548c [2].  <\/code><\/pre>\n<p><strong>\u6837\u4f8b 2\uff1a<\/strong><\/p>\n<pre><code>\u8f93\u5165: [5,4] \u8f93\u51fa: 9 \u89e3\u91ca: \u6700\u5927\u7684\u5b50\u6570\u7ec4\u4e3a [5] \u548c [4].  <\/code><\/pre>\n<p><strong>\u6311\u6218<\/strong><\/p>\n<p>\u8981\u6c42\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(<em>n<\/em>)<\/p>\n<p><strong>\u89e3\u9898\u601d\u8def<\/strong><\/p>\n<p>\u8fd9\u9898\u662f\u6700\u5927\u5b50\u6bb5\u548c\u7684\u5347\u7ea7\u7248\u3002\u6211\u4eec\u53ea\u8981\u5728\u6c42\u6700\u5927\u5b50\u6bb5\u548c\u7684\u57fa\u7840\u4e0a\uff0c\u8ba1\u7b97\u51fa\u524d\u540e\u7f00\u7684\u6700\u5927\u5b50\u6bb5\u548c\uff0c\u5c31\u53ef\u4ee5\u679a\u4e3e\u5206\u754c\u70b9\u6765\u8ba1\u7b97\u7ed3\u679c\u3002<\/p>\n<p><strong>\u4ee3\u7801\u601d\u8def<\/strong><\/p>\n<p>\u5bf9\u4e8e\u524d\u7f00\u7684\u6700\u5927\u5b50\u6bb5\u548c\uff0c\u6211\u4eec\u53ef\u4ee5\u5148\u6c42\u4ee5 i \u4f4d\u7f6e\u4e3a\u7ed3\u5c3e\u7684\u6700\u5927\u5b50\u6bb5\u548c\u7684\u503c leftMax[i]\u3002<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/12\/20201231_5fed6c28531c5.png\" alt=\"[leetcode\/lintcode \u9898\u89e3]\u963f\u91cc\u5df4\u5df4\u9762\u8bd5\u9898\uff1a\u6700\u5927\u5b50\u6570\u7ec4 II\" \/><\/p>\n<p>max \u4e2d\u7684\u4e24\u4e2a\u53c2\u6570\u5206\u522b\u4ee3\u8868\u5ef6\u7eed\u524d\u4e00\u4e2a\u4e3a\u7ed3\u5c3e\u7684\u6700\u5927\u5b57\u6bb5\u548c\uff0c\u6216\u8005\u5f53\u524d\u7684 nums[i]\u6210\u4e3a\u4e00\u6bb5\u65b0\u7684\u5b50\u6bb5\u7684\u4e24\u79cd\u60c5\u51b5\u3002<\/p>\n<p>\u8ba1\u7b97\u524d\u7f00\u6700\u5927\u5b50\u6bb5\u548c prefixMax\uff0c\u8ba1\u7b97\u524d\u7f00\u6700\u5927\u503c\u5373\u53ef\u3002<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/12\/20201231_5fed6c38b79ed.png\" alt=\"[leetcode\/lintcode \u9898\u89e3]\u963f\u91cc\u5df4\u5df4\u9762\u8bd5\u9898\uff1a\u6700\u5927\u5b50\u6570\u7ec4 II\" \/><\/p>\n<p>\u540e\u7f00\u7684\u503c\u4e5f\u540c\u7406\u8fdb\u884c\u8ba1\u7b97\u3002<\/p>\n<p>\u6700\u540e\u679a\u4e3e\u5206\u754c\u70b9\uff0c\u53d6\u6700\u5927\u503c\uff0c\u6700\u7ec8\u7684\u7ed3\u679c\u4e3a\uff1a<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"http:\/\/4563.org\/wp-content\/uploads\/2020\/12\/20201231_5fed6c46252e5.png\" alt=\"[leetcode\/lintcode \u9898\u89e3]\u963f\u91cc\u5df4\u5df4\u9762\u8bd5\u9898\uff1a\u6700\u5927\u5b50\u6570\u7ec4 II\" \/><\/p>\n<p><strong>\u590d\u6742\u5ea6\u5206\u6790<\/strong><\/p>\n<p>\u8bbe\u6570\u7ec4\u957f\u5ea6\u4e3a N \u3002<\/p>\n<ul>\n<li>\n<p>\u53ea\u9700\u5e38\u6570\u6b21\u5730\u904d\u5386\u6570\u7ec4\uff0c\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(N)\u3002<\/p>\n<\/li>\n<li>\n<p>\u9700\u8981\u5e38\u6570\u4e2a\u989d\u5916\u6570\u7ec4\u6765\u8bb0\u5f55\u5f53\u524d\u4f4d\u7f6e\u7ed3\u5c3e\u524d\u540e\u7f00\u6700\u5927\u8fde\u7eed\u548c\u4ee5\u53ca\u524d\u540e\u7f00\u6700\u5927\u8fde\u7eed\u548c\uff0c\u7a7a\u95f4\u590d\u6742\u5ea6\u4e3a O(N)\u3002<\/p>\n<\/li>\n<\/ul>\n<pre><code>public class Solution {     \/*      * @param nums: A list of integers      * @return: An integer denotes the sum of max two non-overlapping subarrays      *\/     public int maxTwoSubArrays(List&lt;Integer&gt; nums) {         int n = nums.size();          \/\/ \u8ba1\u7b97\u4ee5 i \u4f4d\u7f6e\u4e3a\u7ed3\u5c3e\u7684\u524d\u540e\u7f00\u6700\u5927\u8fde\u7eed\u548c         List&lt;Integer&gt; leftMax = new ArrayList(nums);         List&lt;Integer&gt; rightMax = new ArrayList(nums);          for (int i = 1; i &lt; n; i++) {             leftMax.set(i, Math.max(nums.get(i), nums.get(i) + leftMax.get(i - 1)));         }          for (int i = n - 2; i &gt;= 0; i--) {             rightMax.set(i, Math.max(nums.get(i), nums.get(i) + rightMax.get(i + 1)));         }          \/\/ \u8ba1\u7b97\u524d\u540e\u7f00\u90e8\u5206\u7684\u6700\u5927\u8fde\u7eed\u548c         List&lt;Integer&gt; prefixMax = new ArrayList(leftMax);         List&lt;Integer&gt; postfixMax = new ArrayList(rightMax);          for (int i = 1; i &lt; n; i++) {             prefixMax.set(i, Math.max(prefixMax.get(i), prefixMax.get(i - 1)));         }          for (int i = n - 2; i &gt;= 0; i--) {             postfixMax.set(i, Math.max(postfixMax.get(i), postfixMax.get(i + 1)));         }          int result = Integer.MIN_VALUE;         for (int i = 0; i &lt; n - 1; i++) {             result = Math.max(result, prefixMax.get(i) + postfixMax.get(i + 1));         }          return result;     } }  <\/code><\/pre>\n<p>\u66f4\u591a\u9898\u89e3\u53c2\u8003\uff1ahttps:\/\/www.lintcode.com\/problem\/maximum-subarray-ii\/?utm_source=sc-v2ex-fks<\/p>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>0<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>[leetcode\/lintcod&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/235740"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=235740"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/235740\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=235740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=235740"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=235740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}