查詢陣列中子陣列最大和

2021-06-13 18:00:36 字數 671 閱讀 6587

宣告:以下題目**網路

/*題目:

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

陣列中連續的乙個或多個整數組成乙個子陣列,

每個子陣列都有乙個和。求所有子陣列的和的

最大值。要求時間複雜度為o(n)。

//2013/04/16

*/

#include#includeint maxsubarray(int data, int size,int *max) 

*max=-(1<<31); //int型別的最小值

for(i;i*max) //新的子陣列之和比原先的大

*max = sum; //更新最大值

else if( sum < 0) //分析下個子陣列的標誌

sum = 0; //清零下一輪開始

} return 1;

}int main()

; int max;

int data2=;

if( maxsubarray(data,8,&max))

printf("%d\n",max);

if( maxsubarray(data2,8,&max))

printf("%d\n",max);

getchar();

return 0;

}

陣列中子陣列的最大累乘積

陣列中子陣列的最大累乘積 給定乙個double型別的陣列arr,其中的元素可正 可負 可0,返回子陣列累乘的最大乘積。例如,arr 2.5,4,0,3,0.5,8,1 子陣列 3,0.5,8 累乘可以獲得最大的乘積12,所以返回12 要求 時間複雜度為o n o n o n 空間複雜度為o 1 o ...

子陣列最大和

看到的乙個面試題。有很多人已經寫過,在此記下,明天給出拓展。題目 輸入乙個整型陣列,陣列裡有正數也有負數,陣列中連續的乙個或多個整數組成為子陣列,求有最大和的子陣列。要求 時間複雜度o n 如下 include using namespace std int main void int size s...

子陣列最大和

設sum i 為以第i個元素結尾且和最大的連續子陣列。假設對於元素i,所有以它前面的元素結尾的子陣列的長度都已經求得,那麼以第i個元素結尾且和最大的連續子陣列實際上,要麼是以第i 1個元素結尾且和最大的連續子陣列加上這個元素,要麼是只包含第i個元素,即sum i max sum i 1 a i a ...