每日总结3.6

求数组里最长子数组和问题

import java.util.List;
import java.util.Scanner;

public class PAR {
    public static void main(String[] args) {
        int max = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入最大长度");
        int number = scanner.nextInt();
        int sum1=0;
        int sum = 0;
        int sum2=0;
        if (number > 0) {
            int[] list = new int[number];
            for (int i = 0; i < number; i++) {
                list[i] = scanner.nextInt();
            }
            max = list[0];
            int flag = list[0];
//            for (int j = 1; j < number; j++) {
//                if (list[j] + list[j - 1] > list[j]) {
//                        list[j] = list[j] + list[j - 1];
//
//                    }
//                    if (max < list[j]) {
//                        max = list[j];
//                    }
//                }
//
//        }else if(number<=0){
//            System.out.println("输入有误");
//            System.exit(0);
//
//        }
sum=list[0];
            for (int j = 1; j < number; j++) {
                if (list[j] - list[j - 1] == 1) {

                    sum += list[j] ;

                } else {
                    if(sum2<sum) {
                        sum2 = sum;
                    }
                    sum=list[j];
                }
            }
        }
        System.out.println("最大数为" + sum2);
    }
}

核心就是通过数组里面相邻位置差值为1 来设计条件

posted @ 2023-03-09 19:47  cojames  阅读(11)  评论(0编辑  收藏  举报