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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N65 - 1 Правила [Одномерные массивы] 65. Найти длину самой длинной "пилообразной" (зубьями вверх) последовательности подряд идущих чисел Xk < Xk+1 > Xk+2 > ... > Xk+m < Xk+m+1 <...< Xn.
Комментарии (10)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Airon
Уровень 34
6 октября 2014, 13:37
public static int lengthSaw(int[] array) {
    int length = 0;
    int maxLength = 0;
    boolean isPrev = false;
    for (int i = 1; i < array.length - 1; i++) {
        if(array[i - 1] < array[i] && array[i] > array[i + 1]) {
            if(isPrev) {
                length += 2;
            } else {
                length = 3;
                isPrev = true;
            }
            i++;
        } else {
            isPrev = false;
            maxLength = Math.max(maxLength, length);
        }
    }
    return Math.max(maxLength, length);
}
Vash_the_Stampede
Уровень 11
5 октября 2014, 07:45
public static int solve(int[] arr) {
    int res = 0;
    int count = 0;

    for (int i = 1; i < arr.length - 1; i += 2) {
        if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
            count++;
        }
        else {
            res = Math.max(res, count);
            count = 0;
        }
    }
    res = Math.max(res, count);

    for (int i = 2; i < arr.length - 1; i += 2) {
        if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
            count++;
        }
        else {
            res = Math.max(res, count);
            count = 0;
        }
    }
    res = Math.max(res, count);

    return res * 2 + 1;
}
LastLost
Уровень 41
5 октября 2014, 09:34
Кмк будет здесь вылет за пределы массива.
Vash_the_Stampede
Уровень 11
5 октября 2014, 15:23
что значит кмк? и можно тест, или еще что, почему будет вылет?
LastLost
Уровень 41
5 октября 2014, 17:25
Май фолт, неправильно просчитал индексы. Можно минус нарисовать.
Docktor91
Уровень 40
5 октября 2014, 23:52
тоже не раз встречал, как мне кажется это значит...)
Docktor91
Уровень 40
5 октября 2014, 02:15
ну что никто не решится?
народу куча, а готовят на кухне 5-6 человек
Vash_the_Stampede
Уровень 11
3 октября 2014, 17:02
я думаю, условие такое должно интерпретироваться, как нахождение подмассива из подряд идущих элементов, так что каждый, кроме крайних, является локальным минимумом или локальным максимум. Еще, возможно, второй и предпоследний элемент должны быть именно локальными максимумами.
Docktor91
Уровень 40
3 октября 2014, 13:34
длина зубьев одинаковая?
LastLost
Уровень 41
3 октября 2014, 13:54
судя по условию — нет
Xk+1 > Xk+2 >… > Xk+m < Xk+m