Danh sách

Mảng con ngắn nhất có tổng lớn hơn hoặc bằng Target

Trung bình
Hai Con Trỏ & Cửa Sổ Trượt (Two Pointers & Sliding Window) 1000ms 128MB

Cho một mảng các số nguyên dương nums và một số nguyên dương target. Hãy tìm độ dài nhỏ nhất của một mảng con liên tiếp có tổng các phần tử lớn hơn hoặc bằng target.

Nếu không tồn tại mảng con nào thỏa mãn, hãy trả về 0.

Ví dụ 1:

Input: target = 7, nums = [2, 3, 1, 2, 4, 3]
Output: 2
Giải thích: Mảng con [4, 3] có tổng là 7 và độ dài nhỏ nhất là 2.

Ví dụ 2:

Input: target = 4, nums = [1, 4, 4]
Output: 1
Định Dạng Đầu Vào (Input)
Dòng 1: Số nguyên target
Dòng 2: Mảng số nguyên dương nums
Định Dạng Đầu Ra (Output)
Một số nguyên duy nhất là độ dài nhỏ nhất (hoặc 0)
Ràng Buộc (Constraints)
  • 1 <= target <= 10^9
  • 1 <= nums.length <= 10^5
Ví Dụ Kiểm Thử Mẫu
Ví dụ 1:
Input:
7
[2, 3, 1, 2, 4, 3]
Output:
2
Giải thích: [4, 3] dài 2
Ví dụ 2:
Input:
4
[1, 4, 4]
Output:
1
Giải thích: [4] dài 1
Gợi ý được sắp xếp theo cấp độ tiến dần. Hãy mở từng gợi ý khi bạn thực sự cần thêm định hướng.

Kỹ thuật Cửa Sổ Trượt Co Giãn O(n)

Mở rộng con trỏ right và cộng dồn sum += nums[right]. Khi sum >= target, ghi nhận độ dài minLen = min(minLen, right - left + 1) rồi co con trỏ left lại.

Vui lòng đăng nhập

Đăng nhập tài khoản học viên để xem lịch sử nộp bài của bạn.

Đăng nhập
Ctrl + Enter: Chạy thử
Dữ liệu đầu vào (Input):
7 [2, 3, 1, 2, 4, 3]
Kết quả kỳ vọng (Expected Output):
2
Dữ liệu đầu vào (Input):
4 [1, 4, 4]
Kết quả kỳ vọng (Expected Output):
1
Nhập STDIN của bạn (Mỗi dòng một tham số):

Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.

Đang gửi mã và thực thi trên Sandbox Engine...
Nhấn Ctrl+Enter để chạy

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học