{"id":2783,"date":"2022-04-17T14:30:56","date_gmt":"2022-04-17T06:30:56","guid":{"rendered":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=2783"},"modified":"2022-04-17T14:57:34","modified_gmt":"2022-04-17T06:57:34","slug":"dp%e7%ac%ac16%e5%a4%a9","status":"publish","type":"post","link":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=2783","title":{"rendered":"dp\u7b2c16\u5929"},"content":{"rendered":"\n<p><a href=\"https:\/\/leetcode-cn.com\/problems\/minimum-path-sum\/\">64. \u6700\u5c0f\u8def\u5f84\u548c<\/a><\/p>\n\n\n\n<p>\u8bc4\u8bba\u533a\u5efa\u8bae\u628a\u8fd9\u9898\u96be\u5ea6\u6539\u6210\u7b80\u5355\u9898\u3002\u3002\u3002\u7b11\u6b7b\u6211\u4e86\u3002\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br><em>\/**<br><\/em><em> 64. \u6700\u5c0f\u8def\u5f84\u548c<br><\/em><em> \u7ed9\u5b9a\u4e00\u4e2a\u5305\u542b\u975e\u8d1f\u6574\u6570\u7684 m x n \u7f51\u683c grid \uff0c\u8bf7\u627e\u51fa\u4e00\u6761\u4ece\u5de6\u4e0a\u89d2\u5230\u53f3\u4e0b\u89d2\u7684\u8def\u5f84\uff0c\u4f7f\u5f97\u8def\u5f84\u4e0a\u7684\u6570\u5b57\u603b\u548c\u4e3a\u6700\u5c0f\u3002<br><\/em><em><br><\/em><em> \u8bf4\u660e\uff1a\u6bcf\u6b21\u53ea\u80fd\u5411\u4e0b\u6216\u8005\u5411\u53f3\u79fb\u52a8\u4e00\u6b65\u3002<br><\/em><em><br><\/em><em><br><\/em><em><br><\/em><em> \u793a\u4f8b 1\uff1a<br><\/em><em><br><\/em><em><br><\/em><em> \u8f93\u5165\uff1agrid = [[1,3,1],[1,5,1],[4,2,1]]<br><\/em><em> \u8f93\u51fa\uff1a7<br><\/em><em> \u89e3\u91ca\uff1a\u56e0\u4e3a\u8def\u5f84 1\u21923\u21921\u21921\u21921 \u7684\u603b\u548c\u6700\u5c0f\u3002<br><\/em><em> \u793a\u4f8b 2\uff1a<br><\/em><em><br><\/em><em> \u8f93\u5165\uff1agrid = [[1,2,3],[4,5,6]]<br><\/em><em> \u8f93\u51fa\uff1a12<br><\/em><em><br><\/em><em><br><\/em><em> \u63d0\u793a\uff1a<br><\/em><em><br><\/em><em> m == grid.length<br><\/em><em> n == grid[i].length<br><\/em><em> 1 &lt;= m, n &lt;= 200<br><\/em><em> 0 &lt;= grid[i][j] &lt;= 100<br><\/em><em><br><\/em><em> * <\/em><strong><em>@author <\/em><\/strong><em>zeroheart<br><\/em><em> *<br><\/em><em> *\/<br><\/em><em><br><\/em><em><br><\/em>public class Question64 {<br>    public int minPathSum(int[][] grid) {<br>        int m = grid.length;<br>        int n = grid[0].length;<br><br>        int[][] dp = new int[m][n];<br><br>        dp[0][0] = grid[0][0];<br>        for(int i = 1; i&lt;m; i++){<br>            dp[i][0] = dp[i-1][0] + grid[i][0];<br>        }<br><br>        for(int j = 1; j&lt;n; j++){<br>            dp[0][j] = dp[0][j-1] + grid[0][j];<br>        }<br><br>        for(int i = 1; i&lt;m; i++){<br>            for(int j = 1; j&lt;n; j++){<br>                dp[i][j] = Math.<em>min<\/em>(dp[i-1][j] , dp[i][j-1]) + grid[i][j];<br>            }<br>        }<br>        return dp[m-1][n-1];<br>    }<br><br>    public static void main(String[] args) {<br>    }<br>}<\/pre>\n\n\n\n<p><a href=\"https:\/\/leetcode-cn.com\/problems\/maximal-square\/\">221. \u6700\u5927\u6b63\u65b9\u5f62<\/a><\/p>\n\n\n\n<p>\u8fd9\u9898\u6709\u76f4\u63a5\u770b\u7b54\u6848\u4e86\u3002\u3002\u6ce8\u610fdp\u7684\u5b9a\u4e49<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-bright-red-color\">dp[i][j]\u8868\u793a\u53f3\u4e0b\u89d2\u662f[i][j]\u7684\u6b63\u65b9\u5f62\u7684\u6700\u5927\u8fb9\u957f\u3002\u8fd9\u4e2a\u8fb9\u957fdp[i][j] = Math.min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) + 1<\/mark><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br><em>\/**<br><\/em><em> 221. \u6700\u5927\u6b63\u65b9\u5f62<br><\/em><em> \u5728\u4e00\u4e2a\u7531 '0' \u548c '1' \u7ec4\u6210\u7684\u4e8c\u7ef4\u77e9\u9635\u5185\uff0c\u627e\u5230\u53ea\u5305\u542b '1' \u7684\u6700\u5927\u6b63\u65b9\u5f62\uff0c\u5e76\u8fd4\u56de\u5176\u9762\u79ef\u3002<br><\/em><em><br><\/em><em><br><\/em><em><br><\/em><em> \u793a\u4f8b 1\uff1a<br><\/em><em><br><\/em><em><br><\/em><em> \u8f93\u5165\uff1amatrix = [[\"1\",\"0\",\"1\",\"0\",\"0\"],[\"1\",\"0\",\"1\",\"1\",\"1\"],[\"1\",\"1\",\"1\",\"1\",\"1\"],[\"1\",\"0\",\"0\",\"1\",\"0\"]]<br><\/em><em> \u8f93\u51fa\uff1a4<br><\/em><em> \u793a\u4f8b 2\uff1a<br><\/em><em><br><\/em><em><br><\/em><em> \u8f93\u5165\uff1amatrix = [[\"0\",\"1\"],[\"1\",\"0\"]]<br><\/em><em> \u8f93\u51fa\uff1a1<br><\/em><em> \u793a\u4f8b 3\uff1a<br><\/em><em><br><\/em><em> \u8f93\u5165\uff1amatrix = [[\"0\"]]<br><\/em><em> \u8f93\u51fa\uff1a0<br><\/em><em><br><\/em><em><br><\/em><em> \u63d0\u793a\uff1a<br><\/em><em><br><\/em><em> m == matrix.length<br><\/em><em> n == matrix[i].length<br><\/em><em> 1 &lt;= m, n &lt;= 300<br><\/em><em> matrix[i][j] \u4e3a '0' \u6216 '1'<br><\/em><em><br><\/em><em> * <\/em><strong><em>@author <\/em><\/strong><em>zeroheart<br><\/em><em> *<br><\/em><em> *\/<br><\/em><em><br><\/em><em><br><\/em>public class Question221 {<br>    public int maximalSquare(char[][] matrix) {<br>        \/\/ \u8fd9\u9898\u6709\u76f4\u63a5\u770b\u7b54\u6848\u4e86\u3002\u3002<br><br>        \/\/ dp[i][j]\u8868\u793a\u53f3\u4e0b\u89d2\u662f[i][j]\u7684\u6b63\u65b9\u5f62\u7684\u6700\u5927\u8fb9\u957f\u3002\u8fd9\u4e2a\u8fb9\u957fdp[i][j] = Math.min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) + 1<br><br>        int max = 0;<br>        if(matrix==null || matrix.length == 0 || matrix[0].length == 0) return max;<br><br>        int m = matrix.length;<br>        int n = matrix[0].length;<br><br>        int[][] dp = new int[m][n];<br>        for(int i = 0; i&lt;m; i++){<br>            if(matrix[i][0] == '1'){<br>                dp[i][0] = 1;<br>                max = 1;<br>            }<br>        }<br><br>        for(int j = 0; j&lt;n; j++){<br>            if(matrix[0][j] == '1'){<br>                dp[0][j] = 1;<br>                max = 1;<br>            }<br>        }<br><br>        for(int i = 1; i&lt;m; i++){<br>            for(int j = 1; j&lt;n; j++){<br>                if(matrix[i][j] == '1'){<br>                    dp[i][j] = Math.<em>min<\/em>(Math.<em>min<\/em>(dp[i][j-1], dp[i-1][j]),dp[i-1][j-1]) + 1;<br>                }<br>                max = Math.<em>max<\/em>(max, dp[i][j]);<br>            }<br>        }<br><br>        return max * max;<br>    }<br><br>    public static void main(String[] args) {<br>    }<br>}<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>64. \u6700\u5c0f\u8def\u5f84\u548c \u8bc4\u8bba\u533a\u5efa\u8bae\u628a\u8fd9\u9898\u96be\u5ea6\u6539\u6210\u7b80\u5355\u9898\u3002\u3002\u3002\u7b11\u6b7b\u6211\u4e86\u3002\u3002 \/** 64. \u6700\u5c0f\u8def\u5f84\u548c \u7ed9\u5b9a\u4e00\u4e2a\u5305\u542b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[155],"tags":[158],"_links":{"self":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2783"}],"collection":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2783"}],"version-history":[{"count":8,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2783\/revisions"}],"predecessor-version":[{"id":2791,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2783\/revisions\/2791"}],"wp:attachment":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}