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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N62 - 1 Правила [Одномерные массивы] 62. Дан массив А. Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю.
Комментарии (11)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Airon
Уровень 34
30 сентября 2014, 23:45
Раздуваете из мухи слона…
public static int maxLength0(int... array) {
    int countMax = 0, count = 0;
    for(int x : array) {
        count = x == 0 ? ++count : 0;
        countMax = Math.max(count, countMax);
    }
    return countMax;
}
LastLost
Уровень 41
1 октября 2014, 10:59
ну не совсем, один проход и два сравнения слишком уныло :)
а тут так задвинул.
Voronblack
Уровень 17
30 сентября 2014, 23:10
Не очень изящно и немного громоздко, но работоспособно
public static int getMaxZeroSequence(int...arr)
    {
        int sequence = 0;
        int count = 0;

        if (arr.length == 0 )
            throw new IllegalArgumentException("Bad args");

        for(int i = 0; i < arr.length; i++)

            if (arr[i] == 0)
            {
                count = 1;

                while((i + 1!= arr.length) && (arr[i+1] == 0))
                {
                    count++;
                    i++;
                }

                sequence = sequence < count ? count : sequence;
            }

        return sequence;
    }
Docktor91
Уровень 40
30 сентября 2014, 23:24
public static int getMaxZeroSequence(int...arr)
{
    int res=0;
    int count=0;
    for (int x : arr)
    {
        count++;
        if (x != 0)
            count = 0;
        res = res < count ? count : res;
    }
    return res;
}
Vash_the_Stampede
Уровень 11
30 сентября 2014, 20:14
public static int solve(int[] arr) {
    int count = 0;
    int max = 0;
    for (int i : arr) {
        try {
            i /= i;
            count = 0;
        } catch (ArithmeticException e) {
            count++;
        } finally {
            max = Math.max(max, count);
        }
    }
    return max;
}
strEaM
Уровень 25
30 сентября 2014, 21:41
i /= i;

Что это за конструкция, как она работает?
terranum
Уровень 28
30 сентября 2014, 21:44
Думаю не стоит так писать, на собеседовании спросят что такое исключения? Для чего нужны исключения?
Что ответишь?
LastLost
Уровень 41
30 сентября 2014, 21:50
но интересно :)
Voronblack
Уровень 17
30 сентября 2014, 22:27
Она расписывается как
i = i/i;

Проверяется на деление на 0, и если i == 0, то счетчик увеличивается на 1.
Docktor91
Уровень 40
30 сентября 2014, 23:26
в плане оригинальности 10!
на практике думаю не очень…
LastLost
Уровень 41
30 сентября 2014, 23:34
Дык :)