Ни в какую не хочет принимать решение. Всю голову уже сломал - как правильно сделать? Вывести на экран длину самой длинной последовательности повторяющихся чисел в списке.

package com.javarush.task.task08.task0812;

import java.io.*;
import java.util.ArrayList;
import java.io.BufferedReader;
/* 
Cамая длинная последовательность
*/
public class Solution {
    public static void main(String[] args) throws IOException {
        int count = 1;
        int max = 1;
        ArrayList<Integer> list = new ArrayList<Integer>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < 10; i++){
            String name = reader.readLine();
            int num = Integer.parseInt(name);
            list.add(num);
            System.out.println(list.get(i));
        }

        for (int i = 0; i < list.size(); i++){
            if (list.get(i) == list.get(i + 1)){
                count++;
                if (max < count) max = count;
            }
            else {
                count = 1;
            }
        }
        System.out.print(max);
    }
}

задан 06 Мар, 05:50

Xucn's gravatar image

Xucn
325
одобрено: 12%


привет

однако в 23 строке при последнем i = list.size() -1, вы выходите за размеры массива...

ссылка

опубликован 06 Мар, 06:22

Rediska's gravatar image

Rediska
2.4k6
одобрено: 45%

Таки спасибо огромное: я всё думал, почему зависает, а ларчик-то просто открывался

(06 Мар, 07:05) Xucn

Почему-то вопрос не закрывается как решённый, хотя верный ответ я отметил...

ссылка

опубликован 09 Мар, 02:22

Xucn's gravatar image

Xucn
325
одобрено: 12%

Сам не допер и костылей понаставил, но учитывая что уже 12 ночи и я весь день прохожу эти курсы, думаю, простительно.

public class Solution {
public static void main(String[] args) throws IOException {
    //напишите тут ваш код
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> list = new ArrayList<Integer>(); // первый массив содержит все введенные числа

    int count=1;
    int max=1;
    int shag=1;
    for (int i = 0; i < 10; i++){
        String name = reader.readLine();
        int num = Integer.parseInt(name);
        list.add(num);
        //System.out.println(list.get(i));
    }
    for (int i = 0; i < list.size(); i++){
            if(i==list.size()-1) {shag=0;}
            if (list.get(i) == list.get(i + shag))
            {
                    if(shag>0) {
                        count++;
                        if (max < count) max = count;
                    }
            }
            else {
                count = 1;
            }
    }
    System.out.print(max);
}

}

ссылка

опубликован 20 Мар, 17:26

Sergey_sergeev's gravatar image

Sergey_sergeev
21
одобрено: 0%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×20
×10

Задан: 06 Мар, 05:50

Просмотров: 275 раз

Отредактирован: 20 Мар, 17:26