Giả sử chúng ta có một mảng chứa các giá trị nguyên khác nhau và độ dài k cho trước. Chúng ta phải tìm ra mảng con lớn nhất từ mảng có độ dài đã cho. Một mảng con được cho là lớn hơn một mảng con khác, nếu subarray1 [i] ≠ subarry2 [i] và subarray1 [i]> subarry2 [i].
Vì vậy, nếu đầu vào là nums =[5, 3, 7, 9], k =2, thì đầu ra sẽ là [7, 9].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- start:=kích thước của nums - k
- max_element:=nums [start]
- max_index:=start
- trong khi bắt đầu> =0, thực hiện
- nếu nums [start]> max_element khác 0, thì
- max_element:=nums [start]
- max_index:=start
- trả về số [từ chỉ mục max_index đến max_index + k]
- nếu nums [start]> max_element khác 0, thì
- trả về số [từ chỉ mục max_index đến max_index + k]
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
def solve(nums, k): start = len(nums) - k max_element = nums[start] max_index = start while start >= 0: if nums[start] > max_element: max_element = nums[start] max_index = start start -= 1 return nums[max_index:max_index + k] print(solve([5, 3, 7, 9], 2))
Đầu vào
[5, 3, 7, 9], 2
Đầu ra
[7, 9]