30/09/2018, 17:41
Bài toán tìm tổng lớn nhất của k phần tử liên tiếp trên mảng
Như tiêu đề anh em ai có ý tưởng về bài toán này cho mình xin với,nghĩ mãi không ra đc ý tưởng nào hợp lý.Toàn mấy ý tưởng vớ vẩn tào lao thôi.huhuhu
Cảm ơn mọi người đã đọc.
Bài liên quan
Gợi ý: k phần tử liên tiếp bắt đầu từ vị trí i đến i+k-1 nếu mảng có n phần tử thì có n-k+1 tập con k phần tử liên tiếp
tạo 1 mảng chứa toàn bộ tổng của k phần từ liên tiếp, số phần tử của mảng là n-k+1, chạy for thôi
Tưởng tưởng có 1 khung nhìn có độ dài K
giả sử mảng ban đầu là
a[0] a[1] a[2] ... a[n]
và
k=3
để tính tổng
k
phần tử liên tiếp khung nhìn sẽ bắt đầu từindex=0
Lần lượt làm như trên nhận thấy nếu tính được khung nhìn thứ i( gọi là S[i]) thì
S[i+1]=S[i]-a[i-k]+a[i]
Do đó mảng chứa k phần tử liên tiếp =
S[0] =a[0]+…a[k-1]
sau đó tính
max(S[i])
là dcMình chỉ nghĩ đc nhiu đây thôi.
Cho mình hỏi tại sao khi mình cout S[0] thì nó lại ra cái số âm linh tinh nhỉ?
Ý bạn muốn tính tổng phần tử liên tiếp?
thì dùng chính cái tổng liên tiếp đó so sánh với tổng liên tiếp khác.
cái nào lớn hơn thì return nó.
mình code php sơ sơ thế này:
> function find_max_sum_element($array_input){
Đào mộ à Giờ có khi chủ thớt tốt nghiệp rồi
cũng tốt mà bạn, biết đâu có ai đó cũng đang cần. bạn này ra trường lại có bạn khác vào trường mà
Tại sao lại là PHP Trong khi ở trên có thuật toán rõ ràng rồi
Với lại PHP thì cái server chạy à
Mà code cũng lạc đề
a ơi cho e hỏi trong int main lại đặt k = 3 v a hi
k = 3 là ví dụ thôi bạn.