Минимакс

  • 7
  • Недоступна
На вступительном экзамене в ясли упорядоченному изоморфу Васеньке с планеты Линейный Хаос задали задачку на нахождение максимума и минимума в массиве. Как вы помните (или нет), на этой планете все только и заняты упорядочиванием и сравнением. Васенька справился. А вы?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (191)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Cypok Cypok14 уровень
13 June, 11:17
int x = Arrays.stream(inputArray).min().getAsInt(); int y = Arrays.stream(inputArray).max().getAsInt(); return new Pair<Integer, Integer>(x, y);
Михаил Клименко14 уровень, Краснодар
10 June, 06:16
Решил, что поймал валидатор за бороду - создал идентичный массив, отсортировал его и вернул первый и последний элемент массива. Но это оказалось не по-спортивному :) Пришлось использовать две переменные и цикл for()
Vyacheslav18 уровень, Ufa
28 May, 03:32
int[] copy = inputArray; Arrays.sort(copy); return new Pair<Integer, Integer>(copy[0], copy[copy.length - 1]); Валидатор не пропускает по причине того, что я "меняю inputArray". Мда..
A A15 уровень, Москва
1 June, 15:49
Так пропускает int[] copyArray = inputArray.clone();
Миша16 уровень, Сранопипирск
11 June, 10:12
Ну так естественно, ты ж его и меняешь. Ты просто добавил ссылку на тот же самый массивж
Евгений17 уровень, Екатеринбург
13 June, 14:31
A A спасибо за совет. Сделал так же, потом полез в комменты :)
Андрей12 уровень, Москва
24 May, 17:26
int min = inputArray[0];
for(){}
// ...
Ольга15 уровень, Санкт-Петербург
12 May, 11:26
Поясните, почему в классе Pair тип переменных x и y задан не Integer, а X и Y? public static class Pair<X, Y> { public X x; public Y y; ...
Kirill Krasilnikov18 уровень, Санкт-Петербург
14 May, 08:11
X и Y будут заменены типами, указанные в Pair<Integer, Integer>
Alexander Chevtaev20 уровень, Bogorodsk
17 May, 06:16
я так понимаю, что конструкция public static class Pair<X, Y> { public X x; public Y y; позволит создавать объекты класса Pair у которых будут разные типы x и y т.е. в одном случае объект obj1 будет иметь String x, int y, в другом случае у объекта obj2 char x, String y
Ольга15 уровень, Санкт-Петербург
18 May, 21:44
Спасибо, идею поняла
Ольга15 уровень, Санкт-Петербург
19 May, 19:49
вот нашла статью на тему Genirics. Оставлю здесь, вдруг кому пригодится, достаточно доступным языком объяснено. https://metanit.com/java/tutorial/3.11.php
Glock13 уровень, Энгельс
10 May, 19:15
растрата нервов.
Максим Скородумов22 уровень, Рязань
3 May, 02:26
не менять исходный массив? Ок. int[] copy = Arrays.copyOf(inputArray,inputArray.length); //создал копию Arrays.sort(copy); // хочу и меняю :D
Ксенія Українка22 уровень, Киев
3 May, 18:20
о, Вы такой оригинальный )
Вадим16 уровень, Саранск
8 May, 20:57
Идентично сделал
Виталий14 уровень, Минск
28 May, 12:35
Чутка по другому, но суть та же
inputArray.clone();
Zelimkhan17 уровень, Грозный
18 April, 15:14
int max = Integer.MIN_VALUE; int min= Integer.MAX_VALUE; for (int i = 0; i <inputArray.length ; i++) { if (inputArray[i]>max){ max = inputArray[i]; } if (inputArray[i] < min){ min = inputArray[i]; } сделал так без коллекций и прочего. Вопрос к знатокам , в плане производительности лучше сделать как я сделал, или через аррайлист, коллекшнс?
RFedorenkov38 уровень, Москва
18 April, 20:15
лучше присвоить min и Max = inputArra[0] и пройтись обычным for у которого временная сложность O(1), при маленьком массиве самое то, если массив содержит много элементов, то лучше Arrays.sort() В данной задаче есть пункт по изменению массива, так что он не подходит
Must_Die22 уровень, Екатеринбург
23 April, 20:17
еще вариант, цикл я думаю понятен
min = Math.min(min, inputArray[i]);
max = Math.max(max, inputArray[i]);
titix16 уровень
24 April, 00:01
а в задаче запрещено скопировать массив и потом его сортировать? Оо
int[] copy = Arrays.copyOf(inputArray, inputArray.length);
Arrays.sort(copy);
return new Pair<Integer, Integer>(copy[0], copy[copy.length - 1]);
Игорь Birt18 уровень, Тирасполь
2 May, 18:40
Так же сделал, как titix, а вот что имел ввиду RFedorenkov словосочетанием "пройтись обычным for" понять не смог? как именно for он имеет ввиду?
Игорь Birt18 уровень, Тирасполь
2 May, 18:43
А у него что, золотой for?
Artem17 уровень, Рига
27 May, 18:44
улучшенный
Олег Герасимик19 уровень, Кривой Рог
18 April, 08:25
решил сначала через сортировку, не пропустило по условию, потом занес в ArrayList и решил с помощью Collection
Ксенія Українка22 уровень, Киев
17 April, 13:57
сейчас нахождение максимума через сортировку а потом
int a = 8 + 4;
превратится в
// нано, бигдата, машин лернинг
int a = Math.addExact(Integer.intValue(8), Integer.intValue(4));
Игорь Birt18 уровень, Тирасполь
2 May, 19:05
Ксения, прекратите пытаться "рофлить", пожалуйста, у вас ужасно получается
Ксенія Українка22 уровень, Киев
3 May, 07:42
простите. давайте, я комментну по канону у меня получилось с 58й попытки, но я не здаюсь! упорство - главное. Всем успехов!
Alexander Kolesnik16 уровень, Москва
10 May, 19:11
вообще мимо, Ксю) Это как с камедивумен. Несмешно)
Ксенія Українка22 уровень, Киев
11 May, 18:56
Сашуненька, cпасибо за оригинальный коммент. Вот те ответ:
простите. давайте, я комментну по канону
у меня получилось с 58й попытки, но я не здаюсь! упорство - главное. Всем успехов!
Alexander Kolesnik16 уровень, Москва
11 May, 22:30
Ксюндия, ты прощена! Ведь
теперь смешно!
Андрей12 уровень, Москва
23 May, 17:14
😂
Миша16 уровень, Сранопипирск
11 June, 10:20
простите. давайте, я комментну по канону
у меня получилось с 58й попытки, но я не здаюсь! упорство - главное. Всем успехов!
Кек