1 Star 0 Fork 0

catyMap / AlgorithmNote

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readBinaryWatch.go 824 Bytes
一键复制 编辑 原始数据 按行查看 历史
dogemap 提交于 2021-06-23 00:05 . 更新题库
package main
import (
"fmt"
"strconv"
)
var Clocks []int = []int{60, 120, 240, 480, 1, 2, 4, 8, 16, 32}
func readBinaryWatch(turnedOn int) (res []string) {
var dfs func(idx int)
trace := 0
traceTimes := 0
miniLimits := 0
dfs = func(idx int) {
if traceTimes > turnedOn {
return
}
if traceTimes == turnedOn && trace < 720 && miniLimits < 60 {
h := strconv.Itoa(trace / 60)
m := strconv.Itoa(trace % 60)
if len(m) == 1 {
m = "0" + m
}
res = append(res, h + ":" + m)
return
}
for i := idx ; i < len(Clocks) ; i ++ {
trace += Clocks[i]
traceTimes ++
if i >= 4 {
miniLimits += Clocks[i]
}
dfs(i + 1)
trace -= Clocks[i]
traceTimes --
if i >= 4 {
miniLimits -= Clocks[i]
}
}
}
dfs(0)
return res
}
func main() {
fmt.Println(readBinaryWatch(8))
}
Go
1
https://gitee.com/dogemap/algorithm-note.git
git@gitee.com:dogemap/algorithm-note.git
dogemap
algorithm-note
AlgorithmNote
dc486f96f6c1

搜索帮助