最大和子序列。
在这之前,我这类题目都不是很懂。
今天突然想通了。
最大的问题是如何舍弃不符合的数据。
在if判断中,就能果断丢掉前面的一大串。
import java.io.*; import java.util.*; public class Solution { public static int maxSubArray(int[] nums) { int r; int len=nums.length; if(len==0) return 0; int i,j; i=0; int sum; sum=nums[0]; r=nums[0]; for(i=1;i<len;i++) { if(nums[i]>=nums[i]+sum) sum=nums[i]; else sum=sum+nums[i]; if(sum>r) r=sum; } return r; } public static void main(String[] args) { int[] a={-2,1,-3,4,-1,2,1,-5,4}; int[] b={1,-2,2,-3,3,-4}; System.out.println(maxSubArray(a)); System.out.println(maxSubArray(b)); } }
时间: 2024-11-07 11:30:09