<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Loop &#8211; JSAlgorithm</title>
	<atom:link href="https://jsalgorithm.com/category/loop/feed/" rel="self" type="application/rss+xml" />
	<link>https://jsalgorithm.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2020 01:11:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.15</generator>
<site xmlns="com-wordpress:feed-additions:1">177240629</site>	<item>
		<title>Spiral Matrix</title>
		<link>https://jsalgorithm.com/2020/06/04/spiral-matrix/</link>
					<comments>https://jsalgorithm.com/2020/06/04/spiral-matrix/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Thu, 04 Jun 2020 01:11:55 +0000</pubDate>
				<category><![CDATA[Array]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[matrix]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=140</guid>

					<description><![CDATA[function spiralMatrix(dimension) { let matrix = []; // create blank matrix based from given dimension for (let i = 0; i &#60; dimension; i++) { matrix.push(new Array(dimension).fill(0)) } let counter = 1; let startRow = 0, endRow = dimension, startColumn = 0, endColumn = dimension; while (startRow &#60; endRow &#38;&#38; startColumn &#60; endColumn) { // [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">function spiralMatrix(dimension) {

    let matrix = [];
    // create blank matrix based from given dimension
    for (let i = 0; i &lt; dimension; i++) {
        matrix.push(new <strong><em>Array</em></strong>(dimension).fill(0))
    }

    let counter = 1;
    let startRow = 0, endRow = dimension, startColumn = 0, endColumn = dimension;


    while (startRow &lt; endRow &amp;&amp; startColumn &lt; endColumn) {

        // top left -> top right
        for (let i = startColumn; i &lt; endColumn; i++) {
            matrix[startRow][i] = counter++;
        }
        startRow++

        // top right -> bottom right
        for (let i = startRow; i &lt; endRow; i++) {
            matrix[i][endColumn - 1] = counter++;
        }
        endColumn--;

        // bottom right -> bottom left
        for (let i = endColumn - 1; i >= startColumn; i--) {
            matrix[endRow - 1][i] = counter++;
        }
        endRow--;


        // bottom left -> top left
        for (let i = endRow; i > startRow; i--) {
            matrix[i - 1][startColumn] = counter++;
        }
        startColumn++;

    }

     return matrix;
}</pre>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/06/04/spiral-matrix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">140</post-id>	</item>
		<item>
		<title>Game Of Life (Optimized)</title>
		<link>https://jsalgorithm.com/2020/05/21/game-of-life-optimized/</link>
					<comments>https://jsalgorithm.com/2020/05/21/game-of-life-optimized/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Thu, 21 May 2020 02:46:57 +0000</pubDate>
				<category><![CDATA[Array]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[bitshift]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[matrix]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=132</guid>

					<description><![CDATA[let gameOfLife = function(board) { if (!board) return []; let LIVE = 1, DEAD = 0, ALIVE_TO_DEAD = 0b01, // [next state, current state] ALIVE_TO_ALIVE = 0b11, DEAD_TO_ALIVE = 0b10, DEAD_TO_DEAD = 0b00, maxRow = board.length - 1, maxCol = board[0].length - 1; function getAdjacentCount(row, col, valueToCompare) { let sum = 0; for (let i [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let gameOfLife = function(board) {

    if (!board) return [];

    let LIVE = 1,
        DEAD = 0,
        ALIVE_TO_DEAD = 0b01, // [next state, current state]
        ALIVE_TO_ALIVE = 0b11,
        DEAD_TO_ALIVE = 0b10,
        DEAD_TO_DEAD = 0b00,
        maxRow = board.length - 1,
        maxCol = board[0].length - 1;

    function getAdjacentCount(row, col, valueToCompare) {
        let sum = 0;
        for (let i = <strong><em>Math</em></strong>.max(row - 1, 0); i &lt;= <strong><em>Math</em></strong>.min(row + 1, maxRow); i++) {
            for (let j = <strong><em>Math</em></strong>.max(col - 1, 0); j &lt;= <strong><em>Math</em></strong>.min(col + 1, maxCol); j++) {
                if (i === row &amp;&amp; j === col) continue;
                if (board[i][j] &amp; 1 === valueToCompare) sum = sum + 1;
            }
        }
        return sum;
    }

    function getNextValue(row, col) {
        const val = board[row][col];
        let liveNeighbors = getAdjacentCount(row, col, LIVE);
        if (val === LIVE) {

            // Any live cell with fewer than two live neighbors dies, as if caused by under-population.
            // Any live cell with more than three live neighbors dies, as if by over-population..
            if (liveNeighbors &lt; 2 || liveNeighbors > 3) {
                return ALIVE_TO_DEAD;
            }
            // Any live cell with two or three live neighbors lives on to the next generation.
            return ALIVE_TO_ALIVE;
        }
        // cell is DEAD
        else {
            // Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.
            if (liveNeighbors === 3) {
                return DEAD_TO_ALIVE;
            }
            // no condition
            return DEAD_TO_DEAD;
        }
    }

    for (let row = 0; row &lt;= maxRow; row++) {
        for (let col = 0; col &lt;= maxCol;col++) {
            board[row][col] = getNextValue(row, col);
        }
    }

    for (let row = 0; row &lt;= maxRow; row++) {
        for (let col = 0; col &lt;= maxCol;col++) {
            board[row][col] = board[row][col] >> 1;
        }
    }

};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/21/game-of-life-optimized/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">132</post-id>	</item>
		<item>
		<title>Game Of Life</title>
		<link>https://jsalgorithm.com/2020/05/21/game-of-life/</link>
					<comments>https://jsalgorithm.com/2020/05/21/game-of-life/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Thu, 21 May 2020 02:11:49 +0000</pubDate>
				<category><![CDATA[Array]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[matrix]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=130</guid>

					<description><![CDATA[let gameOfLife = function(board) { if (!board) return []; let copy = [], LIVE = 1, DEAD = 0, maxRow = board.length - 1, maxCol = board[0].length - 1; function getAdjacentCount(row, col, valueToCompare) { let sum = 0; for (let i = Math.max(row - 1, 0); i &#60;= Math.min(row + 1, maxRow); i++) { for [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let gameOfLife = function(board) {<br><br>    if (!board) return [];<br><br>    let copy = [],<br>        LIVE = 1,<br>        DEAD = 0,<br>        maxRow = board.length - 1,<br>        maxCol = board[0].length - 1;<br><br>    function getAdjacentCount(row, col, valueToCompare) {<br>        let sum = 0;<br>        for (let i = <strong><em>Math</em></strong>.max(row - 1, 0); i &lt;= <strong><em>Math</em></strong>.min(row + 1, maxRow); i++) {<br>            for (let j = <strong><em>Math</em></strong>.max(col - 1, 0); j &lt;= <strong><em>Math</em></strong>.min(col + 1, maxCol); j++) {<br>                if (i === row &amp;&amp; j === col) continue;<br>                if (copy[i] &amp;&amp; copy[i][j] !== undefined) {<br>                    if (copy[i][j] === valueToCompare) sum = sum + 1; //?<br>                }<br>                else {<br>                    if (board[i][j] === valueToCompare) sum = sum + 1; //?<br>                }<br>            }<br>        }<br>        return sum;<br>    }<br><br>    function getNextValue(row, col) {<br>        const val = board[row][col];<br>        let liveNeighbors = getAdjacentCount(row, col, LIVE);<br>        if (val === LIVE) {<br><br>            // Any live cell with fewer than two live neighbors dies, as if caused by under-population.<br>            if (liveNeighbors &lt; 2) {<br>                return DEAD;<br>            }<br>            // Any live cell with more than three live neighbors dies, as if by over-population..<br>            else if (liveNeighbors &gt; 3) {<br>                return DEAD;<br>            }<br>            // Any live cell with two or three live neighbors lives on to the next generation.<br>            return LIVE;<br>        }<br>        // cell is DEAD<br>        else {<br>            // Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.<br>            if (liveNeighbors === 3) {<br>                return LIVE;<br>            }<br>            // no condition<br>            return DEAD;<br>        }<br>    }<br><br>    for (let row = 0; row &lt;= maxRow; row++) {<br>        copy[row] = [];<br>        for (let col = 0; col &lt;= maxCol;col++) {<br>            copy[row][col] = board[row][col];<br>            board[row][col] = getNextValue(row, col);<br>        }<br>    }<br><br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/21/game-of-life/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">130</post-id>	</item>
		<item>
		<title>LinkedList Palindrome</title>
		<link>https://jsalgorithm.com/2020/05/20/linkedlist-palindrome/</link>
					<comments>https://jsalgorithm.com/2020/05/20/linkedlist-palindrome/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 17:20:07 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[linkedlist]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[palindrome]]></category>
		<category><![CDATA[stack]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=126</guid>

					<description><![CDATA[let isPalindrome = function(head) { let slow = head, fast = head, val = [slow.val]; while (fast.next) { if (fast.next.next) { fast = fast.next.next; slow = slow.next; val.push(slow.val); } else { fast = fast.next; slow = slow.next; } } while (slow) { if (slow.val !== val.pop()) { return false; } slow = slow.next; } return [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let isPalindrome = function(head) {<br><br>    let slow = head, fast = head, val = [slow.val];<br><br>    while (fast.next) {<br>        if (fast.next.next) {<br>            fast = fast.next.next;<br>            slow = slow.next;<br>            val.push(slow.val);<br>        }<br>        else {<br>            fast = fast.next;<br>            slow = slow.next;<br>        }<br>    }<br><br>    while (slow) {<br>        if (slow.val !== val.pop()) {<br>            return false;<br>        }<br>        slow = slow.next;<br>    }<br><br>    return val.length === 0;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/linkedlist-palindrome/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">126</post-id>	</item>
		<item>
		<title>Fizz Buzz</title>
		<link>https://jsalgorithm.com/2020/05/20/fizz-buzz/</link>
					<comments>https://jsalgorithm.com/2020/05/20/fizz-buzz/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 02:49:51 +0000</pubDate>
				<category><![CDATA[Array]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[string]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=116</guid>

					<description><![CDATA[let fizzBuzz = function(n) { let result = []; for (let i = 1; i &#60;= n; i++) { if (i % 3 === 0 &#38;&#38; i % 5 === 0) { result.push("FizzBuzz"); } else if (i % 3 === 0) { result.push("Fizz"); } else if (i % 5 === 0) { result.push("Buzz"); } else [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let fizzBuzz = function(n) {<br><br>    let result = [];<br>    for (let i = 1; i &lt;= n; i++) {<br>        if (i % 3 === 0 &amp;&amp; i % 5 === 0) {<br>            result.push("FizzBuzz");<br>        }<br>        else if (i % 3 === 0) {<br>            result.push("Fizz");<br>        }<br>        else if (i % 5 === 0) {<br>            result.push("Buzz");<br>        }<br>        else {<br>            result.push('' + i);<br>        }<br>    }<br><br>    return result;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/fizz-buzz/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">116</post-id>	</item>
		<item>
		<title>Pascal Triangle</title>
		<link>https://jsalgorithm.com/2020/05/20/pascal-triangle/</link>
					<comments>https://jsalgorithm.com/2020/05/20/pascal-triangle/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 02:17:45 +0000</pubDate>
				<category><![CDATA[Array]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[loop]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=112</guid>

					<description><![CDATA[let generate = function(numRows) { if (numRows === 0) return []; let result = []; for (let i = 1; i &#60;= numRows;i++) { let row = []; for (let j = 0; j &#60; i; j++) { if (j === 0 &#124;&#124; j === i - 1) { row[j] = 1; } else { [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let generate = function(numRows) {<br><br>    if (numRows === 0) return [];<br><br>    let result = [];<br>    for (let i = 1; i &lt;= numRows;i++) {<br>        let row = [];<br>        for (let j = 0; j &lt; i; j++) {<br>            if (j === 0 || j === i - 1) {<br>                row[j] = 1;<br>            }<br>            else {<br>                row[j] = result[i - 2][j - 1] + result[i - 2][j];<br>            }<br>        }<br>        result.push(row);<br>    }<br><br>    return result;<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/pascal-triangle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">112</post-id>	</item>
		<item>
		<title>Palindrome</title>
		<link>https://jsalgorithm.com/2020/05/20/palindrome/</link>
					<comments>https://jsalgorithm.com/2020/05/20/palindrome/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 01:55:55 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[string]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=110</guid>

					<description><![CDATA[let isPalindrome = function(s) { let start = 0, end = s.length - 1, regex = /\w/i; while (start &#60; end) { if (!s[start].match(regex)) { start++; } else if (!s[end].match(regex)) { end--; } else { if (s[start].toLowerCase() !== s[end].toLowerCase()) return false; start++; end--; } } return true;}]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let isPalindrome = function(s) {<br>    let start = 0, end = s.length - 1, regex = /\w/i;<br>    while (start &lt; end) {<br>        if (!s[start].match(regex)) {<br>            start++;<br>        }<br>        else if (!s[end].match(regex)) {<br>            end--;<br>        }<br>        else {<br>            if (s[start].toLowerCase() !== s[end].toLowerCase()) return false;<br>            start++;<br>            end--;<br>        }<br>    }<br>    return true;<br>}</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/palindrome/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">110</post-id>	</item>
		<item>
		<title>Roman To Int</title>
		<link>https://jsalgorithm.com/2020/05/20/roman-to-int/</link>
					<comments>https://jsalgorithm.com/2020/05/20/roman-to-int/#respond</comments>
		
		<dc:creator><![CDATA[Ronald]]></dc:creator>
		<pubDate>Wed, 20 May 2020 01:43:13 +0000</pubDate>
				<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[string]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=108</guid>

					<description><![CDATA[let romanToInt = function(s) { if (!s) return 0; let mapping = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000 } let result = 0; for (let i = s.length - 1; i &#62;= 0;) { if (mapping[s[i]] &#62; mapping[s[i - 1]]) { result += mapping[s[i]] - mapping[s[i [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let romanToInt = function(s) {<br>    if (!s) return 0;<br><br>    let mapping = {<br>        'I': 1,<br>        'V': 5,<br>        'X': 10,<br>        'L': 50,<br>        'C': 100,<br>        'D': 500,<br>        'M': 1000<br>    }<br><br>    let result = 0;<br>    for (let i = s.length - 1; i &gt;= 0;) {<br>        if (mapping[s[i]] &gt; mapping[s[i - 1]]) {<br>            result += mapping[s[i]] - mapping[s[i - 1]];<br>            i -= 2;<br>        }<br>        else {<br>            result += mapping[s[i]];<br>            i -= 1;<br>        }<br>    }<br><br>    return result;<br>}</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/20/roman-to-int/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">108</post-id>	</item>
		<item>
		<title>Unique Paths (Iterative)</title>
		<link>https://jsalgorithm.com/2020/05/18/unique-paths-iterative/</link>
					<comments>https://jsalgorithm.com/2020/05/18/unique-paths-iterative/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Mon, 18 May 2020 21:48:09 +0000</pubDate>
				<category><![CDATA[Dynamic Programming]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[dynamic-programming]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[loop]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=104</guid>

					<description><![CDATA[let uniquePaths = function(m, n) { let getKey = (row, col) =&#62; `${row}${col}`; let cache = { } for (let row = 1; row &#60;= m; row++) { for (let col = 1; col &#60;= n; col++) { if (row === 1) { cache[getKey(row, col)] = 1; } else if (col === 1) { cache[getKey(row, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let uniquePaths = function(m, n) {<br><br>    let getKey = (row, col) =&gt; `${row}${col}`;<br><br>    let cache = { }<br>    for (let row = 1; row &lt;= m; row++) {<br>        for (let col = 1; col &lt;= n; col++) {<br>            if (row === 1) {<br>                cache[getKey(row, col)] = 1;<br>            }<br>            else if (col === 1) {<br>                cache[getKey(row, col)] = 1;<br>            }<br>            else {<br>                cache[getKey(row, col)] = cache[getKey(row-1, col)] + cache[getKey(row, col - 1)];<br>            }<br>        }<br>    }<br><br>    return cache[getKey(m,n)];<br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/18/unique-paths-iterative/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">104</post-id>	</item>
		<item>
		<title>Island Perimeter</title>
		<link>https://jsalgorithm.com/2020/05/16/island-perimeter/</link>
					<comments>https://jsalgorithm.com/2020/05/16/island-perimeter/#respond</comments>
		
		<dc:creator><![CDATA[Ron]]></dc:creator>
		<pubDate>Sat, 16 May 2020 03:14:03 +0000</pubDate>
				<category><![CDATA[Depth First Search]]></category>
		<category><![CDATA[Leetcode]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Recursion]]></category>
		<category><![CDATA[depth-first-search]]></category>
		<category><![CDATA[leetcode]]></category>
		<category><![CDATA[recursion]]></category>
		<guid isPermaLink="false">http://50.19.13.106/?p=86</guid>

					<description><![CDATA[let islandPerimeter = function(grid) { if (!grid &#124;&#124; !grid.length) return 0; let maxRow = grid.length, maxCol = grid[0].length, LAND = 1, VISITED = 2; function calculatePerimeter(row, col) { if (grid[row][col] === LAND) { grid[row][col] = VISITED; let perimeter = 4; // check above; if (row &#62; 0 &#38;&#38; (grid[row - 1][col] === LAND &#124;&#124; grid[row [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">let islandPerimeter = function(grid) {<br><br>    if (!grid || !grid.length) return 0;<br><br>    let maxRow = grid.length,<br>        maxCol = grid[0].length,<br>        LAND = 1, VISITED = 2;<br><br>    function calculatePerimeter(row, col) {<br><br>        if (grid[row][col] === LAND) {<br>            grid[row][col] = VISITED;<br><br>            let perimeter = 4;<br>            // check above;<br>            if (row &gt; 0<br>                &amp;&amp; (grid[row - 1][col] === LAND || grid[row - 1][col] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row - 1, col);<br>            }<br><br>            // check below;<br>            if (row &lt; maxRow - 1<br>                &amp;&amp; (grid[row + 1][col] === LAND || grid[row + 1][col] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row + 1, col);<br>            }<br><br>            // check left;<br>            if (col &gt; 0<br>                &amp;&amp; (grid[row][col - 1] === LAND || grid[row][col - 1] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row, col - 1);<br>            }<br><br>            // check right;<br>            if (col &lt; maxCol - 1<br>                &amp;&amp; (grid[row][col + 1] === LAND || grid[row][col + 1] === VISITED)) {<br>                perimeter = perimeter - 1;<br>                perimeter += calculatePerimeter(row, col + 1);<br>            }<br><br>            return perimeter; //?<br>        }<br><br>        return 0;<br>    }<br><br>    for (let row = 0; row &lt; maxRow; row++) {<br>        for (let col = 0; col &lt; maxCol;col++) {<br>            if (grid[row][col] === LAND) {<br>                return calculatePerimeter(row, col);<br>            }<br>        }<br>    }<br><br>    return 0;<br><br>};</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://jsalgorithm.com/2020/05/16/island-perimeter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">86</post-id>	</item>
	</channel>
</rss>
