1. 程式人生 > 實用技巧 >DQL-資料查詢語言

DQL-資料查詢語言

技術標籤:演算法演算法leetcode劍指Offer

故心故心故心故心小故衝啊


文章目錄


題目:輸入一個非負整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。

示例 1:

輸入: [10,2]
輸出: “102”
示例 2:

輸入: [3,30,34,5,9]
輸出: “3033459”

提示:

0 < nums.length <= 100
說明:

輸出結果可能非常大,所以你需要返回一個字串而不是整數
拼接起來的數字可能會有前導 0,最後結果不需要去掉前導 0

解法一:自定義新的排序規則

解釋:如果’a+b’<‘b+a’ 說明 a<b的
例如:a = 13 b = 3
‘133’<‘313’ ,所以13排在3的前面 自定義新的排序規則

//sort(可選函式--來自定義新的排序規則) 陣列排序方法
//如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。
//定義新的排序規則--使用函式
//比較函式應該具有兩個引數 a 和 b,其返回值如下
//若 a 小於 b,在排序後的陣列中 a 應該出現在 b 之前,則返回一個小於 0 的值。
//若 a 等於 b,則返回 0。 //若 a 大於 b,則返回一個大於 0 的值。 //join()是可以讓陣列的值拼接成字串,(括號為通過如何連線) //split()方法可以讓字串通過(啥)的方式分割成陣列 var minNumber = function(nums) { return nums.sort((a,b) => ('' + a + b) - ('' + b + a)).join(''); };

在這裡插入圖片描述