cuốn sách gpt4 ai đã làm

Mảng - Tìm phần tử lớn nhất (liên tiếp) có tổng nhỏ hơn một giá trị nhất định?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:11:31 28 4
mua khóa gpt4 Nike

Vì vậy, tôi có một mảng gồm tất cả các số tự nhiên dương. Tôi đã có một ngưỡng. Tôi phải tìm số lượng số tối đa (liên tiếp) có tổng nhỏ hơn một ngưỡng nhất định.

Ví dụ, 
IP: mảng = {3,1,2,1}
Ngưỡng=5

O/P: 3

Kích thước tối đa của mảng đầu vào có thể là 10^5.

Về cơ bản, tôi đã nghĩ ra một thuật toán đếm số phần tử trong một tập hợp con của mảng ban đầu có tổng nhỏ hơn một ngưỡng nhất định. Tuy nhiên, nó dẫn đến độ phức tạp O(N^2). Có ai có thể đề xuất thuật toán tốt hơn không? Tôi không tìm kiếm mã, chỉ tìm kiếm thuật toán/mã giả. Cảm ơn!

câu trả lời hay nhất

public static int maxSum(int[] mảng, int t){
int maxSum = 0;
int curSum = 0;
int bắt đầu = 0;
int kết thúc = 0;
while(bắt đầu < mảng.length){

if(curSum > maxSum && curSum <= t){
maxSum = curSum;
}
if(curSum <= t && end < array.length){
curSum += mảng[end];
kết thúc += 1;

}
khác{
curSum -= mảng[bắt đầu];
bắt đầu+= 1;
}
}
trả lại maxSum;
}

Độ phức tạp của mã này là O(2 * n), về cơ bản là O(n). Tôi không thể nghĩ ra bất kỳ cải tiến nào.

Về mảng - Tìm phần tử lớn nhất (liên tiếp) có tổng nhỏ hơn một giá trị nhất định? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/30840854/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress