乙個整型陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和,求所有子陣列的和的最大值,例如輸入的陣列為1,-2,3,10,-4,7,2,-5,那麼最大的子陣列為3,10,-4,7,2,因此輸出為該子陣列的和18
int maxsum(int* a,int n)
else if (a[j]<0)
}if(tmpaj<0)
continueadd=false;
}if (!continueadd)
} if(tempsum>maxsum)
maxsum=tempsum;
} return maxsum;
}int main()
; int b=;
int temp=maxsum(b,3);
cout《實現過程雖然有點麻煩,但還是比較容易理解,犧牲了演算法複雜度
當若要求時間複雜度為o(n)。
int maxsum(int* a,int n)
}if(sum < 0)
}return max;
}void main()
;int b=;
int max = maxsum(a,8);
cout<}
演算法 求連續子陣列的最大和
題目描述 輸入乙個整數陣列,陣列中有乙個或者多個連續的字串,求所有字串的和的最大值。例如 輸入 1 2 3 10 4 7 2 5 輸出 18 解題思路1 動態規劃使用dp i 來儲存以i結尾的最大連續子陣列的和,只需要求出max dp i 即可得到最大連續子陣列的和。當dp i 1 第i個元素比第二...
求連續子陣列最大和
輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。例如輸入的陣列為 2,11,4,13,5,2 和最大的子陣列為11,4,13 因此輸出為該子陣列的和20。本題解法多種多樣,時間複雜度可以為 o n 3 o n 2 o ...
C C 連續子陣列的最大和
c 連續子陣列的最大和 問題分析 見到這個問題的第一反應可能是暴力求解,依次遍歷陣列的子陣列,但往往此方法的時間複雜度比較高,因此肯定不是最優解 隨意給出乙個陣列 array 可以看到如果從頭開始累加,那麼到第二項時,子陣列和就會程式設計負數,因此該和不可能成為可能解。因此可以得出一下結論和步驟 當...