请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老師幫我看下這個報錯

/**
 * @param {number[][]} heights
 * @return {number[][]}
 */
var pacificAtlantic = function(heights) {
    //如果二維陣列不存在返回
    if(!heights || !heights[0]) return []

    const m = heights.length
    const n = heights[0].length
    
    //二維陣列創法
    const flow1 = Array.from({length:m}, ()=>{new Array(n).fill(false)})
    const flow2 = Array.from({length:m}, ()=>{new Array(n).fill(false)})

    const dfs = (r,c, flow) => {
        flow[r][c] = true
        [[r+1, c],[r-1, c], [r,c+1],[r, c-1]].forEach(([nr,nc]) => {
            if(nr>=0 && nr < m && nc>=0 && nc<n &&
            //防止死循環
            !flow[nr][nc]&&
            //保證逆流而上
            heights[nr][nc] >= heights[n][c]
            )
            dfs(nc,nr, flow)
        })
    }

    //沿著海岸線開始圖的深度遍歷
    for(let i = 0; i< m ; i++){
        dfs(i, 0 , flow1)
        dfs(i,n-1, flow2 )
    }

    for(let i =0; i<n; i++){
        dfs(0, i ,flow1)
        dfs(m-1, i ,flow2)
    }

    let res = []
    for(let i =0 ; i <m ; i++){
        for(let j =0 ; j < n; j++){
            if(flow1[i][j] && flow2[i][j]){
                res.push([r,c])
            }
        }
    }

    return res
};

图片描述

是哪裡有問題呢? 我看 [[r+1, c],[r-1, c], [r,c+1],[r, c-1]]有值呀

正在回答 回答被采纳积分+3

4回答

momo_已黑化 2023-04-04 20:59:00

我也犯了这个错误!我在递归中把nr和nc写反了自己找了好久的问题 发现其实是进了死循环 改过来就好了

0 回复 有任何疑惑可以回复我~
teaper 2022-09-07 23:16:51

flow[r][c] = true

后面加上分号

0 回复 有任何疑惑可以回复我~
徐一刀 2021-09-13 11:45:32

new array哪里多加了{}

0 回复 有任何疑惑可以回复我~
lewis 2021-06-18 14:27:38

确实很诡异,要不你打印一下你构造的数组

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕雪0272820 #1
    [
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ]
    ] [
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ],
      [ false, false, false, false, false ]
    ]
     老師 console.log(flow1, flow2)打印出的數組是這樣,看起來沒問題?那還可能是什麼問題呢? 求助>_<
    回复 有任何疑惑可以回复我~ 2021-06-19 18:01:26
  • lewis 回复 提问者 weixin_慕雪0272820 #2
    我是说让你打印一下报错里的那个数组
    回复 有任何疑惑可以回复我~ 2021-06-19 18:24:48
  • 提问者 weixin_慕雪0272820 回复 lewis #3
    [ [ 1, 0 ], [ -1, 0 ], [ 0, 1 ], [ 0, -1 ] ]
    回复 有任何疑惑可以回复我~ 2021-06-20 16:33:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信