剑指 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
}
相关推荐
小英雄大肚腩丶6 小时前
RabbitMQ消息队列
java·数据结构·spring boot·分布式·rabbitmq·java-rabbitmq
铮铭6 小时前
【论文阅读】世界模型发展脉络整理---Understanding World or Predicting Future? A Comprehensive Survey of World Models
论文阅读·人工智能·算法·机器人
灵智实验室7 小时前
PX4状态估计技术EKF2详解(四):EKF2 Output Predictor——从延迟估计到实时输出
算法·无人机·px 4
科研小白_7 小时前
【MATLAB点云处理基础】基于区域生长算法的桥墩面域点云分割
算法
Wy_编程7 小时前
Go语言中的指针
开发语言·后端·golang
paeamecium7 小时前
【PAT甲级真题】- Shuffling Machine (20)
c++·算法·pat考试·pat
m0_737539377 小时前
pod Scheduler调度
算法·贪心算法
lolo大魔王7 小时前
Go语言数据库操作之GORM框架从入门到生产实战(完整版)
开发语言·数据库·golang
此生决int7 小时前
算法从入门到精通——双指针
算法
普马萨特8 小时前
Uber H3:地理网格索引在空间数据分析中的应用
数据结构·算法