剑指 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
}
相关推荐
爱吃生蚝的于勒1 分钟前
【Linux】网络之http协议
linux·运维·服务器·网络·数据结构·c++·http
2501_945424803 分钟前
高性能计算资源调度
开发语言·c++·算法
2301_7765087211 分钟前
C++中的组合模式变体
开发语言·c++·算法
历程里程碑13 分钟前
44. TCP -23Linux聊天室实现命令符功能
java·linux·开发语言·数据结构·c++·排序算法·tcp
Frostnova丶14 分钟前
LeetCode 1594.矩阵中最大的非负乘积
算法·leetcode·矩阵
We་ct14 分钟前
LeetCode 162. 寻找峰值:二分高效求解
前端·算法·leetcode·typescript·二分·暴力
丶小鱼丶15 分钟前
数据结构和算法之【二叉树】
java·数据结构·算法
hanlin0315 分钟前
刷题笔记:力扣第38题-外观数列
算法·leetcode
2301_7938046917 分钟前
模板代码安全性增强
开发语言·c++·算法
测试_AI_一辰19 分钟前
Agent & RAG 测试工程笔记 13:RAG检索层原理拆解:从“看不懂”到手算召回过程
人工智能·笔记·功能测试·算法·ai·ai编程