第75天。
今天的题目是Maximum Swap:
Given a non-negative integer, you could swap two digits at most once to get the maximum valued number. Return the maximum valued number you could get.
Example 1: Input: 2736 Output: 7236 Explanation: Swap the number 2 and the number 7. Example 2: Input: 9973 Output: 9973 Explanation: No swap. Note: The given number is in the range [0, 10^8]
怎么说呢,写一个不优雅的解法还是挺简单的。
先把num
分解成多个digit
,然后尝试在找出最大的,如果最大的值和最高位不同,我们就交换,如果相同,我们就找出除去最高位的最大值,直到找不到能交换的,或者交换一次,我们就退出。
然后把digit
按照对应的次序还原即可:
然后是dicuss
中的解法,好像想法差不多。