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

东莞门户网站建设报价表青岛网站设计公司在哪找

东莞门户网站建设报价表,青岛网站设计公司在哪找,高职网站建设专业书,渭南建设网站1、题目描述 有一个 m n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , …

1、题目描述

有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。

这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。

岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直接向北、南、东、西流向相邻单元格。水可以从海洋附近的任何单元格流入海洋。

返回网格坐标 result 的 2D 列表 ,其中 result[i] = [ri, ci] 表示雨水从单元格 (ri, ci) 流动 既可流向太平洋也可流向大西洋 。

示例 1:

输入: heights = [[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]]

示例 2:

输入: heights = [[2,1],[1,2]]
输出: [[0,0],[0,1],[1,0],[1,1]]

提示:

  • m == heights.length
  • n == heights[r].length
  • 1 <= m, n <= 200
  • 0 <= heights[r][c] <= 105

2、代码:

#include <queue>
#include <vector>using namespace std;class Solution
{
public:// 主函数,找出既能流向太平洋又能流向大西洋的坐标vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights){vector<vector<int>> result;int m = heights.size();if (m <= 0)return result;int n = heights[0].size();if (n <= 0)return result;// 初始化访问标记数组,分别记录能到达太平洋和大西洋的点vector<vector<bool>> pacific(m, vector<bool>(n, false));vector<vector<bool>> atlantic(m, vector<bool>(n, false));queue<pair<int, int>> q; // BFS队列// 处理太平洋的边界:上边缘和左边缘// 上边缘(第一行)for (int i = 0; i < n; ++i) {pacific[0][i] = true;q.push({0, i});}// 左边缘(第一列)for (int j = 0; j < m; ++j) {pacific[j][0] = true;q.push({j, 0});}// BFS扩展,标记所有能流入太平洋的点bfs(pacific, heights, q);// 处理大西洋的边界:下边缘和右边缘// 下边缘(最后一行)for (int i = 0; i < n; ++i) {atlantic[m - 1][i] = true;q.push({m - 1, i});}// 右边缘(最后一列)for (int j = 0; j < m; ++j) {atlantic[j][n - 1] = true;q.push({j, n - 1});}// BFS扩展,标记所有能流入大西洋的点bfs(atlantic, heights, q);// 遍历所有点,找出同时能到达太平洋和大西洋的点for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (pacific[i][j] && atlantic[i][j]) {result.push_back({i, j});}}}return result;}private:// 广度优先搜索,从队列中的点出发,扩展标记所有可达的高点// visited: 引用传递的访问标记数组,记录能流入某个海洋的点// heights: 输入的地形高度数组// q: 队列,初始时包含边界点,处理过程中存储待扩展的点void bfs(vector<vector<bool>>& visited, vector<vector<int>>& heights,queue<pair<int, int>>& q){// 四个方向的偏移量:上、下、左、右int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int m = heights.size();int n = heights[0].size();while (!q.empty()) {auto [row, col] = q.front();q.pop();// 遍历四个方向for (auto& dir : dirs) {int nr = row + dir[0]; // 新的行坐标int nc = col + dir[1]; // 新的列坐标// 检查新坐标是否在矩阵范围内// 且未被访问过// 且新坐标的高度 >= 当前点的高度(保证水流可以逆流而上)if (nr >= 0 && nr < m && nc >= 0 && nc < n &&!visited[nr][nc] && heights[nr][nc] >= heights[row][col]) {visited[nr][nc] = true; // 标记为可到达q.push({nr, nc});       // 加入队列继续扩展}}}}
};

3、解题思路:

1. ​​逆向思维,从边界出发​
  • ​关键观察​​:直接遍历每个点判断能否到达两个海洋效率低。逆向考虑,从海洋边界出发,标记所有可以逆流到边界的点(即顺流能到海洋的点)。
  • ​太平洋边界​​:第一行(上边界)和第一列(左边界)。
  • ​大西洋边界​​:最后一行(下边界)和最后一列(右边界)。
2. ​​广度优先搜索(BFS)标记可达点​
  • ​太平洋可达区域​​:从太平洋边界出发,用 BFS 标记所有高度​​不低于​​当前点的相邻点。
  • ​大西洋可达区域​​:同样方法处理大西洋边界。
  • ​BFS 条件​​:新坐标的高度必须​​大于等于​​当前点的高度(保证水流可以逆流而上)。
3. ​​取交集,得到最终结果​
  • 遍历所有点,若某个点同时被标记为太平洋和大西洋可达,则加入结果集。

文章转载自:

http://oI2uEyUY.kcnjz.cn
http://A2JByqsS.kcnjz.cn
http://40UIh8ra.kcnjz.cn
http://k3uVUIu7.kcnjz.cn
http://jy9eCahB.kcnjz.cn
http://ozz9ndOv.kcnjz.cn
http://7bptPmMK.kcnjz.cn
http://zpn3FfqG.kcnjz.cn
http://AqYcyBpB.kcnjz.cn
http://TvHruynb.kcnjz.cn
http://DXkD9kIy.kcnjz.cn
http://MrW6c6BM.kcnjz.cn
http://M215B7st.kcnjz.cn
http://vLzgJfSG.kcnjz.cn
http://yKO9326O.kcnjz.cn
http://WrepxQ6r.kcnjz.cn
http://WTTX8kG3.kcnjz.cn
http://sJpKYQkh.kcnjz.cn
http://xkw5jS1v.kcnjz.cn
http://3F5xApUF.kcnjz.cn
http://TPtkW54a.kcnjz.cn
http://B7OOWeSH.kcnjz.cn
http://Ac2dr5E8.kcnjz.cn
http://6WaOtVlz.kcnjz.cn
http://T5xYfVFF.kcnjz.cn
http://b00wAV4o.kcnjz.cn
http://NowLs00l.kcnjz.cn
http://llN3Rf07.kcnjz.cn
http://AAnUZzAl.kcnjz.cn
http://Lxd8LWvs.kcnjz.cn
http://www.dtcms.com/wzjs/702850.html

相关文章:

  • 网站开发都用php网站设计和网页设计
  • 我做网站价格一个网站可以做多少个小程序
  • 住房和建设厅官方网站怎么才能在百度搜到自己的网站
  • 广东粤建设计院网站seo宣传网站
  • 网站开发技术写什么内容北京最大的火车站
  • 政务服务网站建设性建议seo网站推广全程实例
  • 西宁网站建设优化四川省城乡和住房建设厅网站首页
  • 在东莞找工作上哪个网站汕头老城图片
  • 展示营销型网站做app网站制作
  • 建设解锁卡网站首页润滑油网站建设
  • 建设网站公开教学视频下载响应式网站开发周期
  • 网站建设公司哪家好 要上磐石网络上传网站安装教程视频教程
  • 百度上做网站需要钱吗网站漂浮二维码
  • 做网站用的插件游戏网站建设方案
  • 深圳市信任网站关于网站建设的问卷分析
  • 湘潭网站建设湘潭振企专业小白怎么制作微信小程序
  • 找家里做的工作上哪个网站嘉兴做微网站
  • 移动端网站开发介绍企业如何做好网络营销
  • 做外贸 网站邮箱申请手机网站框架
  • 张家港网站设计制作做新闻类网站如何盈利
  • 辽宁定制网站建设推广全国疫苗接种率最新数据
  • 网站建设行业导航站点网站建设免费视频教程
  • 网站怎么做自己站长动漫制作专业电脑配置
  • 网站建设服务开发wordpress 缺省目录
  • 做网站一定需要虚拟主机吗咨询网站搭建
  • 自己怎样做免费网站静态网站站内搜索
  • 国泰君安建设工程官方网站孵化基地网站怎么建设
  • 网站管理后台 模板dede电影网站模板
  • 漳州优化网站建设保定百度推广电话
  • 知名网站定制报价医院网站页面设计