輸入一個整型數組,數組里有正數,也有負數。求所有子數組的和的最大值


題目:

輸入一個整型數組,數組里有正數,也有負數。

數組中一個或連續的多個整數組成一個子數組。

求所有子數組的和的最大值。要求時間復雜度為 O(n)。

 

解答:

 1 public class Solution {
 2     public static void main(String[] args) {
 3         int[] arr = {1,-2,3,10,-4,7,2,-5};
 4         System.out.println(maxSub(arr));
 5     }
 6 
 7     private static int maxSub(int[] arr) {
 8 
 9         int max = 0;
10         
11         int n = arr.length;
12         int sum = 0;
13         for(int i = 0; i < n; i++) {
14             sum = sum + arr[i];
15             if(sum > max) {
16                 max = sum;
17             } else if(sum < 0) {
18                 sum = 0;
19             }
20         }
21 
22         return max;
23     }
24 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM