Advertisement

解决连续子串的问题

阅读量:

若干相关问题

  1. 确定数组中具有最大和值的连续子序列;

  2. 确定数组中具有最小和值的连续子序列;

  3. 在循环结构的数组中确定和值最大的连续子序列;

  4. 在数组中识别出和值最接近零的连续子序列;

  5. 在数组中识别出和值最接近目标数值的连续子序列;

1.在数组中找出和最大的连续子串

例如,若给定的数组为A={1,3,-2,4,-5},则其对应的最大连续子序列和为6,具体计算方式为1+3+(-2)+4=6。

关键点在于,在处理至第i个元素时,需判断该元素前一个位置所对应的连续子序列和是否大于零。若该值大于零,则以第i个位置作为结尾的最大连续子序列和应为当前元素与前一位置的连续子序列和之和;反之,若该值小于或等于零,则以第i个位置作为结尾的最大连续子序列和即为当前元素本身。

复制代码
  //最大子串和

    
 	public int maxSubSum(int arr[]){
    
 		int len = arr.length;
    
 		if(len == 0){
    
 			return 0;
    
 		}
    
 		int sum = arr[0];
    
 		int max = arr[0];
    
 		for(int i=1;i<len;i++){
    

全部评论 (0)

还没有任何评论哟~