2023-12-09每日一题
一、题目编号
2048. 下一个更大的数值平衡数
二、题目链接
点击跳转到题目位置
三、题目描述
如果整数 x 满足:对于每个数位 d ,这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。
给你一个整数 n ,请你返回 严格大于 n 的 最小数值平衡数 。
示例 1:
示例 2:
示例 3:
提示:
- 0 <= n <= 106
四、解题代码
class Solution {
public:
bool isBalance(int x) {
vector<int> count(10);
while (x > 0) {
count[x % 10]++;
x /= 10;
}
for (int d = 0; d < 10; ++d) {
if (count[d] > 0 && count[d] != d) {
return false;
}
}
return true;
}
int nextBeautifulNumber(int n) {
for (int i = n + 1; i <= 1224444; ++i) {
if (isBalance(i)) {
return i;
}
}
return -1;
}
};
五、解题思路
(1) 枚举