Cho một mảng số nguyên nums , tìm phân đoạn phụ liền kề (chứa ít nhất một số) có tổng lớn nhất và trả về tổng của nó.
Thí dụ:
Đầu vào : [- 2 , 1 , - 3 , 4 , - 1 , 2 , 1 , - 5 , 4 ]
Đầu ra : 6
Giải thích : [ 4 , - 1 , 2 , 1 ] có tổng lớn nhất = 6.
Theo sát:
Nếu bạn đã tìm ra giải pháp O ( n ), hãy thử mã hóa một giải pháp khác bằng cách sử dụng phương pháp phân chia và chinh phục, điều này tinh tế hơn.
giúp e với ạ… tẹo nữa nộp luôn mà làm theo cách của thầy hg dẫn thì không ra
nhập dữ liệu
for(i=1,i<=n,i++)
b[i]=a[i]
for(j=i,j>=i,j--)
if(b[i]<sum(a,j,i)
b[i]=sum(a,j,i)
......
.....
tìm phương trình lớn nhất trong bảng b in ra
int sum(int m[], int k, int h)
{
int i
int s=0
for (i=k, i<=h,i++)
s=s+m[1]
return s;
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?