请稍等 ...
×

采纳答案成功!

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

老师,力扣417问题,太平洋和大西洋数组的值在哪里改变的呀,看的有点懵,主函数那两个for循环看的也不太明白

for(int i = 0 ; i < n ; i ++){
dfs(matrix, pacific, i, 0);
dfs(matrix, atlantic, i, m - 1);
}

    for(int j = 0 ; j < m ; j ++){
        dfs(matrix, pacific, 0, j);
        dfs(matrix, atlantic, n - 1, j);
    }

正在回答

1回答

for(int i = 0 ; i < n ; i ++){
    // 从左边一个点(i, 0)出发,找能够流到太平洋的陆地
    dfs(matrix, pacific, i, 0);
    
    // 从右边一个点(i, m - 1)出发,找能够流到大西洋的陆地
    dfs(matrix, atlantic, i, m - 1);
}

for(int j = 0 ; j < m ; j ++){    
    // 从上边一个点(0, j)出发,找能够流到太平洋的陆地
    dfs(matrix, pacific, 0, j);  
    
    // 从下边一个点(n - 1, j)出发,找能够流到大西洋的陆地  
    dfs(matrix, atlantic, n - 1, j);
}


pacific 或者 atlantic 会在 dfs 内部改变值。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕沐2087304 #1
    老师,这个是不是可以限制下比如我从左到右搜索限制下一个点只能往右边搜索。从右到左限制只能往左,上下一样,这样会不会在时间上会快一点
    回复 有任何疑惑可以回复我~ 2020-12-12 23:52:58
  • 提问者 weixin_慕沐2087304 #2
    老师,是我没读懂题目意思,我以为只能直线流入,所以一直纠结为啥每次都要四个方向搜索,谢谢老师
    回复 有任何疑惑可以回复我~ 2020-12-13 00:50:47
  • liuyubobobo 回复 提问者 weixin_慕沐2087304 #3
    嗯,你第一个回复的限制是错误的,你已经理解了是把?如果还没有理解,按照你的这个想法,写出代码,提交给 leetcode,看是否正确?如果不正确,那个测试用例出错了?调试一下,为什么这个测试用例错了?加油!:)
    回复 有任何疑惑可以回复我~ 2020-12-13 05:06:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信