给定一个数字n,找到比n具有相同数字的最大数字。例如。 231输出会是213?
最佳答案
您需要找到右侧具有较小数字的最后一个数字,并将该数字与其右侧较小数字中最大的数字交换。然后将交换后的数字右侧的所有数字按降序排列。
例如,给定 74125,4 是右侧具有较小数字的最后一个数字,2 是较小数字中最大的数字,因此通过交换 4 和 2 得到 72145,然后对所有数字进行排序即可找到答案2 右边的数字得到 72541。
附加说明:如果右侧的较小数字中的最大数字有多个副本,则与该数字的最左边的副本交换。例如,74122267 排序前变为 72142267,排序后变为 72764221。
关于algorithm - 找出比n中数字相同的最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28872566/