Nikita_Kudinov
@Nikita_Kudinov
Программирую свои программулины

Нахождение количества промежутков убывания на Java?

Есть метод searchIntervals, но он почему-то работает через раз. Можете подсказать где ошибка?
Я два раза вызываю метод с такими данными:
  1. 3, 5, 6, 3, 2, 1, 5, 1, 8 - возвращает 3, хотя должно 2
  2. 3, 2, 2, 8, 3, 8, 9, 4, 7, 2, 9, 2 - возвращает 5, всё правильно
public static int searchIntervals(int[] nums) {
        int sum = 0;

        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] > nums[i + 1]) {
                sum++;
                if (i + 2 <= nums.length - 1) {
                    if (nums[i + 1] > nums[i + 2]) {
                        i++;
                    }
                }
            }
        }

        return sum;
    }
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
Nikita_Kudinov
@Nikita_Kudinov Автор вопроса
Программирую свои программулины
Решил вот так:
private static int searchIntervals(int[] nums) {
        int sum = 0;

        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] > nums[i + 1]) {
                sum++;
                int cntr = 0;
                for (int h = i+1; h < nums.length - 1 - i; h++) {
                    cntr++;
                    if (nums[h] > nums[h + 1]) continue;
                    else break;
                }
                i+=cntr;
            }
        }

        return sum;
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы