首页 > 其他分享 >Leedcode-岛屿的周长

Leedcode-岛屿的周长

时间:2024-05-10 13:44:59浏览次数:30  
标签:count 陆地 周长 int 岛屿 Leedcode grid 减去

自己写的:

class Solution:
    def islandPerimeter(self, grid: List[List[int]]) -> int:
        # 初始化周长计数器
        count = 0

        # 遍历二维网格的行
        for i in range(len(grid)):
            # 遍历二维网格的列
            for j in range(len(grid[i])):
                # 如果当前位置有陆地(值为1)
                if grid[i][j] == 1:
                    # 增加周长计数器4,因为陆地的四周都有边界
                    count += 4
                    # 检查上方是否有陆地,若有则减去一条边
                    if i - 1 >= 0 and grid[i - 1][j] == 1:
                        count -= 1
                    # 检查下方是否有陆地,若有则减去一条边
                    if i + 1 <= len(grid) - 1 and grid[i + 1][j] == 1:
                        count -= 1
                    # 检查左侧是否有陆地,若有则减去一条边
                    if j - 1 >= 0 and grid[i][j - 1] == 1:
                        count -= 1
                    # 检查右侧是否有陆地,若有则减去一条边
                    if j + 1 <= len(grid[0]) - 1 and grid[i][j + 1] == 1:
                        count -= 1
        # 返回最终周长计数
        return count

 

标签:count,陆地,周长,int,岛屿,Leedcode,grid,减去
From: https://www.cnblogs.com/yyyjw/p/18184123

相关文章

  • leedcode-重复的子字符串
    classSolution:defrepeatedSubstringPattern(self,s:str)->bool:#获取字符串的长度n=len(s)#初始化指针指向字符串的最后一个字符rptr=n-1#在指针到达字符串的第一个字符之前循环whilerptr>0:......
  • leedcode-分发饼干(贪心算法)
    自己写的,没有使用排序,会超出时间限制:classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:iflen(s)==0:return0count=0foriinrange(len(g)):mydict={}forjin......
  • leedcode-排列硬币
    自己写的:importmathclassSolution:defarrangeCoins(self,n:int)->int:#计算判别式discriminant=1+8*n#计算根root1=(-1+math.sqrt(discriminant))/2#返回地板取整后的根returnmath.floo......
  • leedcode-字符串中的单词数
    classSolution:defcountSegments(self,s:str)->int:n=len(s)#如果字符串长度为1且不是空格,则只有一个段ifn==1ands[0]!='':return1#如果字符串长度为1且是空格,则没有段ifn==1ands[0]==......
  • leedcode-
    自己写的:classSolution:defaddStrings(self,num1:str,num2:str)->str:#将两个字符串转换为整数num1_int=self.strToInt(num1)num2_int=self.strToInt(num2)#将两个整数相加,并将结果转换为字符串res=......
  • leedcode-第三大的数
    自己写的,用时很长fromtypingimportListclassSolution:defthirdMax(self,nums:List[int])->int:#计算输入列表的长度n=len(nums)#对列表进行冒泡排序,将较大的元素排在前面foriinrange(n-1):forjinra......
  • leedcode-
    自己写的fromtypingimportListclassSolution:deffizzBuzz(self,n:int)->List[str]:#初始化结果列表res=[]#FizzBuzz对应的字符串列表myli=["Fizz","Buzz","FizzBuzz"]#遍历1到......
  • leedcode-最长回文串
    自己写的:classSolution:deflongestPalindrome(self,s:str)->int:count=0#用于计算最长回文串的长度hash={}#用于统计每个字符出现的次数的字典#统计每个字符出现的次数foriins:ifnothash.get(i):......
  • leedcode-数字转换为十六进制数
    自己写的,先整数转二进制,再切片二进制转16进制classSolution:deftoHex(self,num:int)->str:#处理特殊情况:当num为0时,直接返回'0'ifnum==0:return'0'#定义十六进制字母的映射关系my_dict={10:......
  • leedcode-左叶子之和
    自己写的,使用了经典的广度优先搜素(BFS):classSolution:defsumOfLeftLeaves(self,root:Optional[TreeNode])->int:#初始化队列,将根节点放入队列中queue=[root]#初始化结果变量res=0#遍历队列,直到队列为空......