用戶必須輸入 10 個整數,我需要在輸入的 10 個整數之間獲得第一個和第二個到最高的數字和第一個和第二個到最小的數字。我想先排序然后列印,但我需要使用不是陣列排序的東西。
提前致謝。
uj5u.com熱心網友回復:
嘗試這個
largest = second = -999;
for i in range(0, 10):
largest = max(largest, arr[i]);
for i in range(0, 10):
if (arr[i] != largest):
second = max(second, arr[i]);
if (second == -999):
print("There is no second "
"largest element");
else:
print("The second largest "
"element is \n", second);
uj5u.com熱心網友回復:
您可以通過簡單的方式實作這一點,如下面稍微借用Kadane 演算法的想法:
這里的想法是首先設定 min1、min2、max1、max2,然后迭代串列不斷更新這 4 個值。
data = [6, 10, 1, 7, 8, 2, 3, 4, 5, 9]
max1 = min(data[0], data[1])
max2 = max(data[0], data[1])
min1 = min(data[0], data[1])
min2 = max(data[0], data[1])
for i in range(2, len(data)):
if data[i] > max2:
max1 = max2
max2 = data[i]
if data[i] > max1:
max1 = data[i]
if data[i] < min1:
min2 = min1
min1 = data[i]
if min1 < data[i] < min2:
min2 = data[i]
print(max1, max2) // prints 9, 10
print(min1, min2) // prints 1, 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334942.html
