在JavaScript中最多使用一次交换来查找最大数目
我们需要编写一个以数字作为第一个也是唯一的参数的JavaScript函数。
我们函数的任务是在数字的任意两位之间最多执行一次交换,并产生最大可能的数字。但是,如果该数字已经是最大可能的数字,则应返回该数字本身。
例如-
如果输入号码是-
const num = 1625;
那么输出应该是-
const output = 6125;
我们交换了1和6,这是唯一的一次交换中收益最大的交换
示例
为此的代码将是-
const num = 1625;
const findMaximumDigit = (num, max = 0) => {
if(!num){
return max;
};
return findMaximumDigit(Math.floor(num / 10), Math.max(max, num %10));
};
const makeOneSwap = (num = 1) => {
let i = 0;
const max = findMaximumDigit(num);
const numStr = String(num);
const numArr = numStr.split('');
const maxIndex = numStr.lastIndexOf('' + max);
while(i < maxIndex){
if(+numStr[i] < max){
let temp = numArr[i];
numArr[i] = numArr[maxIndex];
numArr[maxIndex] = temp;
break;
};
};
return +(numArr.join(''));
};
console.log(makeOneSwap(num));输出结果控制台中的输出将是-
6125
热门推荐
10 盛夏的温馨祝福语简短
11 姨父生日祝福语简短精辟
12 简短新婚铺被子祝福语
13 鼓励孩子小考祝福语简短
14 横幅元旦祝福语大全简短
15 送菜的祝福语简短霸气
16 韩语贺卡祝福语简短版
17 宝宝100日简短祝福语
18 双十一祝福语大全简短