leetcode做题笔记2048. 下一个更大的数值平衡数

如果整数  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 的最小数值平衡数。

思路一:逐位分析

c++解法

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. TCP协议是安全的吗?

    2023-12-15 00:12:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 00:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 00:12:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 00:12:02       20 阅读

热门阅读

  1. RESTful API,以及如何使用它构建 web 应用程序

    2023-12-15 00:12:02       31 阅读
  2. 【Python 千题 —— 基础篇】多行输出

    2023-12-15 00:12:02       42 阅读
  3. 如何在PHP中发送电子邮件?

    2023-12-15 00:12:02       47 阅读
  4. 深度解析企业私域流量的价值与构建策略

    2023-12-15 00:12:02       39 阅读
  5. 【数据库】@Transactional用法详解

    2023-12-15 00:12:02       43 阅读
  6. Mybatis-Plus同时实现分表和表内多租户模式

    2023-12-15 00:12:02       43 阅读
  7. xml.dom.minidom --- 最小化的 DOM 实现

    2023-12-15 00:12:02       36 阅读