{"id":207955,"date":"2020-11-26T22:24:47","date_gmt":"2020-11-26T14:24:47","guid":{"rendered":"http:\/\/4563.org\/?p=207955"},"modified":"2020-11-26T22:24:47","modified_gmt":"2020-11-26T14:24:47","slug":"%e7%be%8e%e5%9b%bd%e5%be%ae%e8%bd%af-%e5%8c%ba%e9%97%b4-dp%ef%bc%8c%e6%9c%89%e6%84%8f%e6%80%9d","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=207955","title":{"rendered":"[\u7f8e\u56fd\u5fae\u8f6f] \u533a\u95f4 DP\uff0c\u6709\u610f\u601d"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  [\u7f8e\u56fd\u5fae\u8f6f] \u533a\u95f4 DP\uff0c\u6709\u610f\u601d               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : zzzrf <\/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<p>\u6709\u4e00\u4e2a\u77f3\u5b50\u5f52\u5e76\u7684\u6e38\u620f\u3002\u6700\u5f00\u59cb\u7684\u65f6\u5019\uff0c\u6709 n \u5806\u77f3\u5b50\u6392\u6210\u4e00\u5217\uff0c\u76ee\u6807\u662f\u8981\u5c06\u6240\u6709\u7684\u77f3\u5b50\u5408\u5e76\u6210\u4e00\u5806\u3002\u5408\u5e76\u89c4\u5219\u5982\u4e0b\uff1a<\/p>\n<ol>\n<li>\u6bcf\u4e00\u6b21\u53ef\u4ee5\u5408\u5e76\u76f8\u90bb\u4f4d\u7f6e\u7684\u4e24\u5806\u77f3\u5b50<\/li>\n<li>\u6bcf\u6b21\u5408\u5e76\u7684\u4ee3\u4ef7\u4e3a\u6240\u5408\u5e76\u7684\u4e24\u5806\u77f3\u5b50\u7684\u91cd\u91cf\u4e4b\u548c \u6c42\u51fa\u6700\u5c0f\u7684\u5408\u5e76\u4ee3\u4ef7\u3002<\/li>\n<\/ol>\n<p>\u5728\u7ebf\u8bc4\u6d4b\u5730\u5740<\/p>\n<h2>\u6837\u4f8b 1:<\/h2>\n<pre><code>\u8f93\u5165: [3, 4, 3] \u8f93\u51fa: 17 <\/code><\/pre>\n<h2>\u6837\u4f8b 2:<\/h2>\n<pre><code>\u8f93\u5165: [4, 1, 1, 4] \u8f93\u51fa: 18 \u89e3\u91ca:    1. \u5408\u5e76\u7b2c\u4e8c\u5806\u548c\u7b2c\u4e09\u5806 =&gt; [4, 2, 4], score = 2   2. \u5408\u5e76\u524d\u4e24\u5806 =&gt; [6, 4]\uff0cscore = 8   3. \u5408\u5e76\u5269\u4f59\u7684\u4e24\u5806 =&gt; [10], score = 18 <\/code><\/pre>\n<h2>\u7b97\u6cd5\uff1a\u533a\u95f4 DP<\/h2>\n<p>\u8fd9\u662f\u4e00\u9053\u533a\u95f4 DP \u95ee\u9898\uff0c\u6211\u4eec\u9700\u8981\u7528\u533a\u95f4\u8868\u793a\u72b6\u6001\u6765\u9012\u63a8\u3002\u8bbe s \u662f\u8868\u793a\u77f3\u5934\u91cd\u91cf\u7684\u6570\u7ec4\uff0c\u8bbe f[i][j]\u662f\u5c06 s[i,&#8230;,j]\u7684\u77f3\u5934\u5408\u5e76\u6210\u4e00\u4e2a\u6240\u9700\u7684\u6700\u5c11\u80fd\u91cf\uff0c\u90a3\u4e48\u8fd9\u4e2a\u6700\u5c11\u80fd\u91cf\u6309\u7167\u6700\u540e\u4e00\u6b65\u5408\u5e76\u7684\u5206\u754c\u7ebf\u53ef\u4ee5\u5206\u4e3a\u4ee5\u4e0b\u51e0\u79cd\u60c5\u51b5\uff1a<\/p>\n<p>1 \u3001\u6700\u540e\u4e00\u6b65\u662f s[i]\u548c s[i+1,&#8230;,j]\u5408\u5e76\uff0c\u6b64\u65f6\u9700\u8981\u7684\u6700\u5c11\u80fd\u91cf\u662f f[i+1][j]+sum(s[i]&#8230;s[j]),\u7b2c\u4e00\u9879\u662f\u5408\u5e76\u540e\u8005\u9700\u8981\u7684\u80fd\u91cf\uff0c\u7b2c\u4e8c\u9879\u662f\u6700\u540e\u4e00\u6b21\u5408\u5e76\u6240\u9700\u8981\u7684\u80fd\u91cf\u3002s[i]\u81ea\u5df1\u53ea\u6709\u4e00\u4e2a\u77f3\u5934\uff0c\u4e0d\u9700\u8981\u5408\u5e76 2 \u3001\u6700\u540e\u4e00\u6b65\u662f s[i,i+1]\u548c s[i+2,&#8230;,j]\u5408\u5e76\uff0c\u6b64\u65f6\u9700\u8981\u7684\u6700\u5c11\u80fd\u91cf\u662f f[i][i+1]+f[i+2][j]+sum(s[i]&#8230;s[j])\uff0c\u7b2c\u4e00\u9879\u662f\u5408\u5e76\u524d\u4e24\u4e2a\u77f3\u5934\u9700\u8981\u7684\u80fd\u91cf\uff0c\u7b2c\u4e8c\u9879\u662f\u5408\u5e76\u540e\u534a\u533a\u95f4\u77f3\u5934\u9700\u8981\u7684\u80fd\u91cf\uff0c\u6700\u540e\u4e00\u9879\u662f\u6700\u540e\u4e00\u6b21\u5408\u5e76\u9700\u8981\u7684\u80fd\u91cf\uff1b \u4ece\u4e0a\u9762\u6211\u4eec\u53ef\u4ee5\u770b\u51fa\u4e00\u4e2a\u89c4\u5f8b\uff0cf[i][j]\u5e94\u8be5\u662f\u6240\u6709\u533a\u95f4\u5206\u6cd5\u4e2d\u524d\u4e00\u534a\u533a\u95f4\u7684\u77f3\u5934\u5408\u5e76\u9700\u8981\u7684\u603b\u80fd\u91cf\u52a0\u4e0a\u540e\u534a\u533a\u95f4\u7684\u603b\u80fd\u91cf\u518d\u52a0\u4e0a\u6700\u540e\u4e00\u6b21\u5408\u5e76\u9700\u8981\u7684\u80fd\u91cf<\/p>\n<ul>\n<li>\u6c42\u5f97 A \u7684\u524d\u7f00\u548c<\/li>\n<li>\u533a\u95f4\u957f\u5ea6\u4ece 2 \u5f00\u59cb\u679a\u4e3e\uff0c<\/li>\n<li>\u6839\u636e\u4e0a\u8bc9\u601d\u8def\u53ef\u5f97\u9012\u63a8\u5f0f<\/li>\n<li>dp[l][r] =min(dp[l][r], dp[l][j] + dp[j + 1][r] + sum_a[r + 1] &#8211; sum_a[l])<\/li>\n<li>\u8bb0\u5f97\u521d\u59cb\u5316 dp[l][r]\u4e3a\u4e00\u4e2a\u8f83\u5927\u503c<\/li>\n<li>\u7ed3\u679c\u5b58\u5728 dp[0][size-1]\u4e2d<\/li>\n<\/ul>\n<h2>\u590d\u6742\u5ea6\u5206\u6790<\/h2>\n<ul>\n<li>\u65f6\u95f4\u590d\u6742\u5ea6 O(n^3)\n<ul>\n<li>\u533a\u95f4 dp \u7684\u590d\u6742\u5ea6<\/li>\n<\/ul>\n<\/li>\n<li>\u7a7a\u95f4\u590d\u6742\u5ea6 O(n^2)\n<ul>\n<li>dp \u6570\u7ec4\u7684\u5927\u5c0f<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code>public class Solution {     \/**      * @param A: An integer array      * @return: An integer      *\/     public int stoneGame(int[] A) {         int size = A.length;         if (A == null || size == 0) {             return 0;         }                  int[][] dp = new int[size][size];         int[] sum_a = new int[size + 1];         \/\/\u524d\u7f00\u548c         for (int i = 0; i &lt; size; i++) {             sum_a[i + 1] = sum_a[i] + A[i];         }         \/\/ \u957f\u5ea6\u4ece 2 \u5f00\u59cb\u5373\u53ef\uff0c\u56e0\u4e3a\u957f\u5ea6\u4e3a 1 \u7684\u65f6\u5019\u7ed3\u679c\u662f 0\uff0cdp \u521d\u59cb\u5316\u7684\u65f6\u5019\u9ed8\u8ba4\u5c31\u662f 0\uff0c\u6ca1\u5fc5\u8981\u8d4b\u503c         for (int len = 2; len &lt;= size; len++) {             \/\/ i \u679a\u4e3e\u7684\u662f\u6b63\u5728\u679a\u4e3e\u7684\u533a\u95f4\u7684\u5de6\u7aef\u70b9             for (int i = 0; i + len - 1 &lt; size; i++) {                 \/\/ \u6b63\u5728\u679a\u4e3e\u7684\u533a\u95f4\u5de6\u7aef\u70b9\u662f i\uff0c\u53f3\u7aef\u70b9\u662f i + size - 1                 int l = i, r = i + len - 1;                 \/\/ \u5728\u6c42\u6700\u5c0f\u7684\u65f6\u5019\uff0c\u9700\u8981\u521d\u59cb\u5316\u6210\u4e00\u4e2a\u5f88\u5927\u7684\u6570\uff0c\u7136\u540e\u4e0d\u65ad\u66f4\u65b0                 dp[l][r] = Integer.MAX_VALUE;                 for (int j = l; j &lt; r; j++) {                     \/\/\u9012\u63a8\u5f0f                     dp[l][r] = Math.min(dp[l][r], dp[l][j] + dp[j + 1][r] + sum_a[r + 1] - sum_a[l]);                 }             }         }                  return dp[0][size-1];     } } <\/code><\/pre>\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>[\u7f8e\u56fd\u5fae\u8f6f] \u533a\u95f4 DP\uff0c\u6709\u610f\u601d &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\/207955"}],"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=207955"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/207955\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207955"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}