1. 程式人生 > 其它 >記錄面試題,給定n個數,求這n個數組成的最大數

記錄面試題,給定n個數,求這n個數組成的最大數

技術標籤:演算法面試

給定N個數,求這n個數能組成的最大數

解題思路:要想組成最大數,則高位上的數字越大則這個數就越大,所以要在給定的數字中選擇最高位最大的數字往前面排 。方法如下:比如給定了兩個數是12和1,假設12為a,1為b,則有ab>ba,即a必須排b前面,同理假如有第三個數c,假設ab>ba , bc>cb,則ac>ca。
下面是程式碼的簡單實現:

//初始化比較函式
function compare(a,b){
  let A = Number(String(a) + String(b))
  let B = Number(String(b) + String
(a)) return B - A } var arr = [34,567,9,98] let maxNumber = arr.sort(compare).join('') console.log('排序後的陣列' + '' + arr) console.log('組成的最大數' + maxNumber)

輸出結果:
在這裡插入圖片描述