最大交换

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。

  • 输入: 2736

  • 输出: 7236

  • 解释: 交换数字 2 和数字 7。

  • 输入: 9973

  • 输出: 9973

  • 解释: 不需要交换。-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var maximumSwap = function(num) {
var str = num + ""
var arr = []
var big = []
for (var i = 0; i < str.length; i++) {
arr.push(parseInt(str[i]))
big.push(parseInt(str[i]))
}
big.sort(function (a, b) {
return b-a
})
for (var i = 0; i < arr.length; i++) {
if (big[i] != arr[i]) {
for (var j = arr.length - 1; j >=0; j--) {
if (arr[j] == big[i]) {
arr[j] = arr[i]
arr[i] = big[i]
break;
}
}
break;
}
}
return parseInt(arr.join(""))
};