Re: [闲聊] 每日LeetCode

楼主: JIWP (JIWP)   2024-02-02 12:51:55
※ 引述《Rushia (みけねこ的鼻屎)》之铭言:
: https://leetcode.com/problems/sequential-digits/description
: 1291. Sequential Digits
: 一个Sequential Digits是一个数字满足所有位数都比前面的位数恰好多出一例如:
: 123 456,给你两个数字low 和 high,求介于 low~high的所有Sequential Digits
: 并排序之。
: 思路:
: 1.用dfs穷举所有的可能,不断的把尾数+1并append到原本的数字直到超出high,
: 因为测资范围为 10~10^9 所以可以从12开始穷举,然后排除掉尾数0的case。
思路:
先求出low和high分别是几位数
建立一个123456789的string
接着用两个循环去跑
外层是位数,内层是起点
从123456789这个string去取值
假设5位数,起点是2
那就是取34567
接着在把34567 atoi转成int
func sequentialDigits(low int, high int) []int {
l := len(strconv.Itoa(low))
h := len(strconv.Itoa(high))
ans := []int{}
s := "123456789"
for i := l; i <= h; i++ {
for j := 0; j <= 9-i; j++ {
num, _ := strconv.Atoi(s[j : j+i])
if high >= num && num >= low {
ans = append(ans, num)
}
}
}
return ans
}
作者: SecondRun (雨夜琴声)   2024-02-02 12:52:00
大师
作者: RinNoKareshi (立石凛的男友)   2024-02-02 12:54:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com