หา max, min, second max, second min ในลิสต์โดย遍历ครั้งเดียว
ตัวอย่าง
Input: [12,30,2,34,90,67] Output: Max=90, 2nd Max=67, Min=2, 2nd Min=12
อัลกอริทึม
- เริ่มต้น max, second_max, min, second_min = อิลิเมนต์แรก
- วนลูปอัปเดตทั้ง 4 ค่า
โค้ดตัวอย่าง
def maxmin(A):
maxi = A[0]
secondsmax = A[0]
mini = A[0]
secondmini = A[0]
for item in A:
if item > maxi:
secondsmax = maxi
maxi = item
elif secondsmax != maxi and secondsmax < item:
secondsmax = item
if item < mini:
secondmini = mini
mini = item
elif secondmini != mini and secondmini > item:
secondmini = item
print("Largest:", maxi)
print("Second Largest:", secondsmax)
print("Smallest:", mini)
print("Second Smallest:", secondmini)
A = []
n = int(input("Enter size: "))
for _ in range(n):
A.append(int(input()))
maxmin(A)
ผลลัพธ์
Enter size: 6 Enter numbers: 12 30 2 34 90 67 Largest: 90 Second Largest: 67 Smallest: 2 Second Smallest: 12