首页 > 代码库 > 算法题:找出一个数组中相加值最大的连续序列元素

算法题:找出一个数组中相加值最大的连续序列元素

package arithmetic;/** * @author SHI * 求一个数组中相加值最大的连续序列元素 */public class MaxSequence {        public static void main(String[] args) {        int[] a=new int[]{-2,9,-3,4,-6,7,-6,4};        findBigSequence(a);    }        /**     * 思想: (1)计算出该数组的所有元素和,假设该值为最大     *       (2)从数组下标1到a.length-1依次求和,每循环求得一个值就与假设的最大值比较     * @param a     */    public static void findBigSequence(int[] a) {        int sum = 0;        for(int i=0;i<a.length;i++) {            sum += a[i];        }        int max = sum;        int start = 1;        int flag = 0;        int sum1 = 0;        //比较,满足条件就交换        for(;start<a.length;start++) {            sum1 += a[start];            if(max < sum1) {                max = sum1;                flag = start;            }        }        //打印找到的序列元素        for(int i = 0;i<flag;i++) {            System.out.print(a[i] + " ");        }    }}

算法题:找出一个数组中相加值最大的连续序列元素