剑指 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
}
相关推荐
王锋(oxwangfeng)1 小时前
车道线拟合算法--自动驾驶
人工智能·算法·自动驾驶
weixin199701080161 小时前
安家 GO item_get - 获取安家详情数据接口对接全攻略:从入门到精通
java·大数据·python·golang
computersciencer1 小时前
一文快速理解线性回归的过程
算法·机器学习·回归·线性回归
VT.馒头1 小时前
【力扣】2627. 函数防抖
前端·javascript·算法·leetcode
想逃离铁厂的老铁1 小时前
Day41 >> 121、买卖股票的最佳时机 + 122.买卖股票的最佳时机II + 123.买卖股票的最佳时机III
算法·leetcode
夏鹏今天学习了吗1 小时前
【LeetCode热题100(79/100)】打家劫舍
算法·leetcode·职场和发展
Logan Lie1 小时前
Go语言接口(interface)深度详解
开发语言·数据库·golang
jimy11 小时前
消息队列Message Queue(MQ),队列链表(queue),消费者,生产者
数据结构·链表
小欣加油1 小时前
leetcode 面试题17.16 按摩师
数据结构·c++·算法·leetcode·动态规划
飞Link2 小时前
数据合成中的通用模型蒸馏、领域模型蒸馏和模型自我提升
算法·数据挖掘