var maximumSwap = function (num) {
const digits = num.toString().split("")
let max = -1,
maxIdx = -1,
leftIdx = -1,
rightIdx = -1
for (let i = digits.length - 1; i >= 0; i--) {
const digit = Number(digits[i])
console.log(digit)
if (digit > max) {
console.log("digit bigger than max")
max = digit
maxIdx = i
} else if (digit < max) {
console.log("digit smaller than max")
leftIdx = i
rightIdx = maxIdx
}
}
if (leftIdx === -1) return num
;[digits[leftIdx], digits[rightIdx]] = [digits[rightIdx], digits[leftIdx]]
return Number(digits.join(""))
}
const maximumSwap = (num) => {
const nums = num.toString().split("")
let maxIdx = nums.length - 1,
left = -1,
right = nums.length - 1
for (let i = maxIdx; i >= 0; i--) {
const current = Number(nums[i])
const max = Number(nums[maxIdx])
if (current > max) {
maxIdx = i
} else if (current < max) {
right = maxIdx
left = i
}
}
if (left == -1) return num
;[nums[left], nums[right]] = [nums[right], nums[left]]
return Number(nums.join(""))
}