【每日一题】下一个更大的数值平衡数

news/2025/2/13 20:38:41/

Tag

【模拟】【取模运算】


题目来源

2048. 下一个更大的数值平衡数


解题思路

方法一:模拟

思路

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

于是从 n+1 开始枚举 x 直到 1224444,统计整数 x 所有数位出现的次数,判断 x 是否是数值平衡数即可。

算法

class Solution {
public:int nextBeautifulNumber(int n) {function<bool(int)> isBalance = [&](int x) -> bool {vector<int> cnts(10);while (x) {cnts[x %10] ++;x /= 10;}for (int d = 0; d < 10; ++d) {if (cnts[d] > 0 && cnts[d] != d) {return false;}}return true;};for (int i = n + 1; i <= 1224444; ++i) {if (isBalance(i)) {return i;}}return -1;}
};

复杂度分析

时间复杂度: O ( C − n ) O(C−n) O(Cn),其中 C=1224444 是可能为答案的最大的数值平衡数,取决于题目的数据范围。

空间复杂度: O ( 1 ) O(1) O(1)


http://www.ppmy.cn/news/1263291.html

相关文章

机器连接和工业边缘计算

软件应用和IT创新是制造业投资的主要驱动力。解决方案架构应围绕特定标准进行整合&#xff0c;并采用架构蓝图和最佳实践来满足最终用户的需求。此外&#xff0c;边缘计算&#xff08;Edge Computing&#xff09;也将在制造业中加速部署。 边缘计算是制造业的下一个变革驱动力。…

chmod 在Linux原生应用开发过程中的简单应用

chmod命令实质上是用来修改文件或目录的访问权限的命令。它通过修改文件或目录的访问控制列表&#xff08;Access Control List&#xff0c;ACL&#xff09;来实现权限的更改。 在Linux系统中&#xff0c;每个文件或目录都有一个表示其权限的数字值&#xff0c;即用三个八进制…

多核处理器的体系结构特点(啥是同构、异构?常见的多核有哪些?)

多核处理器的概念 多核处理器是一种集成了多个独立处理核心的中央处理器&#xff08;CPU&#xff09;。每个处理核心都是一个独立的、完整的处理器&#xff0c;可以执行指令、管理数据和执行计算任务。多核处理器的设计旨在提高处理器的整体性能&#xff0c;通过并行执行多个任…

微信小程序 - PC端选择ZIP文件

微信小程序 - PC端选择文件 分享代码片段场景分析解决思路附魔脚本chooseMediaZip 选择附魔后的ZIP文件相关方法测试方法 参考资料 分享代码片段 不想听废话的&#xff0c;直接看代码。 https://developers.weixin.qq.com/s/UL9aojmn7iNU 场景分析 如果你的微信小程序需要选…

JS加密/解密之HOOK实战2

上一篇文章介绍了HOOK常规的应用场景&#xff0c;这篇我们讲一下HOOK其他原生函数。又是一个新的其他思路 很多时候&#xff0c;当我们想要某些网站的请求参数的时候&#xff0c;因为某些加密导致了获取起来很复杂。 这时候hook就十分方便了 源代码 var _JSON_Parse JSON.…

Qt + MySQL(简单的增删改查)

Qt编译MySql插件教程 帮助&#xff1a; SQL Programming QSqlDatabase 静态函数 1.drivers()&#xff0c;得到可以使用的数据库驱动名字的集合 [static] QStringList QSqlDatabase::drivers();2.addDatabase()&#xff0c;添加一个数据库实例 [static] QSqlDatabase QSql…

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Android之Binder原理剖析

一&#xff1a;Binder的全面介绍 binder的出现 George Hoffman当时任Be公司的工程师&#xff0c;他启动了一个名为OpenBinder 的项目&#xff0c;在Be公司被ParmSource公司收购后&#xff0c; OpenBinder 由Dinnie Hackborn继续开发&#xff0c;后来成为管理ParmOS6 Cobalt O…