733 图像渲染,695 岛屿的最大面积

图像渲染

广度优先搜索

var(dx = []int{1,0,-1,0}dy = []int{0,1,0,-1}
)
func floodFill(image [][]int, sr int, sc int, newColor int) [][]int {curcolor:=image[sr][sc]if curcolor==newColor{return image}n,m:=len(image),len(image[0])queue:=[][]int{}queue=append(queue,[]int{sr,sc})image[sr][sc]=newColorfor i:=0;i<len(queue);i++{cell:=queue[i]for j:=0;j<4;j++{mx,my:=cell[0]+dx[j],cell[1]+dy[j]if mx>=0&&mx<n&&my>=0&&my<m&&image[mx][my]==curcolor{queue=append(queue,[]int{mx,my})image[mx][my]=newColor}}}return image
}

深度优先搜索

var(dx = []int{1,0,-1,0}dy = []int{0,1,0,-1}
)
func dfs(image [][]int,x,y,curcolor,newColor int){if image[x][y]==curcolor{image[x][y]=newColorfor i:=0;i<4;i++{mx, my := x + dx[i], y + dy[i]if mx >= 0 && mx < len(image) && my >= 0 && my < len(image[0]) {dfs(image, mx, my, curcolor, newColor)}}}
}
func floodFill(image [][]int, sr int, sc int, newColor int) [][]int {curcolor:=image[sr][sc]if curcolor!=newColor{dfs(image,sr,sc,curcolor,newColor)}return image
}

来源:力扣(LeetCode)

岛屿的最大面积



深度优先搜索

var(dx=[]int{1,0,-1,0}dy=[]int{0,1,0,-1}
)
func dfs(grid [][]int,cur_i,cur_j int) int{if cur_i<0||cur_j<0||cur_i>=len(grid)||cur_j>=len(grid[0])||grid[cur_i][cur_j]!=1{return 0}grid[cur_i][cur_j]=0ans:=1for i:=0;i<4;i++{next_i:=cur_i+dx[i]next_j:=cur_j+dy[i]ans+=dfs(grid,next_i,next_j)}return ans
}
func maxAreaOfIsland(grid [][]int) int {ans:=0for i:=0;i<len(grid);i++{for j:=0;j<len(grid[0]);j++{function_ans:=dfs(grid,i,j)if ans<function_ans{ans=function_ans}}}return ans
}

力扣算法学习计划打卡:第七天相关推荐

  1. 力扣算法学习计划打卡:第五天

    876链表的中间结点,19删除链表的倒数第N个节点 链表的中间结点 用两个指针 slow 与 fast 一起遍历链表.slow 一次走一步,fast 一次走两步.那么当 fast 到达链表的末尾时,s ...

  2. 力扣算法学习计划打卡:第六天

    3无重复字符的最长子串,567 字符串的排列 无重复字符的最长子串 滑动窗口/双指针 func max(a,b int)int{if a<b{return b}return a }func le ...

  3. 力扣算法学习计划打卡:第八天

    617.合并二叉树,116.填充每个节点的下一个右侧节点指针 合并二叉树 深度优先搜索 /*** Definition for a binary tree node.* type TreeNode s ...

  4. 力扣算法学习计划打卡:第二天

    977有序数组的平方,排序算法复习,189轮转数组 https://leetcode-cn.com/study-plan/algorithms/?progress=lv45wk7 有序数组的平方 排序 ...

  5. 力扣算法学习计划打卡:第三天

    283 移动零,167. 两数之和 II - 输入有序数组 移动零 不能复制数组,考虑计数0的个数,当前数组元素前存在counts个0元素,该数组元素向前移动counts个值,最后将counts个0放 ...

  6. 力扣算法学习计划打卡:第一天

    704二分查找,278第一个错误版本,35搜索插入位置 二分查找 https://leetcode-cn.com/study-plan/algorithms/?progress=lv45wk7 顺序查 ...

  7. 力扣算法学习计划打卡:第四天

    344反转字符串,557. 反转字符串中的单词 III 反转字符串 双指针,分别指向字符数组的头和尾,交换后,两个指针同时向中间移动 func reverseString(s []byte) {for ...

  8. 力扣算法学习(十四)

    最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例 1: 输入:grid = ...

  9. 力扣算法学习(十二)

    斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0,F(1) = 1 F(n) ...

最新文章

  1. GNU screen 命令
  2. ZOUNDRY TEST
  3. vs.net 2003 错误:无法生成项目输出组“内容文件来自stuschool(活动)”
  4. mannachar(马拉车)求最长回文子串
  5. 在树莓派上使用 PowerShell 调用 Azure 上的 .NET Core API 获取疫情数据
  6. 后台窗口截图_万人拥捧的截图软件来啦!让你的工作效率提升不止一倍!
  7. 开挂的印度裔00后:7岁“出道”教编程,12岁成为IBM荣誉顾问
  8. 你真的了解分层架构吗?——写给被PetShop毒害的朋友们 (转)
  9. 《统计学习方法》—— 逻辑斯谛回归 与 最大熵模型 的介绍以及详细推导
  10. java工程师有前途吗_java开发工程师的前途怎么样
  11. WIN10配置JAVA环境变量
  12. 千图成像python_Python---如何实现千图成像:初级篇(从图片爬取到图片合成)
  13. IntelliJ IDEA 激活 破解补丁
  14. 互联网晚报 | 05月16日 星期一 | 上海:6月1日至6月中下旬全面恢复正常生产生活;微软IE浏览器将于6月16日正式退役...
  15. Web 攻防之业务安全:账号安全案例总结.
  16. tableau app android,tableau 安卓
  17. 使用Python读取pdf文件
  18. win11系统苹果电脑如何安装 Windows11绕过tpm限制在苹果电脑进行安装的步骤方法
  19. MFRC522使用、设计心得及详细教程资料
  20. Implement int sqrt(int x).

热门文章

  1. C型电磁阀连接器电磁阀插头,8mm针距
  2. redis 生产环境 谨慎执行的命令
  3. Bear and Three Balls
  4. C# 待用户确认对话框(确定/取消)
  5. 离散数学:聚会上的名人
  6. 基于51单片机智能停车场管理车位引导系统蓝牙手机通信proteus仿真原理图PCB
  7. 妈妈写给热恋中的女儿的信!建议女孩都要看!
  8. 建立个人网盘,乌版图安装updog
  9. CPC电商广告在复杂环境下需要考虑的要素
  10. MATLAB符号数学解非线性方程组 -- 眼球反射模型