日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

LeetCode - 695. Max Area of Island (Java)

發布時間:2025/5/22 java 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode - 695. Max Area of Island (Java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

R、C記錄矩陣行列

可以將鄰接矩陣轉為鄰接表來做,即要將二維數組轉換為一維數組:

將二維坐標轉化為一維坐標:

V = x * C + y

若將一維坐標轉化為二維坐標:

x = V / C

y = V % C

dfs返回以v頂點出發所在聯通分量的頂點數

1 import java.util.HashSet; 2 3 class Solution { 4 private int R, C; 5 private HashSet<Integer>[] G; 6 private boolean[] visited; 7 private int dirs[][] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; 8 9 public int maxAreaOfIsland(int[][] grid) { 10 11 if (grid == null) return 0; 12 R = grid.length; 13 if (R == 0) return 0; 14 C = grid[0].length; 15 if (C == 0) return 0; 16 17 G = constructGraph(grid); 18 visited = new boolean[G.length]; 19 20 int res = 0; 21 for (int v = 0; v < G.length; v++) { 22 int x = v / C, y = v % C; 23 if (!visited[v] && grid[x][y] == 1) 24 res = Math.max(res, dfs(v)); 25 } 26 return res; 27 } 28 29 private int dfs(int v) { 30 visited[v] = true; 31 int ret = 1; 32 for (int w : G[v]) 33 if (!visited[w]) 34 ret += dfs(w); 35 return ret; 36 } 37 38 public HashSet<Integer>[] constructGraph(int[][] grid) { 39 HashSet<Integer>[] g = new HashSet[R * C]; 40 for (int i = 0; i < g.length; i++) 41 g[i] = new HashSet<>(); 42 for (int v = 0; v < g.length; v++) { 43 int x = v / C, y = v % C; 44 if (grid[x][y] == 1) { 45 for (int d = 0; d < 4; d++) { 46 int nextX = x + dirs[d][0]; 47 int nextY = y + dirs[d][1]; 48 if (inArea(nextX, nextY) && grid[nextX][nextY] == 1) { 49 int next = nextX * C + nextY; 50 g[v].add(next); 51 g[next].add(v); 52 } 53 } 54 } 55 } 56 return g; 57 } 58 59 private boolean inArea(int x, int y) { 60 return x >= 0 && x < R && y >= 0 && y < C; 61 } 62 }

?

但實際上沒必要建鄰接表來做,可以直接操作二維數組,即使用floodfill的算法來完成,代碼如下:

1 import java.util.HashSet; 2 3 class Solution { 4 private int R, C; 5 private int[][] grid; 6 private boolean[][] visited; 7 private int dirs[][] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; 8 9 public int maxAreaOfIsland(int[][] grid) { 10 11 if (grid == null) return 0; 12 R = grid.length; 13 if (R == 0) return 0; 14 C = grid[0].length; 15 if (C == 0) return 0; 16 17 this.grid = grid; 18 visited = new boolean[R][C]; 19 int res = 0; 20 for (int x = 0; x < R; x++) { 21 for (int y = 0; y < C; y++) { 22 if (!visited[x][y] && grid[x][y] == 1) 23 res = Math.max(res, dfs(x, y)); 24 } 25 } 26 return res; 27 } 28 29 private int dfs(int x, int y) { 30 visited[x][y] = true; 31 int ret = 1; 32 33 for (int d = 0; d < 4; d++) { 34 int nextX = x + dirs[d][0]; 35 int nextY = y + dirs[d][1]; 36 if (inArea(nextX, nextY) && !visited[nextX][nextY] && grid[nextX][nextY] == 1) 37 ret += dfs(nextX, nextY); 38 } 39 return ret; 40 } 41 42 private boolean inArea(int x, int y) { 43 return x >= 0 && x < R && y >= 0 && y < C; 44 } 45 }

?

轉載于:https://www.cnblogs.com/AntonLiu/p/11289238.html

總結

以上是生活随笔為你收集整理的LeetCode - 695. Max Area of Island (Java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 91视频导航 | 成人av视屏| 91丨九色丨蝌蚪丨老版 | 色吧在线视频 | 泽村玲子在线 | 成人性生交大片免费 | 亚洲不卡网 | 超碰2021| 欧美自拍视频 | 国产精品免费看片 | 中文在线а√在线 | 最近中文字幕无免费 | 精品av一区二区 | 亚洲精品xxx | 中国黄色一级毛片 | 美女考逼 | 一级aaa毛片 | 91色啪 | 姐姐你真棒插曲快来救救我电影 | 亚洲爽爽爽 | 日韩国产91| 在线播放一区 | 久久久中文网 | 国产视频久久久久 | 成人av免费在线播放 | 色综合图片区 | 奇米色影视 | 久久久精品免费视频 | 国产精品99久久久久久一二区 | 熟女人妻在线视频 | 国产成人激情视频 | 草草福利视频 | 国产一区二区视频免费在线观看 | 亚洲色图第1页 | 18禁男女爽爽爽午夜网站免费 | 精品久久久在线观看 | 伊人伦理 | 亚洲国产欧美一区二区三区深喉 | 久久av网址| 一起操在线 | 天天躁日日躁狠狠躁免费麻豆 | 欧美抠逼视频 | a毛毛片 | 亚洲精品无码永久在线观看 | 一级黄色性生活视频 | 调教丰满的已婚少妇在线观看 | 综合影院| 亚洲美女一级片 | 久久久久久黄色 | 麻豆蜜桃av | 婷婷二区 | 日本精品中文字幕 | 不卡的av在线 | 精品视频一二三 | 99re在线视频播放 | 日本美女毛茸茸 | 91精品国产乱码在线观看 | 97久久精品 | 99re在线观看 | 在线观看视频www | 国产一级二级三级视频 | zzjj国产精品一区二区 | 男生插女生的网站 | 人人干人人看 | 亚洲福利电影 | 国产成人精品a视频 | 激情综合久久 | 中文字幕巨乳 | 男女插插插网站 | 国产精品一二三四五 | 欧美黄色免费在线观看 | 欧美成人精品在线视频 | 高h1v| 织田真子作品 | av日韩精品| 欧美日韩精品在线 | 亚洲专区欧美专区 | 网站久久| 亚洲国产精品视频在线观看 | 亚洲性激情 | 久久这里只有精品首页 | 亚洲欧美乱日韩乱国产 | 久久综合91| 屁屁影院一区二区三区 | 黑料视频在线观看 | 欧美色哟哟 | 免费古装一级淫片潘金莲 | 污视频在线免费观看 | www.欧美精品 | av在线观看地址 | 青青草五月天 | 久久综合色综合 | av午夜在线观看 | 欧美成人一二三区 | 永久免费看片在线播放 | 一区成人| 亚洲无码一区二区三区 | 天天躁日日躁狠狠很躁 |