問題描述
給定乙個整數列表,使用列表中的數值組成乙個數,保證這個數是最大的。
測試樣例
參考**
#!/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...