题目:
如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。
给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。
算法:
方法一:暴力枚举
每个数出现的次数等于数字本身,排列组合规则不好找是不是?那我不找了,暴力又如何?
func nextBeautifulNumber(n int) int {
n ++
Next:
for ; ; n ++ {
// 统计每个数出现的次数
cnt := make([]int, 10)
for x := n; x > 0; x = x / 10 {
cnt[x % 10] ++
}
for x := n; x > 0; x = x / 10 {
if cnt[x % 10] != x % 10 {
continue Next
}
}
return n
}
return 0
}