1289-minimum-falling-path-sum-ii

DevGod needs to write a blog entry for this problem!
/**
 * @param {number[][]} grid
 * @return {number}
 */
var minFallingPathSum = function (grid) {
    let dp = [];
    for (let row = 0; row < grid.length; row++) {
        dp.push([]);
        for (let col = 0; col < grid[0].length; col++) {
            if (row === 0) {
                dp[row][col] = grid[row][col];
            } else {
                let min = Math.min(...dp[row - 1]);
                if (dp[row - 1].indexOf(min) === col) {
                    let left = dp[row - 1].slice(0, col);
                    let right = dp[row - 1].slice(col + 1, grid[0].length);
                    min = Math.min(Math.min(...left), Math.min(...right));
                }
                min += grid[row][col];
                dp[row][col] = min;
            }
        }
    }
    
    return Math.min(...dp[grid.length - 1]);
};