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