JavaRush /Java блог /Архив info.javarush /Кухня(); Задание N63
terranum
28 уровень
Milan

Кухня(); Задание N63

Статья из группы Архив info.javarush
Кухня(); Задание N63 - 1 Правила [Одномерные массивы] 63. Дан целочисленный массив А и число М. Найти такое подмножество подряд идущих элементов массива, сумма значений элементов, которых равна М.
Комментарии (16)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vash_the_Stampede Уровень 11
1 октября 2014
public static int[] solve(int[] arr, int m) {
    int sum = arr[0];
    int i = 0, j = 1;

    while (j < arr.length) {
        if (sum < m) {
            sum += arr[j++];
        }
        else if (sum > m) {
            sum -= arr[i++];
        }
        else {
            return Arrays.copyOfRange(arr, i, j);
        }
    }

    return null;
}
Airon Уровень 34
1 октября 2014
public static int[] getSeqM(int m, int... a) {
    int[] seq = new int[0];
    for (int i = 0; i < a.length - 1; i++) {
        int sumM = a[i];
        if(sumM >= m) continue;
        for (int j = i + 1; j < a.length; j++) {
            sumM += a[j];
            if(sumM == m) {
                seq = Arrays.copyOf(seq, seq.length + (j - i + 1));
                for (int k = 0; k < j - i + 1; k++) 
                    seq[seq.length - (j - i + 1) + k] = a[i + k];
                break;
            } else if(sumM > m) break;
        }
    }
    return seq;
}