lintcode練習 184 最大數

2021-08-22 11:55:21 字數 947 閱讀 5438

給出一組非負整數,重新排列他們的順序把他們組成乙個最大的整數。

最後的結果可能很大,所以我們返回乙個字串來代替這個整數。

您在真實的面試中是否遇到過這個題?  是

給出[1, 20, 23, 4, 8],返回組合最大的整數應為8423201

在 o(nlogn) 的時間複雜度內完成。

實現**:

注意:python3中內建函式沒有比較函式,所以需要匯入functools.cmp_to_key(func),

比較函式是可呼叫的,接受兩個引數,比較這兩個引數並根據他們的大小關係返回負值、零或正值中的某乙個。關鍵字函式也是可呼叫的,接受乙個引數,同時返回乙個可以用作排序關鍵字的值。

from functools import cmp_to_key

class solution:

"""@param nums: a list of non negative integers

@return: a string

"""def largestnumber(self, nums):

# write your code here

if not nums:

return ''

res = ''.join(sorted(map(str, nums), key = cmp_to_key(self.cmp), reverse = true))

#[0, 0] 會輸出 『00』,進行處理

if int(res) == 0:

return '0'

return res

def cmp(self, x, y):

if x + y > y + x:

return 1

elif x + y < y + x:

return -1

else:

return 0

lintcode練習 42 最大子陣列 II

給定乙個整數陣列,找出兩個 不重疊 子陣列使得它們的和最大。每個子陣列的數字在陣列中的位置應該是連續的。返回最大的和。給出陣列 1,3,1,2,1,2 這兩個子陣列分別為 1,3 和 2,1,2 或者 1,3,1,2 和 2 它們的最大和都是7 要求時間複雜度為 o n 子陣列最少包含乙個數 cla...

Lintcode 最大矩形

類似於蓄水池問題,首先創造乙個矩形,記錄每一列上true的數量。1,1,0,0,1 0,1,0,0,1 0,0,1,1,1 0,0,1,1,1 0,0,0,0,1 可轉換為 1,1,0,0,1 0,2,0,0,2 0,0,1,1,3 0,0,2,2,4 0,0,0,0,5 第一種方案 a i j m...

lintcode最大子陣列

最大子陣列 給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。注意事項 子陣列最少包含乙個數 您在真實的面試中是否遇到過這個題?yes 樣例給出陣列 2,2,3,4,1,2,1,5,3 符合要求的子陣列為 4,1,2,1 其最大和為6 挑戰 要求時間複雜度為o n 標籤 相關題目 分析 這...