algorithm - 找出比n中数字相同的最大数

标签 algorithm math data-structures

给定一个数字n,找到比n具有相同数字的最大数字。例如。 231输出会是213?

最佳答案

您需要找到右侧具有较小数字的最后一个数字,并将该数字与其右侧较小数字中最大的数字交换。然后将交换后的数字右侧的所有数字按降序排列。

例如,给定 74125,4 是右侧具有较小数字的最后一个数字,2 是较小数字中最大的数字,因此通过交换 4 和 2 得到 72145,然后对所有数字进行排序即可找到答案2 右边的数字得到 72541。

附加说明:如果右侧的较小数字中的最大数字有多个副本,则与该数字的最左边的副本交换。例如,74122267 排序前变为 72142267,排序后变为 72764221。

关于algorithm - 找出比n中数字相同的最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28872566/

相关文章:

algorithm - 查找文件中的前 n 个数字

c++ - 功能/不可变数据结构在非垃圾收集上下文中是否仍然对并发有用?

go - 如何读取文本文件并基于这些值实现树?

algorithm - 当给定机器容量时,将给定重量的箱子从一个位置移动到另一个位置的最短时间

c++ - 为矩阵迭代器在+ =之间集成一个条件(可能对数学有挑战)

python - 在 Python 中,如何生成每列和每行只有一个元素的数组的排列?

java - 计算复杂度为 O(1) 的 N 以下数字的倍数之和?

c++ - 二进制搜索插入字符字符串。错误在哪里?

JavaScript 数学/循环动态创建行和列

math - 如何查找具有以下约束的二进制数的个数: