Python 中的最大數


假設有一個非負整數列表,我們需要對其進行排列,以便它們構成一個最大數。因此,如果陣列為 [10, 2],則最大數將為 210。

要解決此問題,我們將遵循以下步驟 -

  • 對數字進行排列,使最高有效位數較大,然後將它們放在前面,就像這樣的數字排列。然後,只需合併來自陣列中的數字。

示例

讓我們看以下實現方式來獲得更好的理解 -

 線上演示

from functools import cmp_to_key
class Solution(object):
   def largestNumber(self, nums):
      for i in range(len(nums)):
         nums[i] = str(nums[i])
      nums.sort(key=cmp_to_key(lambda x,y:self.compare(x,y)))
      return "".join(nums).lstrip("0") or "0"
   def compare(self,x,y):
      if x+y<y+x:
         return 1
      elif x+y == y+x:
         return 0
      else:
         return -1
ob1 = Solution()
print(ob1.largestNumber([3,30,5,6,8]))

輸入

[3,30,5,6,8]

輸出

"865330"

更新於: 2020 年 4 月 28 日

507 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.