宣告:以下題目**網路
/*題目:
輸入乙個整形陣列,陣列裡有正數也有負數。
陣列中連續的乙個或多個整數組成乙個子陣列,
每個子陣列都有乙個和。求所有子陣列的和的
最大值。要求時間複雜度為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 ...