Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm tổng lớn nhất bằng cách xóa K số khỏi các đầu trong python

Giả sử chúng ta có một danh sách các số được gọi là num và một giá trị khác là k. Chúng ta phải tìm tổng số phần tử tối đa mà chúng ta có thể xóa, với điều kiện là chúng ta phải bật lên chính xác k lần, trong đó mỗi lần bật lên có thể từ bên trái hoặc bên phải.

Vì vậy, nếu đầu vào là nums =[2, 4, 5, 3, 1] k =2, thì đầu ra sẽ là 6, vì chúng ta có thể xóa 2 và 4.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • window:=tổng của tất cả các số từ chỉ số 0 đến k - 1
  • ans:=window
  • đối với tôi trong phạm vi từ 1 đến k, thực hiện
    • window:=window - nums [k - i]
    • window:=window + nums [-i]
    • ans:=tối đa ans và window
  • trả lại ans

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

 class Giải pháp:def giải (self, nums, k):window =sum (nums [:k]) ans =window for i in range (1, k + 1):window - =nums [k - i] window + =nums [-i] ans =max (ans, window) return ansob =Solution () nums =[2, 4, 5, 3, 1] k =2print (ob.solve (nums, k))  

Đầu vào

 [2, 4, 5, 3, 1], 2 

Đầu ra

 6