Leetcode.2048 下一个更大的数值平衡数
创始人
2025-05-31 14:56:19

题目链接

Leetcode.2048 下一个更大的数值平衡数 Rating : 1734

题目描述

如果整数 x满足:对于每个数位 d,这个数位 恰好x中出现 d次。那么整数 x就是一个 数值平衡数

给你一个整数 n,请你返回 严格大于 n最小数值平衡数

示例 1:

输入:n = 1
输出:22
解释:
22 是一个数值平衡数,因为:
数字 2 出现 2 次
这也是严格大于 1 的最小数值平衡数。

示例 2:

输入:n = 1000
输出:1333
解释:
1333 是一个数值平衡数,因为:
数字 1 出现 1 次。
数字 3 出现 3 次。
这也是严格大于 1000 的最小数值平衡数。
注意,1022 不能作为本输入的答案,因为数字 0 的出现次数超过了 0 。

示例 3:

输入:n = 3000
输出:3133
解释:
3133 是一个数值平衡数,因为:
数字 1 出现 1 次。
-数字 3 出现 3 次。
这也是严格大于 3000 的最小数值平衡数。

提示:

  • 0<=n<=1060 <= n <= 10^60<=n<=106

解法:枚举

我们注意到 n的最大值是10610^6106。所以我们能取到的 最大的数值平衡数位1224444

我们从 n + 1开始枚举,第一个数值平衡数就是答案,最多取到 1224444

时间复杂度: O(n)O(n)O(n)

C++代码:

class Solution {
public:int nextBeautifulNumber(int n) {int ma = 1224444;int i = n + 1;for(;i <= ma;i++){int cnt[10] = {};int x = i;while(x){cnt[x % 10]++;x /= 10;}bool ok = true;for(int i = 0;i < 10;i++){if(cnt[i] == 0) continue;if(cnt[i] != i){ok = false;break;}}if(ok) break;}return i;}
};

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
重庆属于哪个省份的 重庆在中国... 重庆有多大,大到超出我们的想象,重庆作为我国4个直辖市之一,印象里应该跟京津沪面积差不多,可事实上却...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...