题目来源:
leetcode题目,网址:2048. 下一个更大的数值平衡数 - 力扣(LeetCode)
解题思路:
从 n+1 开始暴力遍历即可。
解题代码:
class Solution {
public:
bool isNumericallyBalanced(int n){
if(n==0){
return false;
}
vector<int> cnt(10,0);
while(n!=0){
cnt[n%10]++;
n=n/10;
}
for(int i=0;i<cnt.size();i++){
if(cnt[i]!=0 && cnt[i]!=i)
return false;
}
return true;
}
int nextBeautifulNumber(int n) {
long long res=n+1;
while(!isNumericallyBalanced(res)){
res++;
}
return res;
}
};
总结:
注意 0~10^6 是 n 的取值范围,不是结果的范围即可。
官方题解给出的两种解法是枚举和打表+二分。