[力扣題解] 417. 太平洋大西洋水流問題

題目:417. 太平洋大西洋水流問題

思路

代碼

(1) MyMothed

// 符合條件的點 : 既可以到達左或上邊界,也可以到達右或下邊界;
class Solution {
private:int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};vector<vector<int>> result; void dfs(vector<vector<int>>& heights, vector<vector<bool>>& visited, int x, int y){int i, j;int next_x, next_y;int m = heights.size(), n = heights[0].size();for(i = 0; i < 4; i++){next_x = x + dir[i][0];next_y = y + dir[i][1];if(next_x < 0 || next_x >= m || next_y < 0 || next_y >= n){continue;}if(!visited[next_x][next_y] && heights[next_x][next_y] <= heights[x][y]){   visited[next_x][next_y] = true;dfs(heights, visited, next_x, next_y);}}}public:vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {int i, j;int m = heights.size(), n = heights[0].size();vector<vector<bool>> visited_P(m, vector<bool>(n, false)); // Pacific Oceanvector<vector<bool>> visited_A(m, vector<bool>(n, false)); // Atlantic Oceanresult.clear();for(i = 0; i < m; i++){for(j = 0; j < n; j++){heights[i][j] = -heights[i][j];}}// Pacifici = 0;for(j = 0; j < n; j++){if(!visited_P[i][j]){visited_P[i][j] = true;dfs(heights, visited_P, i, j);}}j = 0;for(i = 0; i < m; i++){if(!visited_P[i][j]){visited_P[i][j] = true;dfs(heights, visited_P, i, j);}}// Atlantici = m-1;for(j = 0; j < n; j++){if(!visited_A[i][j]){visited_A[i][j] = true;dfs(heights, visited_A, i, j);}}j = n-1;for(i = 0; i < m; i++){if(!visited_A[i][j]){visited_A[i][j] = true;dfs(heights, visited_A, i, j);}}cout << "P" << endl;for(i = 0; i < m; i++){for(j = 0; j < n; j++){cout << visited_P[i][j] << ", ";}cout << endl;}cout << "A" << endl;for(i = 0; i < m; i++){for(j = 0; j < n; j++){cout << visited_A[i][j] << ", ";}cout << endl;}// 能重合的地方就是想要的點for(i = 0; i < m; i++){for(j = 0; j < n; j++){if(visited_P[i][j] && visited_A[i][j]){result.push_back({i, j});}}}return result;}
};

把海拔翻轉一下,分別統計從太平洋能流經的地盤和大西洋能流經的地盤,這兩個地盤的重合部分就是題目所求;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15304.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

safetensors介紹

1 介紹 safetensors 是 Huggingface 推出的一種可靠、易移植的機器學習模型存儲格式&#xff0c;用于安全地存儲 Tensor&#xff0c;而且速度很快&#xff08;零拷貝&#xff09;。 safetensors 格式結構&#xff1a; 8 bytes&#xff1a;一個無符號的整數&#xff0c;表示…

Dubbo源碼及總結

Springboot整合Dubbo啟動解析Bean定義 根據springboot啟動原理&#xff0c;會先把啟動類下的所有類先進行解析bean定義&#xff0c;所以要先EnableDubbo這個注解&#xff0c;再根據這個注解里面的注解&#xff0c;可以知道import的兩個類DubboComponentScanRegistrar和DubboCo…

輸入一串字符,輸入想要字符串前*的個數n,判斷字符串前*的個數是大于n還是小于n,如果大于n則刪除多余的*其它保持不變,如果小于n,則字符串也保持不變

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void fun(char* a, int n) {int i 0, j 0, m 0,b0,c0;char* p;p a;//第一步&#xff0c;判斷字母前面有多少個*while (p[i] *){j;}printf("字母前*的個數%d\n",j);//求總的字符串長度while (a[m] !…

【全開源】沃德商協會管理系統源碼(FastAdmin+ThinkPHP+Uniapp)

一款基于FastAdminThinkPHPUniapp開發的商協會系統&#xff0c;新一代數字化商協會運營管理系統&#xff0c;以“智慧化會員體系、智敏化內容運營、智能化活動構建”三大板塊為基點&#xff0c;實施功能全場景覆蓋&#xff0c;一站式解決商協會需求壁壘&#xff0c;有效快速建立…

護眼小貼士:學生如何正確使用臺燈?

隨著電子設備的普及和長時間的用眼&#xff0c;長時間盯著屏幕或學習&#xff0c;眼睛需要不斷調節焦距&#xff0c;導致眼睛肌肉疲勞&#xff0c;進而引發視力下降。這種現象在年輕一代甚至青少年中尤為普遍&#xff0c;這種疲勞狀態不僅影響眼睛的舒適度&#xff0c;還會導致…

linux配置防火墻端口

配置防火墻&#xff0c;添加或刪除端口&#xff0c;需要有root權限。 防火墻常用命令如下&#xff1a; 1.查看防火墻狀態&#xff1a; systemctl status firewalld active(running)&#xff1a;開啟狀態&#xff0c;正在運行中 inactive(dead)&#xff1a;關閉狀態&#xff…

十、OpenAI之視覺

視覺 學習怎樣使用視覺能力理解圖片 1. 介紹 GPT-4o和GPT-4 Turbo兩個模型都擁有視覺能力&#xff0c;這意味著模型可以接收圖片并回答關于圖片的問題。從歷史上看&#xff0c;語言模型系統被限制采用單一的文本輸入方式。 2. 快速開始 模型使用圖片主要有2種方式&#xff…

qml下拉條實現

qml下拉條實現 代碼結構 代碼結構 Rectangle里面嵌套一個Flickable&#xff0c;然后下面是一個Rectangle&#xff0c;作為滑動的區域&#xff0c;給最外層的Rectangle的y加一個屬性動畫。滑動區域寫好onPressed和Onrelease即可。 import QtQuick 2.15 import QtQuick.Control…

從《紅樓夢》的視角看大模型知識庫 RAG 服務的 Rerank 調優

背景介紹 在之前的文章 有道 QAnything 源碼解讀 中介紹了有道 RAG 的一個主要亮點在于對 Rerank 機制的重視。 從目前來看&#xff0c;Rerank 確實逐漸成為 RAG 的一個重要模塊&#xff0c;在這篇文章中就希望能講清楚為什么 RAG 服務需要 Rerank 機制&#xff0c;以及如何選…

Redisson-分布式鎖單Redis節點模式

Redisson-分布式鎖單Redis節點模式 為什么要用分布式鎖&#xff1f; 使用分布式鎖的主要目的是為了解決多線程或多進程并發訪問共享資源時可能出現的競爭條件和數據一致性問題。舉一些實際場?&#xff1a; 數據庫并發控制&#xff1a;在分布式系統中&#xff0c;多個節點同…

虛擬機上部署java微服務

在Windows服務器上安裝Ubuntu系統&#xff0c;先安裝虛擬機&#xff0c;然后再虛擬機上安裝Ubuntu系統 啟動虛擬機上的Ubuntu系統&#xff0c;然后安裝jdk。安裝好的Ubuntu系統是帶桌面版的&#xff0c;需要打開 “終端” 控制臺&#xff0c;通過命令行交互的方式部署程序&…

git 合并多個commit 使分支保持一次提交

1.控制臺輸入 git log 查看commit歷史 找到歷史提交sha 2.控制臺輸入 git rebase -i d0c5de8f7ca8e58fef347b36dd6b0f42f551cdb4 進入變基 3.輸入英文i進入VM輸入模式 4.保留第一行的pick 后面的pick改為s 5.esc退出輸入模式 6.輸入:wq保存退出 7.輸入英文i進入VM輸入模式…

從0開始實現一個博客系統 (SSM 實現)

相關技術 Spring Spring Boot Spring MVC MyBatis Html Css JS 實現功能 用戶注冊 - 密碼加鹽加密 (md5 加密)前后端用戶信息存儲 - 令牌技術用戶登錄 - (使用 攔截器 做登錄校驗)博客的增刪改查后端數據返回前端, 采用 SpringBoot 做統一功能處理和統一異常處理 數據…

軟考-程序員 知識點與部分真題梳理

軟考-程序員 知識點與部分真題梳理 參照《程序員教程》第五版劃分類別&#xff1b; 持續更新中… 計算機系統基礎知識 如何理解和處理浮點數的加減法運算 在計算機科學中&#xff0c;處理浮點數的表示和運算是基礎且關鍵的&#xff0c;尤其是在進行科學計算、圖形處理和數據分…

V2I(車與基礎設施)介紹

V2I&#xff08;車與基礎設施&#xff09;介紹 一、V2I技術概述 V2I&#xff08;Vehicle-to-Infrastructure&#xff09;技術&#xff0c;全稱汽車與基礎設施通訊&#xff0c;也被稱為信號燈系統。它通過無線通信技術&#xff0c;為車載智能交通運輸系統設立了專門的通信頻段…

【網絡】為什么udp協議報頭有長度字段,而tcp沒有

引言&#xff1a; 在網絡通信中&#xff0c;UDP&#xff08;用戶數據報協議&#xff09;和TCP&#xff08;傳輸控制協議&#xff09;是兩種常用的傳輸層協議。它們在設計和功能上有一些不同之處&#xff0c;其中之一就是報頭中的長度字段。本文將深入探討UDP和TCP協議中長度字…

SpringCloud Alibaba詳解:打造高可用的分布式系統

SpringCloud Alibaba是一個基于Spring Cloud的微服務開發框架&#xff0c;它集成了阿里巴巴的一系列中間件和工具&#xff0c;能夠快速構建高可用的分布式系統。在本文中&#xff0c;將詳細介紹如何使用SpringCloud Alibaba來打造高可用的分布式系統&#xff0c;并通過代碼案例…

第十一課,end關鍵字、簡單while循環嵌套、初識for循環

一&#xff0c;end關鍵字 end關鍵字用于在print輸出的內容后面聲明結束的字符&#xff0c;我們之前學過并且十分了解print是默認輸出內容之后跟著換行的&#xff0c;如果我們不希望換行而希望使用其它字符來代替換行&#xff0c;就可以用end關鍵字來實現 特殊的&#xff0c;en…

k8s筆記 | 高度調度

CronJob計劃任務 簡介&#xff1a;在k8s中周期性運行計劃任務&#xff0c;與linux中的crontab相同&#xff1b;注意點 CornJob執行的時間是controller-manager的時間&#xff0c;所以一定要確保controller-manager的時間是準確的&#xff0c;另外cornjob cron表達式 文章參…

xjoi題庫一級三段題解(c語言版)

浮點數 時間&#xff1a;0.2 空間&#xff1a;32M 題目描述&#xff1a; 小鸚鵡正在學習浮點數&#xff0c;你跟他說一個浮點數&#xff0c;他立刻就能學會。 輸入一個浮點數&#xff0c;輸出這個浮點數。 輸入格式&#xff1a; 輸入一個浮點數 輸出格式&#xff1a; 輸出一個…