組合成最大整數

2021-10-10 21:58:58 字數 1255 閱讀 1528

問題描述

給定乙個整數列表,使用列表中的數值組成乙個數,保證這個數是最大的。

測試樣例

參考**

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# ---------------------

# o(nlogn) time, o(n) space.

# ---------------------

from functools import cmp_to_key

# 使用貪心演算法將每乙個數值按照字串的形式排序,例如7需要在45前面,然後將排序後的字串連線

# 但是需要需要特殊處理的是例如雖然 『72』 > '7',但是實際上 772 > 727

# 因此排序的時候還需要考慮另外一點,兩兩組合之後的值要最大。

# 例如 72 和 7 可能的組合有 772 和 727,因為 772 > 727,所以 『7』 要排在 '72' 前面。

class

solution

:def

largestnum

(self, nums)

: strnums =

[str

(n)for n in

sorted

(nums, key=cmp_to_key(

lambda a, b:1if

str(a)

+str

(b)>

str(b)

+str

(a)else-1

))]return

''.join(strnums)

# test program

nums =[17

,7,2

,45,72

]result = solution(

).largestnum(nums)

print

(result)

# 77245217

python把陣列組合成最大數

定義函式max num,求陣列列表合成最大數 def max num lt 將列表的長度賦值給變數n m len lt 外層迴圈控制比較的次數 for i in range m 1 內層迴圈控制比較的次數,每輪會確定排在列表末尾的乙個值 for j in range m 1 i 每次將列表相鄰兩個元...

PostgreSQL之間斷資料組合成連續資料

在資料庫中查詢資料時,往往會存在著某一項資料的不連續,如下 可以看出,存在著連續的時間資料,但是當具體到某一類資料時,有時會因為各類原因導致資料缺失或者不連續。那麼,在這樣的情況下,如何解決這類問題?方法有很多 其中,最簡單但並不推薦的就是採用union語法插入某個缺失的資料 以上面的資料為例 un...

將多個對映組合成單個對映

多個字典或對映,希望在邏輯上將它們組合成單個對映以執行某些操作,例如查詢值或檢查鍵是否存在。假如現在有兩個字典物件a,b。a b 假如現在要檢查某一鍵是否在其中乙個字典物件中存在。首先檢查a,若a中不存在,則檢查b。可以使用collections模組的chainmap類,如下 from collec...