采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
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); }
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 内部改变值。
继续加油!:)
老师,这个是不是可以限制下比如我从左到右搜索限制下一个点只能往右边搜索。从右到左限制只能往左,上下一样,这样会不会在时间上会快一点
老师,是我没读懂题目意思,我以为只能直线流入,所以一直纠结为啥每次都要四个方向搜索,谢谢老师
嗯,你第一个回复的限制是错误的,你已经理解了是把?如果还没有理解,按照你的这个想法,写出代码,提交给 leetcode,看是否正确?如果不正确,那个测试用例出错了?调试一下,为什么这个测试用例错了?加油!:)
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.1k 13
1.1k 12
653 11
1.5k 10
1.2k 10