LeetCode 刷题打卡
Medium 670. Maximum Swap
/**
* @param {number} num
* @return {number}
*/
const maximumSwap = function(num) {
const digits = (num + '').split('').map(m => +m)
let index = 0
while (index < digits.length) {
const max = Math.max(...digits.slice(index))
const mIndex = digits.lastIndexOf(max)
if (index < mIndex && digits[index] < max) {
digits[mIndex] = digits[index]
digits[index] = max
return +digits.join('')
}
index++
}
return +digits.join('')
}