2048. 下一个更大的数值平衡数 --力扣 --JAVA

题目

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

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

  • 0 <= n <= 106

解题思路

  1. 根据n的最大值可以得知最大n的最小数值平衡数;
  2. 从n+1开始遍历并判断是否为数值平衡树;

代码展示

java 复制代码
class Solution {
    public int nextBeautifulNumber(int n) {
        //0~10^6 最小平衡数的最大值为为1224444
        while (n < 1224444){
            n++;
            if(isBalance(n)){
                return n;
            }
        }
        return -1;
    }
    public boolean isBalance(int num){
        String str = String.valueOf(num);
        Map<Integer,Integer> data = new HashMap<>();
        for (int i = 0; i < str.length(); i++){
            int temp = str.charAt(i) - 48;
            data.put(temp, data.getOrDefault(temp, 0) + 1);
        }
        for (Integer i : data.keySet()){
            if(!Objects.equals(data.get(i), i)){
                return false;
            }
        }
        return true;
    }
}
相关推荐
大数据追光猿17 分钟前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!34 分钟前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉35 分钟前
力扣-回溯-46 全排列
数据结构·算法·leetcode
南宫生35 分钟前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
柠石榴40 分钟前
【练习】【回溯No.1】力扣 77. 组合
c++·算法·leetcode·回溯
Leuanghing40 分钟前
【Leetcode】11. 盛最多水的容器
python·算法·leetcode
qy发大财40 分钟前
加油站(力扣134)
算法·leetcode·职场和发展
王老师青少年编程41 分钟前
【GESP C++八级考试考点详细解读】
数据结构·c++·算法·gesp·csp·信奥赛
qy发大财42 分钟前
柠檬水找零(力扣860)
算法·leetcode·职场和发展
瓦力的狗腿子44 分钟前
Starlink卫星动力学系统仿真建模番外篇6-地球敏感器
算法·数学建模·simulink