当前位置: 首页 > news >正文

【教3妹学编程-算法题】需要添加的硬币的最小数量

一夜暴富

3妹:2哥2哥,你有没有看到新闻, 有人中了2.2亿彩票大奖!
2哥 : 看到了,2.2亿啊, 一生一世也花不完。
3妹:为啥我就中不了呢,不开心呀不开心。
2哥 : 得了吧,你又不买彩票,还是脚踏实地的好~
3妹:小富靠勤,中富靠德,大富靠命, 可能是我命不好。
2哥 : 哎,想我口袋只有几个硬币,叮咚作响。
3妹:说到硬币, 我今天看到一个关硬币的题目,让我也来考考你吧~

考考你

题目:

如果整数 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 <= 10^6

思路:

思考

题目给一个整数 n ,要求返回严格大于 n 的最小数值平衡数,我们直接按照题目的要求进行模拟即可。

观察到 0<=n<=10^6 , 我们可能返回的数值平衡数最大是 1224444,这个范围可以在时间要求内找到答案。

我们依次枚举大于 n 的整数,统计所有数字的出现频数,判断是否是数值平衡数即可。

java代码:

class Solution {public int nextBeautifulNumber(int n) {for (int i = n + 1; i <= 1224444; ++i) {if (isBalance(i)) {return i;}}return -1;}private boolean isBalance(int x) {int[] count = new int[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;}
}

相关文章:

  • 如何搭建eureka-server
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计
  • 分布式ID服务实践
  • 数据库系统相关概念
  • windows如何解决端口冲突(实用篇)
  • 设计模式--建造者模式
  • 【开源】基于Vue.js的实验室耗材管理系统
  • 人大金仓V8R6进阶授权操作
  • 二叉树的最大深度(力扣
  • adaptive原理
  • Ubuntu环境下使用nginx实现强制下载静态资源
  • perf与火焰图-性能分析工具
  • 现代物流系统的分析与设计
  • [java/jdbc]插入数据时获取自增长主键的值
  • keepalived+lvs 对nginx做负载均衡和高可用
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • gcc介绍及安装
  • HashMap ConcurrentHashMap
  • java 多线程基础, 我觉得还是有必要看看的
  • mongodb--安装和初步使用教程
  • Redux 中间件分析
  • Swoft 源码剖析 - 代码自动更新机制
  • Theano - 导数
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 服务器从安装到部署全过程(二)
  • 基于Android乐音识别(2)
  • 判断客户端类型,Android,iOS,PC
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 使用权重正则化较少模型过拟合
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 移动端解决方案学习记录
  • 鱼骨图 - 如何绘制?
  • 终端用户监控:真实用户监控还是模拟监控?
  • nb
  • k8s使用glusterfs实现动态持久化存储
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (04)odoo视图操作
  • (1) caustics\
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (二十三)Flask之高频面试点
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET Core 项目指定SDK版本