java编程:无序整数序列,求连续子串最大和问题

来源:互联网 发布:2017三季度gdp数据 编辑:程序博客网 时间:2024/06/06 03:33


题目:无序整数序列,求连续子串最大和问题。


例如:{-23  17 -7  11 -2 1 -34},子串为{17 ,-7,11},最大和为21。

例如输入:-23  17 -7  11 -2 1 -34

输出:21。

备注:网上笔试题,代码是参考网上别人的,具体出处找不到了,请谅解。摘抄记录下来方便日后学习。如果有问题尽请批评指正,希望可以和大神一起交流

java代码如下:

import java.util.Scanner;public class Main { public static void main(String[] args){Scanner sc=new Scanner(System.in);  //输入字符串类型,并请字符串转化为int类型的数组。 String[] nums = null;  nums = sc.nextLine().split(" ");   int num[]=new int[nums.length];  for(int i=0;i<num.length;i++){   num[i]=Integer.valueOf(nums[i]);  } int m=maxSubSum(num); System.out.println(m);  } public static int maxSubSum(int[] array){   int sum = 0, max = array[0];   for(int i = 0; i < array.length; i++){       sum += array[i];       if(sum > max)           max = sum;       if(sum < 0)  //如果 sum < 0, 将 sum 重新置 0           sum = 0;   }   return max;}}


原创粉丝点击