要求:
輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o(n)
附:要求陣列從檔案讀取。如果輸入的陣列很大,並且有很多大的數字,就會產生比較大的結果(考慮一下數的溢位), 請保證你的程式能正常輸出。另外, 如果輸入檔案的引數有錯誤, 這個程式應該能正常退出, 並顯示相應的錯誤資訊。任何輸入錯誤都不能導致你的程式崩潰。
思路:1、分析可知,陣列中的第乙個資料為乙個子陣列,從第二個資料開始往後每乙個數有兩種情況:
1)屬於之前的子陣列(即當該子陣列之和加上這個數之後,大於當前數)。
2)新建乙個子陣列(即當之前的子陣列之和加上這個數之後,小於當前數)。
(個人認為可以判斷是否為正數即可)
2、遍歷一遍陣列,將所有可能是最大子陣列的子陣列的和存在相應子陣列的最後乙個位置。
3、遍歷得出最大的子陣列之和。
**:
package com.me.array;import j**a.util.scanner;
public class arraymax
}int ans=-100000;
for(i=0;i
返回乙個整數陣列中最大子陣列的和。
該題的意思是 如果乙個陣列為 1 5 3 19 5 3 第乙個數之後若是該數與前乙個數之和大於該數那麼將這個和替換概數 即5 1 5,5不變 而5 3 5 則將三替換為8以此類推 當乙個數與前乙個數之和再次小於這個數時,這個數為乙個下乙個的最小陣列,如5 3 19 11 5 5 則5為下乙個最小陣列...
返回乙個整數陣列中最大子陣列的和
1.題目 要求 要求程式必須能處理1000 個元素 每個元素是int32 型別的 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 2.設計思想。分別計算出所有子陣列的和,進行比較,找出最大子陣列...
返回乙個整數陣列中最大子陣列的和
1.設計思想 將一維迴圈陣列採用遍歷的方法來尋找最大子陣列,將含n個數的迴圈陣列依次從各個點斷開,產生n個n個陣列的單鏈陣列,再遍歷尋找最大子陣列。2.出現的問題 整形陣列的生成方式 3.可能的解決方案 整形陣列隨機生成,每個子陣列的資料個數也是隨機的。4.源 include using names...