栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang力扣leetcode 1765.地图中的最高点

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang力扣leetcode 1765.地图中的最高点

1765.地图中的最高点
  • 1765.地图中的最高点
  • 题解
  • 代码

1765.地图中的最高点

1765.地图中的最高点

题解

看到题目立马想到BFS,模板水题

代码
package main

type pair struct {
	i, j int
}

var dis = []pair{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}

func highestPeak(isWater [][]int) [][]int {
	queue := make([]pair, 0)
	result := make([][]int, len(isWater))
	for i, val1 := range isWater {
		result[i] = make([]int, len(val1))
		for j, val2 := range val1 {
			if val2 == 0 {
				result[i][j] = -1
			} else {
				result[i][j] = 0
				queue = append(queue, pair{i, j})
			}
		}
	}
	for len(queue) > 0 {
		now := queue[0]
		queue = queue[1:]
		for _, step := range dis {
			nextI, nextJ := now.i+step.i, now.j+step.j
			if nextI >= 0 && nextI < len(isWater) &&
				nextJ >= 0 && nextJ < len(isWater[0]) && result[nextI][nextJ] == -1 {
				result[nextI][nextJ] = result[now.i][now.j] + 1
				queue = append(queue, pair{nextI, nextJ})
			}
		}
	}
	return result
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号