当前位置: 首页 > news >正文

leetcode 417 太平洋大西洋水流问题

一、题目描述

二、解题思路

整体思路

(1)可以使用深度优先搜索的方法来解决这个问题;

(2)正难则反,若遍历heights数组判断每个位置是否能够流向“太平洋”和“大西洋”,难度很大。可以反着来思考,处理边界:

<1>上边界和左边界为起点寻找递增的位置(即为可以流向太平洋的位置),将对应的Pacific值修改为true;

<2>下边界和右边界为起点寻找递增的位置(即为可以流向大西洋的位置),将对应的Atlantic值修改为true;

边界处理完后,遍历heights数组,如果某位置对应的Pacific值和Atlantic值均为true,则代表该位置即可以通向太平洋又可以通向大西洋,即为我们需要的位置;

具体思路

(1)函数功能:dfs函数用于将以(i,j)为起点的递增的位置,即可以达到该边界的所有位置全部染色(对应的visited值修改为true)。

(2)函数体

<1>首先,将visited[i][j]修改为true;

<2>按照上、右、下、左的顺序,如果(x,y)不越界,且visited[x][y]为false且heights[i][j]<=heights[x][y],则对(x,y)位置递归调用dfs函数。

三、代码实现

class Solution {int m,n;
public:vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {//初始化全局变量m=heights.size();n=heights[0].size();vector<vector<bool>> Pacific(m,vector<bool>(n,false));vector<vector<bool>> Atlantic(m,vector<bool>(n,false));vector<vector<int>> ret;for(int i=0;i!=m;i++)for(int j=0;j!=n;j++){if(i==0||j==0)dfs(heights,i,j,Pacific);if(i==m-1||j==n-1)dfs(heights,i,j,Atlantic);}for(int i=0;i!=m;i++)for(int j=0;j!=n;j++){if(Pacific[i][j]&&Atlantic[i][j])ret.push_back({i,j});}return ret;}int dx[4]={0,1,0,-1};int dy[4]={1,0,-1,0};void dfs(vector<vector<int>>& heights,int i,int j,vector<vector<bool>>& visited){visited[i][j] = true;for(int k=0;k!=4;k++){int x=i+dx[k];int y=j+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&!visited[x][y]&&heights[i][j]<=heights[x][y])dfs(heights,x,y,visited);}}
};

http://www.dtcms.com/a/450240.html

相关文章:

  • 网站域名每年费用李勇seo博客
  • 【FPGA+DSP系列】——(4)EPWM学习(实现呼吸灯实验)
  • 【数据结构】搜索二叉树是啥树?有啥用?
  • 2025-10-06 Python不基础 15——metaclass
  • 淘宝客必须做网站吗建筑网站排行
  • Python高阶技巧:使用functools.partial减少函数参数个数完全指南
  • 2025年--Lc163--H58.最后一个单词的长度(数组和字符串)--Java版
  • 酒店如何做团购网站app界面设计模板图片
  • 长沙h5网站建设天津网站建站公司
  • 购物网站开发目的网页设计与制作作业成品
  • RNN在自然语言处理中的应用:文本分类实战(代码演示)
  • 嵌入式开发面试八股文详解教程
  • 图形打印方法:从正方形到三角形的编程实践(洛谷P5725)
  • 阿里云对象存储做静态网站成都装修公司哪家口碑最好
  • kanass入门到实战(9) - 如何自定义事项类型,满足个性化需求
  • 企业商城网站建设在哪里买域名
  • 【11408学习记录】考研数学核心突破:线性代数之线性方程组深度解析
  • 舟山网站建设哪家好网站建设者
  • 个人网站备案简介wordpress alipay
  • 王野电动车名风seo软件
  • 彩网站开发天琥设计
  • 大型网站开发工具洛阳小程序开发公司
  • 一个虚拟空间做两个网站中国建设工程造价管理系统
  • 网站开发与网页制作的区别自助企业建站模板
  • 【LeetCode热题100(35/100)】LRU 缓存
  • 长沙网站seo推广中华商标交易网官方网站
  • 如何利用单北斗变形监测提升地质灾害预警能力?
  • 制作广告网站的步骤加强公司网站建设
  • 同字形结构布局网站电子商务网站开发毕业设计
  • 博物建设公司网站网上找家装设计师