如何组合数字数组,使得结果数在javaScript中尽可能大

Dra*_*vic 2 javascript arrays

我有一个正整数数组作为javascript中的输入.输出应该是输入中组合数组元素创建的最大可能整数.例子:

  1. 输入:[80,35,2,9,45,8]输出:988045352
  2. 输入:[509,7,49,21,527,2,742]输出:774252750949221

我想我知道可以使用的逻辑但是没有把它拉下来......

我猜两个方向相邻的两个数组元素应该在两个方向上连接,并且要比较这个值,哪一个更大,然后使用这个逻辑对所有数组元素进行排序.但是,我不能在javaScript中这样做.

谢谢.

R. *_*ini 6

做这个:

a = [80,35,2,9,45,8];

result = a.sort((x,y)=> ""+x+y < ""+y+x);
Run Code Online (Sandbox Code Playgroud)

结果:

[ 9, 8, 80, 45, 35, 2 ]
Run Code Online (Sandbox Code Playgroud)

而对于第二个,结果是:

[ 7, 742, 527, 509, 49, 2, 21 ]
Run Code Online (Sandbox Code Playgroud)

如果您想.join("")在排序后使用单个数字.