leetcode Day60 剑指专项97-99

103 阅读1分钟

1260. 二维网格迁移

var shiftGrid = function(grid, k) {
    let all=[]
    const m=grid.length
    const n=grid[0].length
    for(let i=0;i<m;i++){
        all.push(...grid[i])
    }
    for(let i=0;i<k;i++){
        all=[...all.slice(all.length-1),...all.slice(0,all.length-1)]
    }
    let res=[]
    for(let i=0;i<m;i++){
        res.push(all.slice(n*i,n*i+n))
    }
    return res
};

剑指 Offer II 098. 路径的数目

var uniquePaths = function(m, n) {
    const dp=new Array(m).fill(0).map(()=>new Array(n).fill(0))
    for(let i=0;i<m;i++){
        dp[i][0]=1
    }
    for(let j=0;j<n;j++){
        dp[0][j]=1
    }
    for(let i=1;i<m;i++){
        for(let j=1;j<n;j++){
            dp[i][j]=dp[i-1][j]+dp[i][j-1]
        }
    }
    return dp[m-1][n-1]
};

剑指 Offer II 099. 最小路径之和

var minPathSum = function(grid) {
    let m=grid.length
    let n=grid[0].length
    const dp=new Array(m).fill(0).map(()=>new Array(n).fill(0))
    dp[0][0]=grid[0][0]
    for(let i=1;i<m;i++){
        dp[i][0]=grid[i][0]+dp[i-1][0]
    }
    for(let j=1;j<n;j++){
        dp[0][j]=grid[0][j]+dp[0][j-1]
    }
    for(let i=1;i<m;i++){
        for(let j=1;j<n;j++){
            dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])+grid[i][j]
        }
    }
    return dp[m-1][n-1]
};