微軟100題 3 求子陣列的最大和

2021-06-20 11:57:30 字數 519 閱讀 7019

#include using namespace std;

/*3.求子陣列的最大和

題目:輸入乙個整形陣列,陣列裡有正數也有負數。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值。要求時間複雜度為o(n)。

例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,

因此輸出為該子陣列的和18。

answer:

keep current sum, slide from left to right, when sum < 0, reset sum to 0.

*/int maxsubarray(int a, int size)

else if (sum < 0)

}return max;

}void main()

; cout

}

求子陣列的最大和 微軟面試100題 第三題

題目要求 輸入乙個整型陣列,陣列裡有整數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有個乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如 輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。參考資料 劍指o...

微軟面試100題之第三題 求子陣列的最大和

int maxsubarray int a,int size else if sum 0 return max 接下來我給出幾個時間複雜度不同的c 演算法,僅供參考。int maxsubsum const vector a return maxsum 可以看到此處用到了c 中的vector類,使用了...

微軟程式設計題之求子陣列的最大和

題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。很簡單 include ...