當前位置:
首頁 >
670. 最大交换
發布時間:2025/3/18
31
豆豆
給定一個非負整數,你至多可以交換一次數字中的任意兩位。返回你能得到的最大值。
示例 1 :
輸入: 2736
輸出: 7236
解釋: 交換數字2和數字7。
示例 2 :
輸入: 9973
輸出: 9973
解釋: 不需要交換。
思路 使得高位(靠左的)的值更大
s[i]與后面的最大值(若有多個最大值,則取位次最小的,靠右的),交換位置
2?*?@param?{number}?num
3?*?@return?{number}
4?*/
5var?maximumSwap?=?function(num)?{
6????var?s?=?num.toString()
7
8????for(var?i=0;?i<s.length;?i++)?{
9????????var?init?=?s[i]
10????????var?max?=?init
11????????for(var?j=i+1;?j<s.length;?j++)?{
12????????????if(s[j]?>?max)?max?=?s[j]
13????????}
14????????if(max?!==?init)?{
15????????????s?=?s.replace(init,?max)
16????????????s?=?reverseString(s)
17????????????s?=?s.replace(max,?init)?//?保證replace的是位次最小的
18????????????s?=?reverseString(s)
19????????????break
20????????}
21????}
22
23????return?Number(s)
24}
25
26function?reverseString(s){
27????return?s.split('').reverse().join('')
28}
轉載于:https://www.cnblogs.com/rencoo/p/9735197.html
總結
- 上一篇: PostgreSQL 10.1 手册_部
- 下一篇: 打通C/4HANA和S/4HANA的一个