Giả sử Amal và Bimal đang chơi một trò chơi trong đó họ có một mảng A với một số con số. Luật chơi như sau
- Số thập phân sẽ luôn bắt đầu
- Trong mỗi lượt, một người chơi sẽ xóa phần tử tối đa khỏi mảng và tất cả các phần tử khác có ở bên phải phần tử đã xóa cũng sẽ bị xóa.
- Họ chơi xen kẽ
- Người chơi loại bỏ tất cả các yếu tố còn lại, người đó sẽ thắng trò chơi.
Vì vậy, nếu đầu vào giống như nums =[5,2,6,3,4], thì đầu ra sẽ là Amal vì lúc đầu Bimal sẽ loại bỏ [6,3,4] nên mảng sẽ là [5,2], thì Amal sẽ loại bỏ tất cả, vì vậy anh ấy sẽ là người chiến thắng.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- tối đa:=-1
- số lượng:=0
- đối với mỗi a trong nums, thực hiện
- nếu a> tối đa khác 0, thì
- count:=count + 1
- tối đa:=a
- nếu a> tối đa khác 0, thì
- nếu số lượng mod 2 giống 0, thì
- trả lại "Amal"
- trả về "Số thập phân"
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(nums): maximum = -1 count = 0 for a in nums: if a > maximum: count += 1 maximum = a if count % 2 == 0: return "Amal" return "Bimal" nums = [5,2,6,3,4] print(solve(nums))
Đầu vào
[5,2,6,3,4]
Đầu ra
Amal