Giả sử chúng ta có một danh sách các điểm cho số lượng người tham gia khác nhau. Chúng ta phải tìm điểm số á quân.
Vì vậy, nếu đầu vào là điểm =[5,8,2,6,8,5,8,7], thì đầu ra sẽ là 7 vì điểm người chiến thắng là 8 và điểm lớn thứ hai là 7.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- người chiến thắng:=-99999
- runner_up:=-99999
- đối với mỗi tôi trong điểm số, hãy thực hiện
- nếu tôi> người chiến thắng, thì
- người chiến thắng:=i
- runner_up:=winner
- ngược lại khi tôi
runner_up thì - runner_up:=i
- nếu tôi> người chiến thắng, thì
- return runner_up
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
def solve(scores):
winner = -99999
runner_up = -99999
for i in scores:
if (i > winner):
winner, runner_up = i, winner
elif (i < winner and i > runner_up):
runner_up = i
return runner_up
scores = [5,8,2,6,8,5,8,7]
print(solve(scores)) Đầu vào
[5,8,2,6,8,5,8,7]
Đầu ra
7