{"id":2577,"date":"2022-04-04T14:06:02","date_gmt":"2022-04-04T06:06:02","guid":{"rendered":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=2577"},"modified":"2022-04-16T17:02:50","modified_gmt":"2022-04-16T09:02:50","slug":"%e7%ae%97%e6%b3%95%e5%85%a5%e9%97%a8%e7%ac%ac%e4%b9%9d%e5%a4%a9","status":"publish","type":"post","link":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=2577","title":{"rendered":"\u7b97\u6cd5\u5165\u95e8\u7b2c\u4e5d\u5929"},"content":{"rendered":"\n<p><a href=\"https:\/\/leetcode-cn.com\/problems\/01-matrix\/\">542. 01 \u77e9\u9635<\/a><\/p>\n\n\n\n<p>\u8fd9\u4e00\u6b21\u4e86\u89e3\u7684\u662fbsf\u7684\u5e38\u89c1\u4f7f\u7528<\/p>\n\n\n\n<p>542\u8fd9\u4e00\u9898\u6bd4\u8f83\u5de7\u5999\u7684\u4e00\u4e2a\u70b9\u662f\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539\u539f\u59cb\u6570\u7ec4\u7684\u503c\uff0c\u65e2\u80fd\u4fdd\u8bc1\u907f\u514d\u91cd\u590d\u8bbf\u95ee\u8d70\u8fc7\u7684\u8282\u70b9\uff0c\u6700\u540e\u4e5f\u7b26\u5408\u8f93\u5165\u65b0\u7684\u6570\u7ec4\u7684\u8981\u6c42\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/**<br><\/em><em> *<br><\/em><em> 542. 01 \u77e9\u9635<br><\/em><em> \u7ed9\u5b9a\u4e00\u4e2a\u7531 0 \u548c 1 \u7ec4\u6210\u7684\u77e9\u9635 mat \uff0c\u8bf7\u8f93\u51fa\u4e00\u4e2a\u5927\u5c0f\u76f8\u540c\u7684\u77e9\u9635\uff0c\u5176\u4e2d\u6bcf\u4e00\u4e2a\u683c\u5b50\u662f mat \u4e2d\u5bf9\u5e94\u4f4d\u7f6e\u5143\u7d20\u5230\u6700\u8fd1\u7684 0 \u7684\u8ddd\u79bb\u3002<br><\/em><em><br><\/em><em> \u4e24\u4e2a\u76f8\u90bb\u5143\u7d20\u95f4\u7684\u8ddd\u79bb\u4e3a 1 \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><br><\/em><em> \u8f93\u5165\uff1amat = [[0,0,0],[0,1,0],[0,0,0]]<br><\/em><em> \u8f93\u51fa\uff1a[[0,0,0],[0,1,0],[0,0,0]]<br><\/em><em> \u793a\u4f8b 2\uff1a<br><\/em><em><br><\/em><em><br><\/em><em><br><\/em><em> \u8f93\u5165\uff1amat = [[0,0,0],[0,1,0],[1,1,1]]<br><\/em><em> \u8f93\u51fa\uff1a[[0,0,0],[0,1,0],[1,2,1]]<br><\/em><em><br><\/em><em><br><\/em><em> \u63d0\u793a\uff1a<br><\/em><em><br><\/em><em> m == mat.length<br><\/em><em> n == mat[i].length<br><\/em><em> 1 &lt;= m, n &lt;= 10^4<br><\/em><em> 1 &lt;= m * n &lt;= 10^4<br><\/em><em> mat[i][j] is either 0 or 1.<br><\/em><em> mat \u4e2d\u81f3\u5c11\u6709\u4e00\u4e2a 0<br><\/em><em><br><\/em><em><br><\/em><em> * <\/em><strong><em>@author <\/em><\/strong><em>zeroheart<br><\/em><em> *<br><\/em><em> *\/<br><\/em>public class Question542 {<br>   public int[][] updateMatrix(int[][] mat) {<br><br>      LinkedList&lt;int[]&gt; queue = new LinkedList&lt;&gt;();<br>      int[] dx = {-1, 1, 0, 0}, dy = {0, 0, -1, 1};<br><br>      int m = mat.length;<br>      int n = mat[0].length;<br>      for(int i = 0; i&lt;m; i++){<br>         for(int j = 0; j&lt;n; j++){<br>            if(mat[i][j] == 0){<br>               queue.add(new int[]{i, j});<br>            }else{<br>               mat[i][j] = -1;<br>            }<br>         }<br>      }<br><br>      while (!queue.isEmpty()){<br>         int[] poll = queue.poll();<br>         int x = poll[0];<br>         int y = poll[1];<br><br>         \/\/ \u56db\u4e2a\u65b9\u5411<br>         for(int i = 0; i&lt;4; i++){<br>            int newx = dx[i]+x;<br>            int newy = dy[i]+y;<br><br>            if(newx&lt;m &amp;&amp; newx&gt;=0 &amp;&amp; newy&lt;n &amp;&amp; newy&gt;=0 &amp;&amp; mat[newx][newy]==-1){<br>               mat[newx][newy] = mat[x][y] + 1;<br>               queue.add(new int[]{newx, newy});<br>            }<br><br>         }<br>      }<br><br>      return mat;<br>   }<br><br>   public static void main(String[] args) {<br>   }<br><br>}<\/pre>\n\n\n\n<p><a href=\"https:\/\/leetcode-cn.com\/problems\/rotting-oranges\/\">994. \u8150\u70c2\u7684\u6a58\u5b50<\/a><\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-bright-red-color\">\u70c2\u6a58\u5b50\u548c\u4e0a\u9762\u7c7b\u4f3c\uff0c\u4e0d\u8fc7\u8fd9\u4e2a\u8fd4\u56de\u7684\u662f\u6269\u6563\u7684\u8f6e\u6b21\uff0c\u8fd9\u4e2a\u8981\u6ce8\u610f\uff0c\u6240\u8c13\u4e00\u8f6e\uff0c\u662f\u6240\u6709\u7684\u90fd\u8981\u904d\u5386\u4e00\u6b21\uff0c\u4e0d\u662f\u4e00\u4e2a\u4e2a\u6765\u3002\u53e6\u5916\u4e00\u76f4\u5728\u4fee\u6539queue\u7684\u503c\uff0c\u9700\u8981\u628asize\u63d0\u51fa\u6765\u624d\u884c\u3002<\/mark><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/**\n *\n 994. \u8150\u70c2\u7684\u6a58\u5b50\n \u5728\u7ed9\u5b9a\u7684 m x n \u7f51\u683c grid \u4e2d\uff0c\u6bcf\u4e2a\u5355\u5143\u683c\u53ef\u4ee5\u6709\u4ee5\u4e0b\u4e09\u4e2a\u503c\u4e4b\u4e00\uff1a\n\n \u503c 0 \u4ee3\u8868\u7a7a\u5355\u5143\u683c\uff1b\n \u503c 1 \u4ee3\u8868\u65b0\u9c9c\u6a58\u5b50\uff1b\n \u503c 2 \u4ee3\u8868\u8150\u70c2\u7684\u6a58\u5b50\u3002\n \u6bcf\u5206\u949f\uff0c\u8150\u70c2\u7684\u6a58\u5b50 \u5468\u56f4 4 \u4e2a\u65b9\u5411\u4e0a\u76f8\u90bb \u7684\u65b0\u9c9c\u6a58\u5b50\u90fd\u4f1a\u8150\u70c2\u3002\n\n \u8fd4\u56de \u76f4\u5230\u5355\u5143\u683c\u4e2d\u6ca1\u6709\u65b0\u9c9c\u6a58\u5b50\u4e3a\u6b62\u6240\u5fc5\u987b\u7ecf\u8fc7\u7684\u6700\u5c0f\u5206\u949f\u6570\u3002\u5982\u679c\u4e0d\u53ef\u80fd\uff0c\u8fd4\u56de -1 \u3002\n\n\n\n \u793a\u4f8b 1\uff1a\n\n\n\n \u8f93\u5165\uff1agrid = [[2,1,1],[1,1,0],[0,1,1]]\n \u8f93\u51fa\uff1a4\n \u793a\u4f8b 2\uff1a\n\n \u8f93\u5165\uff1agrid = [[2,1,1],[0,1,1],[1,0,1]]\n \u8f93\u51fa\uff1a-1\n \u89e3\u91ca\uff1a\u5de6\u4e0b\u89d2\u7684\u6a58\u5b50\uff08\u7b2c 2 \u884c\uff0c \u7b2c 0 \u5217\uff09\u6c38\u8fdc\u4e0d\u4f1a\u8150\u70c2\uff0c\u56e0\u4e3a\u8150\u70c2\u53ea\u4f1a\u53d1\u751f\u5728 4 \u4e2a\u6b63\u5411\u4e0a\u3002\n \u793a\u4f8b 3\uff1a\n\n \u8f93\u5165\uff1agrid = [[0,2]]\n \u8f93\u51fa\uff1a0\n \u89e3\u91ca\uff1a\u56e0\u4e3a 0 \u5206\u949f\u65f6\u5df2\u7ecf\u6ca1\u6709\u65b0\u9c9c\u6a58\u5b50\u4e86\uff0c\u6240\u4ee5\u7b54\u6848\u5c31\u662f 0 \u3002\n\n\n \u63d0\u793a\uff1a\n\n m == grid.length\n n == grid[i].length\n 1 &lt;= m, n &lt;= 10\n grid[i][j] \u4ec5\u4e3a 0\u30011 \u6216 2\n\n\n * <\/em><strong><em>@author <\/em><\/strong><em>zeroheart\n *\n *\/\n<\/em>public class Question994 {\n   public static int orangesRotting(int[][] grid) {\n      int m = grid.length;\n      int n = grid[0].length;\n\n      int count = 0;\n      Queue&lt;int[]&gt; queue = new LinkedList();\n      for(int i =0; i&lt;m; i++){\n         for(int j = 0; j&lt;n; j++){\n            if(grid[i][j] == 2){\n               queue.add(new int[]{i, j});\n            }else if(grid[i][j] == 1){\n               count++;\n            }\n         }\n      }\n\n      int minute = 0;\n      int[] dx = {-1, 1, 0, 0};\n      int[] dy = {0, 0, -1, 1};\n      while (count&gt;0 &amp;&amp; !queue.isEmpty()){\n         minute++;\n\n         int size = queue.size();\/\/ \u4e0b\u9762\u6709\u4fee\u6539\uff0c\u8fd9\u91cc\u8981\u63d0\u51fa\u6765\n         for(int z = 0; z&lt;size;z++){\n            \/\/ \u8fd9\u624d\u53eb\u4e00\u8f6e\n            int[] q = queue.poll();\n            int x = q[0];\n            int y = q[1];\n\n            for(int i = 0; i&lt;4; i++){\n               int newx = x + dx[i];\n               int newy = y + dy[i];\n\n               if(newx&gt;=  0 &amp;&amp; newx&lt;m &amp;&amp; newy&gt;=0 &amp;&amp; newy&lt;n &amp;&amp; grid[newx][newy] == 1){\n                  grid[newx][newy] = 2;\n                  queue.add(new int[]{newx, newy});\n                  count--;\n               }\n            }\n         }\n\n      }\n\n      return count &gt; 0 ? -1 : minute;\n   }\n\n   public static void main(String[] args) {\n      System.<em>out<\/em>.println(<em>orangesRotting<\/em>(new int[][]{{2,1,1},{1,1,1},{0,1,2}}));\n   }\n\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>542. 01 \u77e9\u9635 \u8fd9\u4e00\u6b21\u4e86\u89e3\u7684\u662fbsf\u7684\u5e38\u89c1\u4f7f\u7528 542\u8fd9\u4e00\u9898\u6bd4\u8f83\u5de7\u5999\u7684\u4e00\u4e2a\u70b9\u662f\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539\u539f\u59cb\u6570\u7ec4\u7684\u503c\uff0c [&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":[197],"_links":{"self":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2577"}],"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=2577"}],"version-history":[{"count":10,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2577\/revisions"}],"predecessor-version":[{"id":2760,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2577\/revisions\/2760"}],"wp:attachment":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}