9月 7 2017 Online Judge►LeetCode [LeetCode] 670 - Maximum Swap 題意給定一個數字,輸出交換任兩數字後最大的值。 解法貪心。 從位數最高的數字開始換,若欲更換的數字相同則更換位數最低的。 程式1234567891011121314151617181920212223/** * @param {number} num * @return {number} */var maximumSwap = function(num) { let arr = (num + '').split(''); for ( let i = 0 ; i < arr.length ; i ++ ){ let maxIndex = i, maxNum = -1 ; for ( let j = i + 1 ; j < arr.length ; j ++ ){ if (arr[maxIndex] < arr[j] || ( maxIndex !== i && arr[maxIndex] === arr[j] ) ){ maxIndex = j; maxNum = arr[j]; } } if ( maxIndex !== i ){ let temp = arr[i]; arr[i] = arr[maxIndex]; arr[maxIndex] = temp; return parseInt(arr.join('')); } } return num;}; Newer [LeetCode] 654 - Maximum Binary Tree