{"id":2351,"date":"2020-07-29T07:33:57","date_gmt":"2020-07-29T07:33:57","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2351"},"modified":"2022-12-13T11:21:07","modified_gmt":"2022-12-13T11:21:07","slug":"nearest-cellpaid","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/","title":{"rendered":"Nearest Cell(paid)"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Recursion<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Easy<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT (SIMPLIFIED):<\/h3>\n<blockquote>\n<p>Rahul is stuck in a maze world, where the maze is a binary matrix of size NXM (each cell has value 0 or 1). To get out of this world he needs to calculate the distance to the nearest 1 for each cell in the maze. Distance between the two cells is calculated by |i1\u2212i2|+|j1\u2212j2|, where i1, j1 are the row number and column number of the current cell and i2, j2 are the row number and column number of the nearest cell having value 1.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/www.prepbytes.com\/panel\/mycourses\/mentors-coding-program\/c++\/week\/11\/graphs\/codingAssignment\/NEARDIS\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>For Example :<\/h4>\n<pre><code>Input\n2\n3 3\n0 0 1 1 1 1 1 0 1\n4 4\n1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0\n\nOutput\n1 1 0 0 0 0 0 1 0 \n0 1 0 1 1 2 1 2 1 1 1 2 0 0 0 1 <\/code><\/pre>\n<h3>OBSERVATION:<\/h3>\n<pre><code>N=3  and M=3\n\nMatrix = \n\n[ 0 0 1 ]\n[ 1 1 1 ]\n[ 1 0 1 ]\n\nDistance for index (0,0) to the nearest 1 is at index (1,0)\n which is 1(1\u22120+0\u22120=1) so in distance matrix at index (0,0) input 1.\n\nDistance matrix = \n\n[ 1 1 0 ]\n[ 0 0 0 ]\n[ 0 1 0 ]<\/code><\/pre>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<p>A simple solution for this problem is to for each 0 in the matrix recursively check the nearest 1 in the matrix.<\/p>\n<p>An <strong>efficient solution<\/strong> for this problem is to use <strong>BFS<\/strong>. Here is the algorithm to solve this problem<\/p>\n<\/blockquote>\n<pre><code>ALGO :\n For our BFS routine, we keep a queue, q to maintain the queue of cells to be examined next.\n\n We start by adding all the cells with 0s to q.\n\n Intially, distance for each 0 cell is 0 and distance for each 1 is INT_MAX, which is updated during the BFS.\n\n Pop the cell from queue, and examine its neighbours. If the new calculated distance for neighbour {i,j} is smaller, we add {i,j} to q and update dist[i][j].<\/code><\/pre>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_2350 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_2350 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_2350 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2350 .wpsm_nav-tabs > li.active > a, #tab_container_2350 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2350 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_2350 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_2350 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2350 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2350 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2350 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2350 .wpsm_nav-tabs > li > a:hover , #tab_container_2350 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_2350 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_2350 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_2350 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_2350 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_2350 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_2350 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_2350 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2350 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_2350 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2350 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_2350 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_2350\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2350\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2350_1\" aria-controls=\"tabs_desc_2350_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_2350\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_2350_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include&lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nclass graph\r\n{\r\nprivate:\r\n    vector&lt;int&gt; g[10001];\r\n    int n,m;\r\n\r\npublic:\r\n    graph(int a, int b)\r\n    {\r\n        n = a;\r\n        m = b;\r\n    }\r\n\r\n    \/\/ Function to create graph with N*M nodes\r\n    \/\/ considering each cell as a node and each\r\n    \/\/ boundary as an edge.\r\n    void createGraph()\r\n    {\r\n        int k = 1;  \/\/ A number to be assigned to a cell\r\n\r\n        for (int i = 1; i &lt;= n; i++)\r\n        {\r\n            for (int j = 1; j &lt;= m; j++)\r\n            {\r\n                \/\/ If last row, then add edge on right side.\r\n                if (i == n)\r\n                {\r\n                    \/\/ If not bottom right cell.\r\n                    if (j != m)\r\n                    {\r\n                        g[k].push_back(k+1);\r\n                        g[k+1].push_back(k);\r\n                    }\r\n                }\r\n\r\n                    \/\/ If last column, then add edge toward down.\r\n                else if (j == m)\r\n                {\r\n                    g[k].push_back(k+m);\r\n                    g[k+m].push_back(k);\r\n                }\r\n\r\n                    \/\/ Else make edge in all four direction.\r\n                else\r\n                {\r\n                    g[k].push_back(k+1);\r\n                    g[k+1].push_back(k);\r\n                    g[k].push_back(k+m);\r\n                    g[k+m].push_back(k);\r\n                }\r\n\r\n                k++;\r\n            }\r\n        }\r\n    }\r\n\r\n    \/\/ BFS function to find minimum distance\r\n    void bfs(bool visit[], int dist[], queue&lt;int&gt; q)\r\n    {\r\n        while (!q.empty())\r\n        {\r\n            int temp = q.front();\r\n            q.pop();\r\n\r\n            for (int i = 0; i &lt; g[temp].size(); i++)\r\n            {\r\n                if (visit[g[temp][i]] != 1)\r\n                {\r\n                    dist[g[temp][i]] =\r\n                            min(dist[g[temp][i]], dist[temp]+1);\r\n\r\n                    q.push(g[temp][i]);\r\n                    visit[g[temp][i]] = 1;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    \/\/ Printing the solution.\r\n    void print(int dist[])\r\n    {\r\n        for (int i = 1, c = 1; i &lt;= n*m; i++, c++)\r\n        {\r\n            cout &lt;&lt; dist[i] &lt;&lt; &quot; &quot;;\r\n        }\r\n        cout&lt;&lt;endl;\r\n    }\r\n};\r\n\r\n\r\n\r\nint main()\r\n{\r\n\r\n    int t;\r\n    cin&gt;&gt;t;\r\n    while(t--)\r\n    {\r\n        int n,m;\r\n        cin&gt;&gt;n&gt;&gt;m;\r\n        bool mat[n][m];\r\n        for(int i=0;i&lt;n;i++)\r\n        {\r\n            for(int j=0;j&lt;m;j++)\r\n                cin&gt;&gt;mat[i][j];\r\n        }\r\n        graph g1(n, m);\r\n        g1.createGraph();\r\n\r\n        \/\/ To store minimum distance\r\n        int dist[10001];\r\n\r\n        \/\/ To mark each node as visited or not in BFS\r\n        bool visit[10001] = { 0 };\r\n\r\n        \/\/ Initialising the value of distance and visit.\r\n        for (int i = 1; i &lt;= m*n; i++)\r\n        {\r\n            dist[i] = INT_MAX;\r\n            visit[i] = 0;\r\n        }\r\n\r\n        \/\/ Inserting nodes whose value in matrix\r\n        \/\/ is 1 in the queue.\r\n        int k = 1;\r\n        queue&lt;int&gt; q;\r\n        for (int i = 0; i &lt; n; i++)\r\n        {\r\n            for (int j = 0; j &lt; m; j++)\r\n            {\r\n                if (mat[i][j] == 1)\r\n                {\r\n                    dist[k] = 0;\r\n                    visit[k] = 1;\r\n                    q.push(k);\r\n                }\r\n                k++;\r\n            }\r\n        }\r\n\r\n        \/\/ Calling for Bfs with given Queue.\r\n        g1.bfs(visit, dist, q);\r\n\r\n        \/\/ Printing the solution.\r\n        g1.print(dist);\r\n\r\n    }\r\n    return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_2350 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_2350 a\"),jQuery(\"#tab-content_2350\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\nSince, the new cells are added to the queue only if their current distance is greater than the calculated distance, cells are not likely to be added multiple times.<\/p>\n<p><strong>Space complexity:<\/strong><br \/>\nO(r <em> c). Additional O(r <\/em> c)for queue.<\/p>\n<p>[forminator_quiz id=&quot;2352&quot;]<\/p>\n<p>This article tried to discuss the concept of <strong>Recursion<\/strong>. Hope this blog helps you understand the concept. To practice more problems you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Recursion DIFFICULTY LEVEL: Easy PROBLEM STATEMENT (SIMPLIFIED): Rahul is stuck in a maze world, where the maze is a binary matrix of size NXM (each cell has value 0 or 1). To get out of this world he needs to calculate the distance to the nearest 1 for each cell in the maze. [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2351","post","type-post","status-publish","format-standard","hentry","category-miscellaneous"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recursion Interview Programming | Nearest Cellpaid | Prepbytes<\/title>\n<meta name=\"description\" content=\"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursion Interview Programming | Nearest Cellpaid | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-29T07:33:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T11:21:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Nearest Cell(paid)\",\"datePublished\":\"2020-07-29T07:33:57+00:00\",\"dateModified\":\"2022-12-13T11:21:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\"},\"wordCount\":214,\"commentCount\":1,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\",\"articleSection\":[\"Miscellaneous\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\",\"name\":\"Recursion Interview Programming | Nearest Cellpaid | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\",\"datePublished\":\"2020-07-29T07:33:57+00:00\",\"dateModified\":\"2022-12-13T11:21:07+00:00\",\"description\":\"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Miscellaneous\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/miscellaneous\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Nearest Cell(paid)\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recursion Interview Programming | Nearest Cellpaid | Prepbytes","description":"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.","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:\/\/prepbytes.com\/blog\/nearest-cellpaid\/","og_locale":"en_US","og_type":"article","og_title":"Recursion Interview Programming | Nearest Cellpaid | Prepbytes","og_description":"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.","og_url":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-29T07:33:57+00:00","article_modified_time":"2022-12-13T11:21:07+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Nearest Cell(paid)","datePublished":"2020-07-29T07:33:57+00:00","dateModified":"2022-12-13T11:21:07+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/"},"wordCount":214,"commentCount":1,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png","articleSection":["Miscellaneous"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/","url":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/","name":"Recursion Interview Programming | Nearest Cellpaid | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png","datePublished":"2020-07-29T07:33:57+00:00","dateModified":"2022-12-13T11:21:07+00:00","description":"A Simple Solution for This Problem Is to for Each 0 in the Matrix Recursively Check the Nearest 1 in the Matrix.an Efficient Solution for This Problem Is to Use Bfs.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180330671-Article_422.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/nearest-cellpaid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Miscellaneous","item":"https:\/\/prepbytes.com\/blog\/category\/miscellaneous\/"},{"@type":"ListItem","position":3,"name":"Nearest Cell(paid)"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=2351"}],"version-history":[{"count":12,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2351\/revisions"}],"predecessor-version":[{"id":8474,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2351\/revisions\/8474"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}