[leetcode] 670. Maximum Swap

181 阅读1分钟

LeetCode 刷题打卡

Medium 670. Maximum Swap

image.png

/**
 * @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('')
}