剑指 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
}
相关推荐
Tisfy1 分钟前
LeetCode 2095.删除链表的中间节点:两次遍历 / 一次遍历(快慢指针)
算法·leetcode·链表·题解·双指针
Irissgwe8 分钟前
AVL树详解
数据结构·c++·算法·二叉树·c·二叉搜索树·avl
凌波粒15 分钟前
LeetCode--131.分割回文串(回溯算法)
算法·leetcode·职场和发展
何以解忧,唯有..21 分钟前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..25 分钟前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang
北域码匠38 分钟前
奇偶归并排序:并行计算的排序利器
数据结构·算法·c#·排序算法
迷茫运维路40 分钟前
Casbin学习教程
golang·casbin
成都易yisdong1 小时前
上海某平面坐标系与CGCS2000坐标互转详解(含全域拟合点、实战案例、保密规范)
大数据·人工智能·算法
techdashen1 小时前
Go 语言仓库 Top 100 贡献者分析报告
开发语言·后端·golang
何以解忧,唯有..1 小时前
Go 语言变量命名规范详解
开发语言·后端·golang