給定乙個非負整數陣列,將它們排成乙個盡可能大的數,
例如,給定陣列[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這題比較簡...