Минимакс

  • 7
  • Недоступна
На вступительном экзамене в ясли упорядоченному изоморфу Васеньке с планеты Линейный Хаос задали задачку на нахождение максимума и минимума в массиве. Как вы помните (или нет), на этой планете все только и заняты упорядочиванием и сравнением. Васенька справился. А вы?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (248)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Anton Dityatev 12 уровень, Северодвинск
вчера, 13:51
тащусь с этих дженериков. Вот здесь подробно рассказывается про дженерики: https://docs.oracle.com/javase/tutorial/java/generics/index.html
Имя Фамилия 12 уровень, Москва
14 января, 17:59
Сразу было понятно, что задача на повторение пройденного когда-то ранее материала, оставалось только догадаться какого )) решил пойти простым путём - инициализирую переменную первым значением из массива int min = inputArray[0]; и простым циклом в один проход проверяю if (inputArray[i] < min), если удовлетворяет, тогда i-й элемент назначаю тебя любимой женой присваиваю переменной min = inputArray[i]; С максимумом ровно такая же схема. Потом в return вместо (0, 0) записал (min, max). А потом пошёл читать комменты и в этот раз это было зря - народ безумствует с копиями массивов и в какой-то момент я даже засомневался.. задумался.. забил и отнёс валидатору своё решение "как есть", а он был и не против )) Вывод: тот случай, когда не нужно хитровыкрученных решений, нужно простое
baddan 12 уровень, Тамбов
14 января, 06:20
возращаем сначала Маленькое после Большое
Антон Чиков Software Developer в myToys
3 января, 11:15
Нашел косяк, хотя моё решение соотвествует всем кретериям, JR его не принимает и говорит, что я типа меняю массив inputArray
public static Pair<Integer, Integer> getMinimumAndMaximum(int[] inputArray) {
    if (inputArray == null || inputArray.length == 0) {
        return new Pair<Integer, Integer>(null, null);
    }

    int[] copyArray = inputArray;

    Arrays.sort(copyArray);
    int min = copyArray[0];
    int max = copyArray[copyArray.length - 1];

    return new Pair<Integer, Integer>(min, max);
}
stepa113 13 уровень, Москва
8 января, 11:41
А ты действительно меняешь исходный массив. Ведь
int[] copyArray = inputArray;
присвоил ссылочной переменной int[] copyArray не значения массива inputArray а ссылку на этот массив. И теперь в этих двух ссылочных переменных хранятся ссылки на один и тот же массив. Этим ты
Николай Стецюк 12 уровень
2 января, 19:08
public static class Pair<X, Y> { public X x; public Y y; public Pair(X x, Y y) { this.x = x; this.y = y; Пожалуйста обясните что за класы такие Х и У, откуда они подтягиваются, а их реализации нет в папке задания
Maksim 15 уровень, Пермь
12 января, 12:07
<X, Y> - это так называемые дженерики, а не классы. Вместо X и Y можно подставить любой другой тип данных при создании объекта данного класса. В примере работа происходит с числами поэтому подставляется <Integer, Integer>. По сути во всем теле класса Pair где стоял тип X становится тип Integer, c Y тоже самое.
Skanta 16 уровень, Ростов-на-Дону
25 декабря 2020, 09:14
Хз зачем это в задачах на наследование, но решается элементарно за пару минут: 1. Присваиваем min и max значению первого элемента массива. 2. Через форич перебираем массив, с условиеми if на min и max. 3. Возвращаем min и max.
Виктор 16 уровень
17 декабря 2020, 10:07
Ух ты! А где тут extends вставлять? 1. int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; 2. цикл for, а в нем 2 if
Антон 15 уровень, Москва
16 декабря 2020, 19:22
Как-то сложно все решают: if-ы, for-ы, set-ы, list-ы, пузырек, всякие магические заклинания из будущих уровней... Наверное, я просто не понял глубины и драматизма ситуации и решил за 5 минут, открыв конспект 7-го уровня: - импорт Arrays; - дубликат массива через Arrays.copyOf(); - сортировка дубликата с помощью Arrays.sort(); - минимальное число - это 0 ячейка дубликата, максимальное - это последняя ячейка; - возвращаем х (минимальное) и у (максимальное).
Роман 14 уровень
21 декабря 2020, 16:45
а точно так решили? в условиях вообще-то нельзя массив изменять
Антон 15 уровень, Москва
21 декабря 2020, 19:05
Верно, массив inputArray изменять нельзя - для этого создаем дубликат массива через Arrays.copyOf(), совершаем все манипуляции с дубликатом и возвращаем результат. Попробуйте сами, все работает, валидатор тоже доволен.
Роман 14 уровень
21 декабря 2020, 19:25
хитро
Oleg 12 уровень, Москва
24 декабря 2020, 15:15
Спасибо за подсказку. Решал также, только делал без copyOf, а просто присвоением и на этом погорел.
PaiMei in J# 14 уровень, Санкт-Петербург
16 декабря 2020, 11:11
Капец, сначала сделал сортировку пузырьком, все, конечно, отработало как надо, но вот только последний пункт задачи не удовлетворяло (нельзя изменять массив), ок, подумал я и просто создал 2 переменные (int min = 0 и int max = 0). Ну теперь то все, думаю, дело в шляпе, но компилятор опять ругается, мол а если все числа отрицательные? Ну я недолго думая инициализировал переменную int max самым минимальным пределом int (#меньшедвухмиллиардов), далее компилятор выдает, а что если все числа положительные? Ну тут я прям присел, вообще сижу в прострации, ЖИЗНЬБОЛЬ и все дела, открываю комменты и краем глаза цепляю идею проинициализировать min и max первым входящим элементом массива, ВОТЗЭХЕЛЛМАЗАФАКА??? Это же настолько простое, ясное и прозрачное решение?! Короч, это просто крик души, наверное у всех бывают такие Тупиковые (от слова тупой😁) моменты)
Elena 14 уровень
24 декабря 2020, 12:52
ну вот у меня только что он был 😁
Ю С 12 уровень, минск
14 января, 07:26
о, у меня та же ошибка была (что, если все отрицательные?), действительно, если проинициализировать не нулем, а нулевым элементом, то все получается
Игорь 16 уровень
15 декабря 2020, 16:12
задача легкая, как 2+2. Как написал Anton Rymarenko - с начала дали задание гайки нарезать, а потом заставили вертолет перебрать.