670.最大交换

最大交换

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

解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var maximumSwap = function (num) {
const digits = String(num).split('');
const last = {};
digits.forEach((d, i) => last[d] = i);
for (let i = 0; i < digits.length; i++) {
for (let d = 9; d > +digits[i]; d--) {
if (last[d] > i) {
[digits[i], digits[last[d]]] = [digits[last[d]], digits[i]];
return +digits.join('');
}
}
}
return num;
};

670.最大交换
https://leetcode.lz5z.com/670.maximum-swap/
作者
tickli
发布于
2024年11月7日
许可协议