Минимакс

  • 7
На вступительном экзамене в ясли упорядоченному изоморфу Васеньке с планеты Линейный Хаос задали задачку на нахождение максимума и минимума в массиве. Как вы помните (или нет), на этой планете все только и заняты упорядочиванием и сравнением. Васенька справился. А вы?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (245)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dim
Уровень 16, Житомир, Украина
27 апреля, 14:21
сначала сортировал массив интов, а потом погуглил методы сортировки через коллекцию, хз правильно ли сделал, что искал, но результат такой вышел)
JohnET
Уровень 12
14 апреля, 02:35
Сделал копию массива, используя метод sort() отсортировал его, взял первый и последний элемент.
Asankheya
Уровень 14, Mainframe
27 марта, 19:28
- зачем слону хвост? - чтобы слон не кончался внезапно.
3 февраля, 02:22
Ребята, подскажите пожалуйста, а Pair <Integer, Integer> - разве это не Мэп с одной парой (одним индексом) ?Если да, то почему не создаем Мэп, а сразу используем Pair? если не Мэп, то что это за сущность - Pair ? Зачем нам класс Pair? чтоб принять пару - ясно...но почему именно в таком виде? public static class Pair<X, Y> { public X x; public Y y; public Pair(X x, Y y) { this.x = x; this.y = y; } } что здесь значат X x, Y y - и для чего? обозначение X x - связано с оберткой Integer что-ли?))) зачем на конструктор: public Pair(X x, Y y) { this.x = x; this.y = y; }
new Cat("Barsik")
Уровень 20, Сызрань, Россия
16 февраля, 15:34
https://docs.oracle.com/javase/tutorial/java/generics/index.html на сколько я понял это дженерики, ссылку взял ниже). Для чего они можно почитать сейчас или подождать когда раскроют в курсе. Я выбрал второе)))
Serzhes
Уровень 13, Санкт-Петербург, Россия
4 июня, 03:50
Pair это не Map, это придуманный класс. Треугольные скобки в написании Pair<X, Y> означают, что объекты X и Y "какие-то объекты". В данном классе их решили сделать Integer и Integer. Ну а дальше в классе Pair нужно иметь ввиду, что X и Y это Integer и Integer
Олег Фурт
Уровень 13, Украина
31 января, 14:58
OptionalInt a = Arrays.stream(inputArray).max(); OptionalInt b = Arrays.stream(inputArray).min(); return new Pair<Integer, Integer>(b.getAsInt(), a.getAsInt());
Олег
Уровень 35, Москва, Россия
12 апреля, 09:22
также решил
Aleksandr Alekseenko Network engineer
21 января, 20:40
Кому-то может быть интересно, если есть желание выйти не много за рамки. 1. Переводим массив int[] в Interger[]
Integer[] newArray = Arrays.stream(inputArray).boxed().toArray(Integer[]::new);
2. Получаем Коллекцию и, используя встроенные методы, получаем минимум и максимум.
List<Integer> arrayList = new ArrayList<Integer>(Arrays.asList(newArray));
int x = Collections.min(arrayList);
int y = Collections.max(arrayList);
Anonymous #2297535
Уровень 22, Северодвинск, Россия
16 января, 13:51
тащусь с этих дженериков. Вот здесь подробно рассказывается про дженерики: https://docs.oracle.com/javase/tutorial/java/generics/index.html
Имя Фамилия
Уровень 17, Москва
14 января, 17:59
Сразу было понятно, что задача на повторение пройденного когда-то ранее материала, оставалось только догадаться какого )) решил пойти простым путём - инициализирую переменную первым значением из массива int min = inputArray[0]; и простым циклом в один проход проверяю if (inputArray[i] < min), если удовлетворяет, тогда i-й элемент назначаю тебя любимой женой присваиваю переменной min = inputArray[i]; С максимумом ровно такая же схема. Потом в return вместо (0, 0) записал (min, max). А потом пошёл читать комменты и в этот раз это было зря - народ безумствует с копиями массивов и в какой-то момент я даже засомневался.. задумался.. забил и отнёс валидатору своё решение "как есть", а он был и не против )) Вывод: тот случай, когда не нужно хитровыкрученных решений, нужно простое
Даниил Александрович
Уровень 35, Тамбов , Россия
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
Уровень 20, Москва, Россия
8 января, 11:41
А ты действительно меняешь исходный массив. Ведь
int[] copyArray = inputArray;
присвоил ссылочной переменной int[] copyArray не значения массива inputArray а ссылку на этот массив. И теперь в этих двух ссылочных переменных хранятся ссылки на один и тот же массив. Этим ты
TTxx
Уровень 19, Санкт-Петербург
1 февраля, 14:49
int[] array = inputArray.clone();
Антон Чиков Software Developer в myToys
3 февраля, 20:49
Да, действительно, спасибо.
олеся Software Developer
17 марта, 10:14
спасибо большое, тоже вначале копию сделала и у меня ругался на то что меняю исходный массив.А с clone() все прошло!
Татьяна Никонова
Уровень 30, Санкт-Петербург
16 апреля, 06:35
плюсую))