关注
iOS Swift
import Foundation
/**
m行, n列
10,10
0,0,0,0,0,0,0,0,0,0
0,0,0,1,1,0,1,0,0,0
0,1,0,0,0,0,0,1,0,1
1,0,0,0,0,0,0,0,1,1
0,0,0,1,1,1,0,0,0,1
0,0,0,0,0,0,1,0,1,1
0,1,1,0,0,0,0,0,0,0
0,0,0,1,0,1,0,0,0,0
0,0,1,0,0,1,0,0,0,0
0,1,0,0,0,0,0,0,0,0
6,8
*/
class Node {
let value: Int
var check: Bool = false
init(_ value: Int) {
self.value = value
}
}
let first = readLine()!.split(separator: ",")
let (m, n) = (Int(first[0])!, Int(first[1])!)
var teamCount = 0
var count = 0
var maxCount = 0
var dict: [String: Node] = [:];
for row in 0..<m {
let line = readLine()!.split(separator: ",").map{ Int($0) }.compactMap { $0 }
for column in 0..<n {
let location = "\(row)\(column)"
dict[location] = Node(line[column])
}
}
func traverse(node: Node, row: Int, column: Int) {
count += 1
node.check = true
if column != 0, row != 0, let topleft = dict["\(row - 1)\(column - 1)"], topleft.value == 1, !topleft.check {
traverse(node: topleft, row: row - 1, column: column - 1)
}
if row != 0, let top = dict["\(row - 1)\(column)"], top.value == 1, !top.check {
traverse(node: top, row: row - 1, column: column)
}
if row != 0, column != n - 1, let topright = dict["\(row - 1)\(column + 1)"], topright.value == 1, !topright.check {
traverse(node: topright, row: row - 1, column: column + 1)
}
if column != 0, let left = dict["\(row)\(column - 1)"], left.value == 1, !left.check {
traverse(node: left, row: row, column: column - 1)
}
if column != n - 1, let right = dict["\(row)\(column + 1)"], right.value == 1, !right.check {
traverse(node: right, row: row, column: column + 1)
}
if row != m - 1, column != 0, let buttomleft = dict["\(row + 1)\(column - 1)"], buttomleft.value == 1, !buttomleft.check {
traverse(node: buttomleft, row: row + 1, column: column - 1)
}
if row != m - 1, let buttom = dict["\(row + 1)\(column)"], buttom.value == 1, !buttom.check {
traverse(node: buttom, row: row + 1, column: column)
}
if row != m - 1, column != 0, let buttomright = dict["\(row + 1)\(column + 1)"], buttomright.value == 1, !buttomright.check {
traverse(node: buttomright, row: row + 1, column: column + 1)
}
}
for row in 0..<m {
for column in 0..<n {
let location = "\(row)\(column)"
guard let node = dict[location], node.value == 1, !node.check else { continue }
teamCount += 1
maxCount = count > maxCount ? count : maxCount
count = 0
traverse(node: node, row: row, column: column)
}
}
maxCount = count > maxCount ? count : maxCount
print(teamCount, maxCount)
查看原帖
点赞 评论
相关推荐
查看26道真题和解析 点赞 评论 收藏
分享
hhijack:第一次见有人发文网暴自己的。你们武大真的有说法的,本以为是文科类专业闹鬼,没想到理工科也闹鬼。 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 27双非ue游戏客户端大失败经历6279
- 2... 作为一个老登,最烦应届生问的问题之一5217
- 3... 各位都是怎么出去实习的5032
- 4... 逆天老师,逆天领导,被我回怼一句话后破防了,要把我开除了4679
- 5... 理性讨论,卷实习算不算工贼行为?4380
- 6... 三段大厂,说下我见过的最低学历3135
- 7... 26博士求职竟然也难2850
- 8... 双非想拿腾讯offer,会被卡学历吗?2850
- 9... 【5.21更新】26春招毁约毁意向裁员黑名单公司,为找工作尽一份绵薄之力!2569
- 10... 5.18字节(中国广告与交易)75分钟2357
正在热议
更多
# 如何成为1个AI工程师? #
6811次浏览 313人参与
# 秋招拿一个offer可以躺平吗 #
277833次浏览 1412人参与
# 26届春招投递记录 #
41088次浏览 352人参与
# 一人分享一个skill #
34885次浏览 317人参与
# 27届实习投递记录 #
128278次浏览 1439人参与
# 机械人求职现状 #
44131次浏览 329人参与
# 你觉得第一学历对求职有影响吗? #
277010次浏览 1495人参与
# 我在大厂见过的最低学历 #
6674次浏览 69人参与
# 产品2023笔面经 #
89308次浏览 472人参与
# 第一次找实习,我建议__ #
87578次浏览 875人参与
# 秋招白月光 #
819555次浏览 5695人参与
# 虹软科技求职进展汇总 #
18570次浏览 141人参与
# 想给25届机械人的秋招建议 #
54391次浏览 264人参与
# 上班苦还是上学苦呢? #
350720次浏览 2088人参与
# 给26届的秋招建议 #
391334次浏览 4407人参与
# 要毕业了,再不说就来不及了 #
11646次浏览 172人参与
# HR面都在聊什么? #
48757次浏览 333人参与
# 机械人你觉得今年行情怎么样? #
9895次浏览 100人参与
# 找工作中的意难平 #
1106450次浏览 6532人参与
# 运营来爆料 #
106081次浏览 519人参与