Untitled

 avatar
unknown
java
3 years ago
1.7 kB
5
Indexable
import java.util.Scanner;

public class Seven {
    public static int solution(int[] array, int n){
        if (n > array.length){
            return -1;
        }
        int max = 0;
        int sum = 0;
        int pass = 0;
        int resultStartIndex = 0;
        for (int i = 0; i < array.length; ++i) {
            if (pass < n){
                pass++;
                sum += array[i];
                if (pass == n - 1){
                    max = sum;
                }
                continue;
            }
            if (sum + array[i] - array[i - n + 1] >= max){
                resultStartIndex = i - n + 1;
                max = sum + array[i] - array[i - n + 1];
            }
            sum += array[i];
            sum -= array[i - n + 1];
            System.out.println("Максимальная сумма: " + max);
        }
        return resultStartIndex;

    }

    public static void main(String[] args) {
        System.out.print("Введите элементы массива через пробел: ");
        Scanner scanner = new Scanner(System.in);
        String arrString = scanner.nextLine();
        String[] arrStrings = arrString.split(" ");
        int[] array = new int[arrStrings.length];

        for (int i = 0; i < arrStrings.length; i++) array[i] = Integer.parseInt(arrStrings[i]);

        Scanner scan = new Scanner(System.in);
        System.out.print("Введите длину подпоследовательности: ");
        int n = scan.nextInt();

        System.out.println("Начальный индекс:" + solution(array, n));
    }
}
Editor is loading...