670. Maximum Swap
https://leetcode.com/problems/maximum-swap/
整数内数字只让俩俩间swap最多一次,求能形成最大的数。要变大肯定是要把落在后面的大数和在前面的小数swap。观察例子98368可知对i (e.g. 3)找后面比它大的且是最大的数做替换。因为数字只可能是0~9,统计出每个数出现的最后位置然后遍历9~i做比较就能O(1)时间找到。
Last updated
Was this helpful?
https://leetcode.com/problems/maximum-swap/
整数内数字只让俩俩间swap最多一次,求能形成最大的数。要变大肯定是要把落在后面的大数和在前面的小数swap。观察例子98368可知对i (e.g. 3)找后面比它大的且是最大的数做替换。因为数字只可能是0~9,统计出每个数出现的最后位置然后遍历9~i做比较就能O(1)时间找到。
Last updated
Was this helpful?