#青训营笔记创作活动# 问题描述
小F被神秘力量带入了一个魔幻世界,这里危机四伏。为了在异世界中生存,小F需要找到安全区。异世界可以被表示为一个大小为n x m的二维数组,每个格子的值代表该位置的危险程度。
小F的能力值为X,当某个格子的危险程度小于等于X时,这个格子是安全的。如果多个安全的格子相邻(上下左右连通),它们可以构成一个安全区。你需要帮助小F计算出一共有多少个安全区。
测试样例
样例1:
输入:n = 3, m = 3, X = 4, a = [[2, 3, 3], [3, 3, 3], [3, 3, 3]]
输出:1
样例2:
输入:n = 2, m = 2, X = 5, a = [[6, 6], [6, 4]]
输出:1
样例3:
输入:n = 3, m = 3, X = 3, a = [[1, 2, 2], [2, 3, 3], [3, 4, 5]]
输出:1
题解:
一个原二维数组,新建一个visited数组记录是否经过,直接全部遍历,遇到安全值小于能力值且没经过的点就进入while循环。while循环通过队列实现安全区域的搜寻,通过maxnum记录安全区域的个数。
#青训营笔记创作活动#
1月29日 打卡day7
今天学习了规范代码的几个技巧,能够增强代码的可读性与美观性。
1、规范命名
比如,用英文“IDCardNo”代替拼音首字母“sfzh”表示的“身份证号码”。
2、规范代码格式
要求:
a.合适的空格
b.代码对齐,比如大括号要对齐
c.及时换行,一行不要写太多代码
3、抽取重复代码
当一份代码重复出现在程序的多处地方时,可以抽取成一个工具类,还可以抽成一个公共的父类。
4、尽量使用工具类
比如在对集合判空的时候,可以通过一些判断的工具类来写:
public void updatePersons(List<Person> persons) {
if (!CollectionUtils.isEmpty(persons)) {
}
}
1月29日 打卡day7
今天学习了规范代码的几个技巧,能够增强代码的可读性与美观性。
1、规范命名
比如,用英文“IDCardNo”代替拼音首字母“sfzh”表示的“身份证号码”。
2、规范代码格式
要求:
a.合适的空格
b.代码对齐,比如大括号要对齐
c.及时换行,一行不要写太多代码
3、抽取重复代码
当一份代码重复出现在程序的多处地方时,可以抽取成一个工具类,还可以抽成一个公共的父类。
4、尽量使用工具类
比如在对集合判空的时候,可以通过一些判断的工具类来写:
public void updatePersons(List<Person> persons) {
if (!CollectionUtils.isEmpty(persons)) {
}
}
展开
评论
点赞