leetcode 463. 岛屿的周长(Java版)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 463. 岛屿的周长(Java版)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
https://leetcode-cn.com/problems/island-perimeter/
題解
思路
需要三次遍歷
- 首先,總邊數(shù)=陸地個(gè)數(shù)*4
- 然后,橫向遍歷棋盤(pán),縱向遍歷棋盤(pán),如果有相鄰,則遍數(shù)-2
- 得到的就是外圍邊數(shù)
改進(jìn)
將三次遍歷簡(jiǎn)化成一次遍歷,注意邊界的判斷
public class Solution {public int islandPerimeter(int[][] grid) {int x = grid[0].length;int y = grid.length;int sum = 0;// 一次遍歷搞定全部for (int i = 0; i < y; i++) {for (int j = 0; j < x; j++) {// 總邊數(shù)=水個(gè)數(shù)*4if (grid[i][j] == 1) sum += 4;// 橫向if (j != x - 1 && grid[i][j] == 1 && grid[i][j + 1] == 1) sum -= 2;//縱向if (i != y - 1 && grid[i][j] == 1 && grid[i + 1][j] == 1) sum -= 2;}}return sum;} }總結(jié)
以上是生活随笔為你收集整理的leetcode 463. 岛屿的周长(Java版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: leetcode 461. 汉明距离(J
- 下一篇: leetcode 476. 数字的补数(