剑指 Offer 12_II. 矩阵中的最大面积

剑指 Offer 12_II. 矩阵中的最大面积

题目描述

复制代码
[[".",".","*","*"],
[".","*","*","."],
["*",".","*","."]]

.代表海洋面积

*代表陆地面积

求连成片的最大陆地面积

解题思路:

该题是https://blog.csdn.net/sqc157400661/article/details/140838769的变形,解题思路类似。本题将不在赘述。

代码:

go 复制代码
package main

import "fmt"

var sum int
func main(){
	board := [][]string{
		{"*",".",".","*"},
		{"*","*",".","."},
		{"*",".","*","*"},
		{".","*","*","."},
	}
	fmt.Println(board)
	rows := len(board)
	cols := len(board[0])
	max := 0
	for i:=0; i < rows; i++  {
		for j := 0; j < cols; j++ {
			sum = 0
			tmp := dfsSum(&board,i,j)
			if tmp > max {
				max = sum
			}
		}
	}
	fmt.Println(max)
	fmt.Println(board)
}

func dfsSum(board *[][]string, i, j int) int {
	rows := len(*board)
	cols := len((*board)[0])
	if i<0 || j<0|| i>= rows || j >= cols || (*board)[i][j] != "*"{
		return 0
	}
	sum++
	(*board)[i][j] = "-"
	fmt.Println(*board)
	// 右边
	dfsSum(board,i,j+1)
	// 左边
	dfsSum(board,i,j-1)
	// 下面
	dfsSum(board,i+1,j)
	(*board)[i][j] = "*"
	return sum
}
相关推荐
橙子牛奶糖3 分钟前
Science | 本周最新文献速递
算法·gwas·生物信息学·单细胞测序
fei_sun5 分钟前
【总结】【数据结构】【OS】【计组】【计网】
数据结构
皮卡蛋炒饭.6 分钟前
背包问题Ⅱ与二分问题
算法
Code Slacker9 分钟前
LeetCode Hot100 —— 普通数组(面试纯背版)(五)
数据结构·c++·算法·leetcode·面试
sin_hielo12 分钟前
leetcode 3573(买卖股票问题,状态机dp)
数据结构·算法·leetcode
廋到被风吹走12 分钟前
【数据库】【Redis】数据结构全景图:命令、场景与避坑指南
数据结构·数据库·redis
松涛和鸣16 分钟前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
flashlight_hi25 分钟前
LeetCode 分类刷题:110. 平衡二叉树
javascript·算法·leetcode
式51626 分钟前
线性代数(九)线性相关性、基与维数
线性代数·算法·机器学习
啊阿狸不会拉杆27 分钟前
《数字图像处理》第7章:小波变换和其他图像变换
图像处理·人工智能·python·算法·机器学习·计算机视觉·数字图像处理