99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

內(nèi)地公司香港招人限定35歲以下,當?shù)豀R怒斥:這是一種劣質(zhì)行為。。。

0
分享至

專欄:50多種數(shù)據(jù)結(jié)構徹底征服

專欄:50多種經(jīng)典圖論算法全部掌握

在近在網(wǎng)上看到一個視頻,一HR在幫內(nèi)地一家非常大的手機品牌在香港招聘的時候,要求年齡限制在35歲以下,引起該HR的痛批。至于是哪家手機品牌,視頻中沒有透露,我們也不要隨便猜測。只是這個行為在內(nèi)地已經(jīng)司空見慣了,雖然批評的聲音一直存在,但大家好像都已經(jīng)習慣了。至于在香港應該還沒有這方面的先例,有網(wǎng)友評論道:“過分了。內(nèi)地大企業(yè)想把劣質(zhì)招聘文化帶到香港!必須拒絕!




--------------下面是今天的算法題--------------

來看下今天的算法題,這題是LeetCode的第417題:太平洋大西洋水流問題。

問題描述

來源:LeetCode第417題

難度:中等

有一個 m × n 的矩形島嶼,與 太平洋 和 大西洋 相鄰。“太平洋” 處于大陸的左邊界和上邊界,而 “大西洋” 處于大陸的右邊界和下邊界。

這個島被分割成一個由若干方形單元格組成的網(wǎng)格。給定一個 m x n 的整數(shù)矩陣 heights , heights[r][c] 表示坐標 (r, c) 上單元格 高于海平面的高度 。

島上雨水較多,如果相鄰單元格的高度小于或等于當前單元格的高度,雨水可以直接向北、南、東、西流向相鄰單元格。水可以從海洋附近的任何單元格流入海洋。

返回網(wǎng)格坐標 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] <= 10^5

問題分析

這題很繞,總結(jié)起來實際上就一句話: 哪些位置的水既能流到太平洋又能流到大西洋 。

直接計算比較麻煩,我們 先計算哪些位置的水可以流到太平洋,在計算哪些位置的水可以流到大西洋 ,最后在枚舉所有的位置,判斷哪些位置的水既能流到太平洋又能流到大西洋。

我們知道太平洋沿岸的水肯定是能流到太平洋的,水往低處流,這里我們 逆向思維 ,讓水往高處流。從太平洋沿岸的位置開始遍歷,如果下一個位置比當前位置高,說明下一個位置一定可以通過當前位置流到太平洋的,如下圖所示。同理大西洋也一樣。


JAVA:

public List
         
 > pacificAtlantic( int[][] heights) {     List > ans =  new ArrayList<>();      int n = heights.length, m = heights[ 0].length;      // 哪些位置可以到達太平洋      boolean[][] pacific =  new  boolean[n][m]; // 太平洋      // 哪些位置可以到達大西洋      boolean[][] atlantic =  new  boolean[n][m]; // 大西洋     Queue< int[]> pQueue =  new LinkedList<>();     Queue< int[]> aQueue =  new LinkedList<>();      // 四周邊界      for ( int i =  0; i < n; i++) {         pQueue.offer( new  int[]{i,  0});         aQueue.offer( new  int[]{i, m -  1});         pacific[i][ 0] =  true;         atlantic[i][m -  1] =  true;     }      for ( int i =  0; i < m; i++) {         pQueue.offer( new  int[]{ 0, i});         aQueue.offer( new  int[]{n -  1, i});         pacific[ 0][i] =  true;         atlantic[n -  1][i] =  true;     }     bfs(heights, m, n, pQueue, pacific); // 先查找能夠到達太平洋的坐標     bfs(heights, m, n, aQueue, atlantic); // 在查找能夠達到大西洋的坐標      for ( int i =  0; i < n; i++) {          for ( int j =  0; j < m; j++) {              // 哪些位置既可以到達太平洋也可以達到大西洋              if (pacific[i][j] && atlantic[i][j])                 ans.add(Arrays.asList(i, j));         }     }      return ans; } int[][] dir =  new  int[][]{{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; private void bfs(int[][] heights, int m, int n, Queue

  queue, boolean[][] visited) {      while (!queue.isEmpty()) {          int[] cur = queue.poll();          for ( int[] d : dir) {              int x = cur[ 0] + d[ 0];              int y = cur[ 1] + d[ 1];              // 水如果從位置heights[x][y]流到位置[cur[0]][cur[1]],那么              // heights[x][y]的高度必須要大于[cur[0]][cur[1]]。              if (x <  0 || x >= n || y <  0 || y >= m || visited[x][y]                     || heights[x][y] < heights[cur[ 0]][cur[ 1]])                  continue;             visited[x][y] =  true; // 標記可以到達             queue.offer( new  int[]{x, y});         }     } }

C++:

public:     vector

 > pacificAtlantic(vector

 > &heights) {         vector

 > ans;         int n = heights.size(), m = heights[0].size();         // 哪些位置可以到達太平洋         vector

 > pacific(n, vector

 (m, false));         // 哪些位置可以到達大西洋         vector

 > atlantic(n, vector

 (m, false));         queue int,  int>> pQueue;          queue int,  int>> aQueue;          // 四周邊界          for ( int i =  0; i < n; i++) {             pQueue.emplace(i,  0);             aQueue.emplace(i, m -  1);             pacific[i][ 0] =  true;             atlantic[i][m -  1] =  true;         }          for ( int i =  0; i < m; i++) {             pQueue.emplace( 0, i);             aQueue.emplace(n -  1, i);             pacific[ 0][i] =  true;             atlantic[n -  1][i] =  true;         }         bfs(heights, m, n, pQueue, pacific); // 先查找能夠到達太平洋的坐標         bfs(heights, m, n, aQueue, atlantic); // 在查找能夠達到大西洋的坐標          for ( int i =  0; i < n; i++) {              for ( int j =  0; j < m; j++) {                  // 哪些位置既可以到達太平洋也可以達到大西洋                  if (pacific[i][j] && atlantic[i][j])                     ans.push_back({i, j});             }         }          return ans;     }      int dir[ 4][ 2] = {{1,  0},                      {-1, 0},                      {0,  1},                      {0,  -1}};      void bfs(vector

 > &heights, int m, int n, queue int , int>> &q, vector

 > &visited) {          while (!q.empty()) {             pair< int,  int> cur = q.front();             q.pop();              for ( const  auto d: dir) {                  int x = cur.first + d[ 0];                  int y = cur.second + d[ 1];                  // 水如果從位置heights[x][y]流到位置[cur[0]][cur[1]],那么                  // heights[x][y]的高度必須要大于[cur[0]][cur[1]]。                  if (x <  0 || x >= n || y <  0 || y >= m || visited[x][y]                     || heights[x][y] < heights[cur.first][cur.second])                      continue;                 visited[x][y] =  true; // 標記可以到達                 q.emplace(x, y);             }         }     }









Python:

def pacificAtlantic(self, heights: List[List[int]]) -> List[List[int]]:     def bfs(q, visited):         while q:             cur = q.pop()             for d in dirs:                 x = cur[0] + d[0]                 y = cur[1] + d[1]                 # 水如果從位置heights[x][y]流到位置[cur[0]][cur[1]],那么heights[x][y] 的高度必須要大于[cur[0]][cur[1]]。                 if x < 0 or x >= n or y < 0 or y >= m or visited[x][y] or heights[x][y] < heights[cur[0]][cur[1]]:                     continue                 visited[x][y] = True  # 標記可以到達                 q.append([x, y])     dirs = [[1, 0], [-1, 0], [0, 1], [0, -1]]     ans = []     n, m = len(heights), len(heights[0])     # 哪些位置可以到達太平洋     pacific = [[False for _ in range(m)] for _ in range(n)]     # 哪些位置可以到達大西洋     atlantic = [[False for _ in range(m)] for _ in range(n)]     pQueue = []     aQueue = []     # 四周邊界     for i in range(n):         pQueue.append([i, 0])         aQueue.append([i, m - 1])         pacific[i][0] = True         atlantic[i][m - 1] = True     for i in range(m):         pQueue.append([0, i])         aQueue.append([n - 1, i])         pacific[0][i] = True         atlantic[n - 1][i] = True     bfs(pQueue, pacific)  # 先查找能夠到達太平洋的坐標     bfs(aQueue, atlantic)  # 在查找能夠達到大西洋的坐標     for i in range(n):         for j in range(m):             # 哪些位置既可以到達太平洋也可以達到大西洋             if pacific[i][j] and atlantic[i][j]:                 ans.append([i, j])     return ans

筆者簡介

博哥,真名:王一博,畢業(yè)十多年, 作者,專注于 數(shù)據(jù)結(jié)構和算法 的講解,在全球30多個算法網(wǎng)站中累計做題2000多道,在公眾號中寫算法題解800多題,對算法題有自己獨特的解題思路和解題技巧,喜歡的可以給個關注,也可以 下載我整理的1000多頁的PDF算法文檔 。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
交易嚴懲!爆料北京隊球迷大量投訴裁判,楊鳴提出建議獲得支持

交易嚴懲!爆料北京隊球迷大量投訴裁判,楊鳴提出建議獲得支持

宗介說體育
2025-05-10 13:56:29
“還沒畢業(yè),孫子先到了”,女子曬大學兒子的成果,網(wǎng)友羨慕不已

“還沒畢業(yè),孫子先到了”,女子曬大學兒子的成果,網(wǎng)友羨慕不已

妍妍教育日記
2025-05-09 18:42:22
四川省2025年養(yǎng)老金調(diào)整將至,2000元和1萬元增長錢數(shù)會是幾倍?

四川省2025年養(yǎng)老金調(diào)整將至,2000元和1萬元增長錢數(shù)會是幾倍?

暖心人社
2025-05-10 22:17:08
人民日報評小米汽車致歉:以發(fā)展的眼光看待發(fā)展中的問題

人民日報評小米汽車致歉:以發(fā)展的眼光看待發(fā)展中的問題

小人物看盡人間百態(tài)
2025-05-09 12:47:45
王晶曝劉德華隱秘情史!做賊式戀愛,一年只能見一回朱麗倩

王晶曝劉德華隱秘情史!做賊式戀愛,一年只能見一回朱麗倩

影視口碑榜
2025-05-10 17:00:45
邁阿密1-4,梅西有進球并獲全場最高分!球迷:虎帶著羊面對狼群

邁阿密1-4,梅西有進球并獲全場最高分!球迷:虎帶著羊面對狼群

老霍聊球
2025-05-11 08:07:04
從5登春晚到創(chuàng)業(yè)破產(chǎn),曾是“央視寵兒”的平安,如今怎樣了?

從5登春晚到創(chuàng)業(yè)破產(chǎn),曾是“央視寵兒”的平安,如今怎樣了?

東方不敗然多多
2025-05-06 01:44:26
徐欣瑩罷免案二階連署未達標,本人深夜發(fā)聲了

徐欣瑩罷免案二階連署未達標,本人深夜發(fā)聲了

新時光點滴
2025-05-11 07:40:04
最后的剛需:整條商業(yè)街倒閉六成,硬生生把餐飲老板逼成哲學家

最后的剛需:整條商業(yè)街倒閉六成,硬生生把餐飲老板逼成哲學家

道術意義
2025-05-05 07:12:51
王光美在大學時有多美?她家世顯赫氣質(zhì)出眾,還是“數(shù)學女王”

王光美在大學時有多美?她家世顯赫氣質(zhì)出眾,還是“數(shù)學女王”

揚平說史
2025-05-06 21:18:00
朱立倫被六國駐臺機構圍攻,遭蔣萬安背刺,關鍵時刻,洪秀柱發(fā)聲

朱立倫被六國駐臺機構圍攻,遭蔣萬安背刺,關鍵時刻,洪秀柱發(fā)聲

DS北風
2025-05-10 23:26:04
江蘇色貪徐其耀,家中養(yǎng)女子158名,被捕時:我控制不住

江蘇色貪徐其耀,家中養(yǎng)女子158名,被捕時:我控制不住

星宇共鳴
2025-05-09 18:39:33
20萬畢業(yè)生集體赴死,19萬人無—生還,今天必須讓國人知道他們!

20萬畢業(yè)生集體赴死,19萬人無—生還,今天必須讓國人知道他們!

坦然風云
2025-04-04 08:51:30
央視紅人洛桑之死,時隔25年后,搭檔博林坦白:他根本沒喝多少酒

央視紅人洛桑之死,時隔25年后,搭檔博林坦白:他根本沒喝多少酒

可樂談情感
2025-05-11 08:09:50
有情有義,廣州隊舊將張志雄在進球后展示廣州、銅梁龍隊徽

有情有義,廣州隊舊將張志雄在進球后展示廣州、銅梁龍隊徽

懂球帝
2025-05-10 22:45:10
七國集團外長發(fā)表聯(lián)合聲明 呼吁印巴雙方保持克制

七國集團外長發(fā)表聯(lián)合聲明 呼吁印巴雙方保持克制

新京報
2025-05-10 10:14:04
事發(fā)上海地鐵!5歲孩子被推搡著過閘機!入境游第一站竟卡在兒童友好…市人大代表坐不住了

事發(fā)上海地鐵!5歲孩子被推搡著過閘機!入境游第一站竟卡在兒童友好…市人大代表坐不住了

上觀新聞
2025-05-10 10:21:44
瑞銀:傳要求銀行家短程中國差旅,勿搭商務艙、 以減成本

瑞銀:傳要求銀行家短程中國差旅,勿搭商務艙、 以減成本

財通社
2025-05-10 17:10:21
中國人民銀行金融研究所所長丁志杰:美國24萬億美元對外凈債務是全球重大隱患

中國人民銀行金融研究所所長丁志杰:美國24萬億美元對外凈債務是全球重大隱患

財聯(lián)社
2025-05-10 19:15:13
中國再交6架殲-10,巴鐵再落實4架陣風,殲-10CE與陣風數(shù)量1:1

中國再交6架殲-10,巴鐵再落實4架陣風,殲-10CE與陣風數(shù)量1:1

Ck的蜜糖
2025-05-10 14:51:09
2025-05-11 09:56:50
數(shù)據(jù)結(jié)構和算法
數(shù)據(jù)結(jié)構和算法
專門介紹和寫算法題解的號
227文章數(shù) 2關注度
往期回顧 全部

頭條要聞

牛彈琴:印巴戲劇性地突然宣布停火 背后有五大原因

頭條要聞

牛彈琴:印巴戲劇性地突然宣布停火 背后有五大原因

體育要聞

這個老頭兒,仍然是你們的頭兒

娛樂要聞

李凱馨為錄音風波道歉,網(wǎng)友不接受

財經(jīng)要聞

重慶一家人把755億巨債留給了股民

科技要聞

首款折疊屏iPhone,有新消息!

汽車要聞

空間表現(xiàn)是優(yōu)勢 極狐T1將于5月底正式亮相發(fā)布

態(tài)度原創(chuàng)

親子
本地
時尚
公開課
軍事航空

親子要聞

我上網(wǎng)就是為了看這些好寶寶的

本地新聞

非遺里的河南|汴梁鳶舞千年韻!宋室風箏藏多少絕活

什么?這年頭藝術家的顏值居然卷成這樣了

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

印巴停火后互稱擊落對方無人機

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 宿松县| 潢川县| 水富县| 祥云县| 同江市| 阜新市| 普格县| 清远市| 贵南县| 双辽市| 克东县| 佳木斯市| 即墨市| 庆城县| 和政县| 云龙县| 申扎县| 西充县| 新野县| 盘山县| 彝良县| 嵊泗县| 望都县| 永昌县| 彭州市| 青州市| 沧州市| 石狮市| 时尚| 聂荣县| 长丰县| 保亭| 贵州省| 林西县| 民勤县| 鱼台县| 太仓市| 乃东县| 濉溪县| 宣威市| 农安县|