解題思路:這道題的關鍵就在於如何重新定義排序規則,對待排序的字串x
和y
,如果(x+y)
構成的字串小於(y+x)
構成的字串,自然x
應當排在y
前面,反之亦然
class
solution
:def
minnumber
(self, nums: list[
int])-
>
str:
defcmp
(x, y):if
(x+y)
>
(y+x)
:return
1elif
(x+y)
<
(y+x)
:return-1
else
:return
0import functools
nums =
[str
(x)for x in nums]
nums.sort(key=functools.cmp_to_key(
cmp)
)return
''.join(nums)
面試題45 把陣列排成最小的數(不會)
一 題目 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這3個數字能排成的最小數字321323。二 關鍵 三 解釋 1.解題思路 如果兩個數字m和n能後拼接成數字mn和nm。如果mn2.相加得到大數的解決思路 將數字轉換成字串。拼接...
面試題45 把陣列排成最小的數 Golang
我們這一屆也即將面臨著找工作的難題了,為了提公升程式設計功力,我經常上leetcode和牛客網刷題。認真反省之後發現這就是近幾天學習狀態越來越差的罪魁禍首。對於大多數普通人來講,秋招是一場持久戰,保持乙個健康的心態至關重要。因此學習中的正反饋真的很重要,寧願刷點簡單的題也不要一味求難。今天整了幾道l...
劍指 面試題45 把陣列排成最小的數
題目 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。0 nums.length 100 思路 1 自定義排序規則comp 然後呼叫內建排序函式。2 將int轉換成字串,再執行字串拼接操作,最後比較它們只用根據字串大小的比較規則比較即可,因為ab和ba位數...