package com.javarush.task.task05.task0532;
import java.io.*;
/*
Задача по алгоритмам
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine()); //вводим кол-во чисел
BufferedReader reader3 = new BufferedReader(new InputStreamReader(System.in));
int maximum = Integer.parseInt(reader3.readLine()); //вводим первое число и оно же максимум
if (N > 0) {
for (int i = 1; i <= N - 1; i++) { //делаем счетчик до N-1 ибо первое число уже введено
BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in)); //вводим числа
int number = Integer.parseInt(reader1.readLine());
if (number > maximum) maximum = number; //сравниваем с максимумом
}
System.out.println(maximum); //вывод
} else {
//System.out.println("Число должно быть больше 0!!!");
}
}
}
Задача вроде бы решена, но с костылями мне интересно как выполнить решение более оптимально чтоли.
Pavel Ziryukin
32 уровень
Нужна помощь.
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Artem Diachenko
8 ноября 2019, 12:11полезный
+1
АлександрExpert
8 ноября 2019, 12:06решение
Во первых не нужно создавать BufferedReader каждый раз. пользуйся первым.
Если уж добавляешь проверку на 0, то нужно первое из N чисел считывать после этой проверки т.к. Ты будешь ждать первого числа а его может не быть и сообщение что число должно быть больше 0 не выведется.
Не совсем понимаю о каких костылях ты говоришь. В цикле читаешь N чисел и сверяешь с максимумом.
+3
АлександрExpert
8 ноября 2019, 12:10
Есть вариант добавлять все в лист и использовать метод Collections.max(List) получить максимум, но это решение ничего общего с алгоритмами не имеет.
0
Artem Diachenko
8 ноября 2019, 12:14
добавлю ещё как вариант Arrays.sort(array), но это тоже был бы чит на 5 уровне
+1
АлександрExpert
8 ноября 2019, 12:17
Это не чит, это не правильно, задача на алгоритмы, тебе нужно предложить оптимальное решение. Тут ты занимаешь память, сортируешь - тратишь время, то же что и с коллекциями. В варианте первом что я описал, и как человек сделал, там мы считываем, что и так нам придется сделать и просто сравниваем, никуда числа не сохраняя, не перебирая их сколько-то раз. Добавляется лишь 2 переменных для максимума и для текущего числа.
Но как вариант да, так решить можно.
+1
Pavel Ziryukin
8 ноября 2019, 12:25
С массивами еще не работал, но примерно понятно. По поводу проверки хорошее замечание. Спасибо, товарищи.
0