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;}
};

相关内容

热门资讯

cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...