給定乙個非負整數陣列,將它們排成乙個盡可能大的數

2021-10-09 04:20:42 字數 1240 閱讀 5466

給定乙個非負整數陣列,將它們排成乙個盡可能大的數,

例如,給定陣列[9, 81, 6, 35, 3, 30],那最後得到的最大數是981635330.

"""

問題的實質是,新建一種規則判斷兩個數字的大小,

即 從左往右 依次比較兩個數字的各位上的數,直到比到其中乙個數字的最後一位

"""## 獲取資料: 非負整數陣列

# x = input()

# x = list(map(int, eval(x)))

x =[9,

81,6,

35,3,

30]defnum_max

(num1, num2)

:"""使用新建的規則判斷兩個數字的大小"""

num1str, num2str =

str(num1)

,str

(num2)

n1, n2 =

len(num1str)

,len

(num2str)

for i in

range

(min

(n1, n2)):

if num1str[i]

> num2str[i]

:return num1

elif num1str[i]

< num2str[i]

:return num2

else

:if i ==

min(n1, n2)-1

:if n1 <= n2:

return num1

else

:return num2

x_order =

defget_in_order

(x):

"""調整原始陣列中元素的位置,使按照新規則從大到小"""

ifnot x:

return

max_i = x[0]

for i in

range(1

,len

(x))

: max_i = num_max(max_i, x[i]

)str

(max_i)

) x.remove(max_i)

get_in_order(x)

get_in_order(x)

print(''

.join(x_order)

)# 輸出拼接的最大數字,以字串的形式

給定乙個整數陣列,判斷是否存在重複元素。

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列 現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true 示例 2 輸入 1,2,3,4 輸出 false 示例 3 輸入 1,1,1,3,3,4,3,2,4,2 輸出 t...

演算法 給定乙個整數陣列,判斷是否存在重複元素

class solution return false 分析 演算法的核心是用了hashset不允許有重複元素的特性 且hashset中有方法add為當內部有重複元素時返回true 內部沒有重複元素時返回ture,利用這個性質只要遍歷一次陣列就能判斷,顯得比較方便 另乙個知識點是 return對於乙...

給定乙個整數陣列,您的解決方案應該找到最小的整數。

給定乙個整數陣列,您的解決方案應該找到最小的整數。例如 出於此kata的目的,您可以假設提供的陣列不為空。我的 def find smallest int arr output arr 0 for ar in arr if output ar output ar return output這題比較簡...