当前位置:   article > 正文

Leectcode417太平洋大西洋水流问题_med_C++

Leectcode417太平洋大西洋水流问题_med_C++

给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。

规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。

请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。

 

提示:

输出坐标的顺序不重要
m 和 n 都小于150
 

示例:

 

给定下面的 5x5 矩阵:

  太平洋 ~   ~   ~   ~   ~ 
       ~  1   2   2   3  (5) *
       ~  3   2   3  (4) (4) *
       ~  2   4  (5)  3   1  *
       ~ (6) (7)  1   4   5  *
       ~ (5)  1   1   2   4  *
          *   *   *   *   * 大西洋

返回:

[[0, 4], [1, 3], [1, 4], [2, 2], [3, 0], [3, 1], [4, 0]] (上图中带括号的单元).

思路:按照DFS的想法,从可以达到的边上的点主词进行深度优先搜索。取交集。

第一版按照之前的DFS的想法写出的思路如下,发现堆栈会溢出。通过cout打印可以看出,出现了在两个点循环调准的情况。如下图所示

  1. class Solution {
  2. int d[4][2] = {
  3. {0,1},{0,-1},{-1,0},{1,0}};
  4. bool IfValid(const vector<vector<int>>& matrix, int x,
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/146462
推荐阅读
相关标签
  

闽ICP备14008679号