力扣算法学习计划打卡:第七天
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
}
力扣算法学习计划打卡:第七天相关推荐
- 力扣算法学习计划打卡:第五天
876链表的中间结点,19删除链表的倒数第N个节点 链表的中间结点 用两个指针 slow 与 fast 一起遍历链表.slow 一次走一步,fast 一次走两步.那么当 fast 到达链表的末尾时,s ...
- 力扣算法学习计划打卡:第六天
3无重复字符的最长子串,567 字符串的排列 无重复字符的最长子串 滑动窗口/双指针 func max(a,b int)int{if a<b{return b}return a }func le ...
- 力扣算法学习计划打卡:第八天
617.合并二叉树,116.填充每个节点的下一个右侧节点指针 合并二叉树 深度优先搜索 /*** Definition for a binary tree node.* type TreeNode s ...
- 力扣算法学习计划打卡:第二天
977有序数组的平方,排序算法复习,189轮转数组 https://leetcode-cn.com/study-plan/algorithms/?progress=lv45wk7 有序数组的平方 排序 ...
- 力扣算法学习计划打卡:第三天
283 移动零,167. 两数之和 II - 输入有序数组 移动零 不能复制数组,考虑计数0的个数,当前数组元素前存在counts个0元素,该数组元素向前移动counts个值,最后将counts个0放 ...
- 力扣算法学习计划打卡:第一天
704二分查找,278第一个错误版本,35搜索插入位置 二分查找 https://leetcode-cn.com/study-plan/algorithms/?progress=lv45wk7 顺序查 ...
- 力扣算法学习计划打卡:第四天
344反转字符串,557. 反转字符串中的单词 III 反转字符串 双指针,分别指向字符数组的头和尾,交换后,两个指针同时向中间移动 func reverseString(s []byte) {for ...
- 力扣算法学习(十四)
最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例 1: 输入:grid = ...
- 力扣算法学习(十二)
斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0,F(1) = 1 F(n) ...
最新文章
- GNU screen 命令
- ZOUNDRY TEST
- vs.net 2003 错误:无法生成项目输出组“内容文件来自stuschool(活动)”
- mannachar(马拉车)求最长回文子串
- 在树莓派上使用 PowerShell 调用 Azure 上的 .NET Core API 获取疫情数据
- 后台窗口截图_万人拥捧的截图软件来啦!让你的工作效率提升不止一倍!
- 开挂的印度裔00后:7岁“出道”教编程,12岁成为IBM荣誉顾问
- 你真的了解分层架构吗?——写给被PetShop毒害的朋友们 (转)
- 《统计学习方法》—— 逻辑斯谛回归 与 最大熵模型 的介绍以及详细推导
- java工程师有前途吗_java开发工程师的前途怎么样
- WIN10配置JAVA环境变量
- 千图成像python_Python---如何实现千图成像:初级篇(从图片爬取到图片合成)
- IntelliJ IDEA 激活 破解补丁
- 互联网晚报 | 05月16日 星期一 | 上海:6月1日至6月中下旬全面恢复正常生产生活;微软IE浏览器将于6月16日正式退役...
- Web 攻防之业务安全:账号安全案例总结.
- tableau app android,tableau 安卓
- 使用Python读取pdf文件
- win11系统苹果电脑如何安装 Windows11绕过tpm限制在苹果电脑进行安装的步骤方法
- MFRC522使用、设计心得及详细教程资料
- Implement int sqrt(int x).