python-012Đọc toàn bộ đề miễn phí

Cửa sổ trượt tìm dãy con cố định có tổng lớn nhất

Hệ thống phân tích giao dịch tại AI Empire Academy cần tìm khoảng thời gian cao điểm liên tục gồm k phút có tổng số lượng request gửi về máy chủ là lớn nhất.

PythonTrung bình20 phút

Tiến độ của tôi ở bài này

Điểm được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

sliding windowarraysoptimization

Kiến thức tiên quyết: sliding window concept, arrays.

Nội dung đề bài

Mục tiêu kiến thức

  • Cài đặt kỹ thuật Cửa sổ trượt cố định (Fixed-size Sliding Window) với độ phức tạp O(N).
  • Tránh tính lại tổng từ đầu ở mỗi bước trượt (O(1) cho mỗi dịch chuyển).
  • Xử lý mảng chứa toàn số âm bằng cách khởi tạo giá trị lớn nhất chính xác.

Mô tả bài toán

Hệ thống phân tích giao dịch tại AI Empire Academy cần tìm khoảng thời gian cao điểm liên tục gồm k phút có tổng số lượng request gửi về máy chủ là lớn nhất.

Hãy viết hàm max_sum_fixed_window(nums: list[int], k: int) -> int nhận vào danh sách số nguyên nums và độ dài cửa sổ k.

  • Trả về tổng lớn nhất của một dãy con liên tục gồm đúng k phần tử.
  • Nếu k ≤ 0 hoặc k > len(nums), hàm phải ném ra ngoại lệ ValueError("Do dai cua so k khong hop le").

Quy tắc cập nhật cuốn chiếu:

  • Tính tổng của k phần tử đầu tiên: S0 = ∑i=0k-1 nums[i].
  • Khi dịch cửa sổ sang phải một vị trí (từ i-1 sang i):

Smới = Scũ - nums[i - k] + nums[i]

  • Cập nhật giá trị tổng lớn nhất trong O(1).

Input

  • nums: Danh sách số nguyên.
  • k: Độ dài cửa sổ nguyên dương.

Output

Số nguyên int là tổng lớn nhất tìm được.

Ràng buộc

  • 1 ≤ len(nums) ≤ 105.
  • -106 ≤ nums[i] ≤ 106.
  • Thời gian chạy tối đa: 1000ms.
  • Giới hạn bộ nhớ: 256MB.

Ví dụ 1

Input

`nums = [2, 1, 5, 1, 3, 2], k = 3`

Output

`9`

Giải thích

Các cửa sổ độ dài 3 là:

  • [2, 1, 5] có tổng = 8
  • [1, 5, 1] có tổng = 7
  • [5, 1, 3] có tổng = 9 ⇒ Tổng lớn nhất là 9.
  • [1, 3, 2] có tổng = 6

Ví dụ 2

Input

`nums = [-2, -5, -1, -8], k = 2`

Output

`-6`

Giải thích

Dãy con [-5, -1] có tổng là -6, lớn nhất trong số các đoạn con độ dài 2.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.