Изоморфы наступают

  • 7
  • Недоступна
Раз мы говорим об упорядоченных изоморфах с планеты Линейный Хаос, значит, мы собираемся решать задачу на знание алгоритмов. Ибо изоморфы без алгоритмов — не изоморфы вовсе. Да и не станут они разговаривать с человеком или роботом, который не может найти минимум в массиве и его позицию. Но вы-то — сможете?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (97)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
6 октября, 18:00
Решается в 3 строчки кода 1. Создаем ArrayList. 2. Вставляем в ArrayList с помощью улучшенного цикла for each все элементы из нашего array. 3. Пишем return вот так: Профит.
Алексей14 уровень, Минск
10 октября, 17:51
сложно одним фором и одним ифом решил, в 6 строк уложился))
almariel116 уровень, Москва
16 сентября, 12:31
1. Копируем массив в новый 2. Применяем к копии метод sort() 3. Записываем в переменную min первый элемент (индекс 0) 4. Пробегаем по исходному массиву и в случае совпадения min с элементом массива, записываем его индекс
Алексей16 уровень, Санкт-Петербург
30 августа, 06:56
В общем опять этот бред "валидатора " Если вы делали через сравнение и двумя переменными ( мин знач и индекс) Решение действительно в 4 строчки , только в pair нужно передавать не саму переменную ( с минимальным значением ) а элемент массива - array[index] Иначе плохо настроенные юнит тесты , которые проверяют , что значение должно быть элементом массива , а не целочисленным значением, застопорит ваше решение Да и логику этой задаче относительно остальных задач которые были раньше , я лично не понимаю. Сделали бы решение с использованием интерфейса или наследования что-ли
Justinian41 уровень, Киев
16 сентября, 17:47
Делал через сравнение и двумя переменными (мин знач и индекс), передавал в pair саму переменную, все нормально приняло. Поэтому не совсем понял, что значит значение должно быть элементом массива, а не целочисленным значением, если по условию задания, то это как раз должно быть целочисленное значение, которое является элементом массива, вернее в массиве есть такое же значение. Массив то примитивов, никаких уникальных объектов там нету, в любом случае в pair пойдет копия значения.
Алексей16 уровень, Санкт-Петербург
3 октября, 06:18
Имел в виду , что в значение Map Pair<Integer, Integer>" , необходимо передавать сам элемент массива array[0] (например) , в противном же случае , если я сначала создам переменную , а потом присвою ей значение массива элемента массива , и попытаюсь эту переменную закинуть в Map Pair<Integer, Integer>, то в таком случае валидатор будет жаловаться . В моем случае это было именно так
Justinian41 уровень, Киев
3 октября, 06:24
Ну, валидатор на это не реагирует. У меня есть отдельная копипаста по этому поводу. Осознание ошибки это половина дела, и очень вредно делать неверные выводы. Поскольку ты маскируешь основную проблему. А валидатор это такое чучело на которое можно повесить все что угодно. Мы джава профессионалы, пусть и будущие, и мы не должны повторять подход язычников к примеру, которые не могли объяснить что такое гром, и придумывали богов всего. Причинно-наследственная связь серьезная штука, должны быть веские и аргументированные основания для формирования утверждений. Почитай текст ниже, это кому-то писал ответ, такая ситуация часто повторяется, не принимай на свой счет, просто попытайся схватить суть, о чем речь. Это важно. Когда не будет валидатора, а будет работа - не там будешь искать ошибку, неделю потратишь...там где справился бы за минуту.
Justinian41 уровень, Киев
3 октября, 06:24
Часто встречаю подобное, это работает следующим образом. Есть программа, которая принимает на вход слово. И сравнивает это слово (без учета регистра) например с "амбал". Программа должна выводить в консоль: 1. результат сравнения true/false. 2. Оригинальное введенное слово. Ты пишешь:
String word = reader.readLine();
boolean isSameWord = false;
if (word.equals("амбал")) {
  isSameWord = true;
}
sout(word);
sout(isSameWord);
Программу валидатор естественно фейлит, слово АМБАЛ, АмБал проверку не пройдет. Ты делаешь изменения:
word = word.toLowerCase();
...
валидатор естественно фейлит. Проверка уже работает корректно, но ты изменяешь слово, выводится "амбал" вместо допустим "АмбАл". Ты дальше меняешь:
word1 = word.toLowerCase();
if (word1.equals("амбал") ..
sout(isSameWord);
sout(word);
Валидатор принимает! И ты приходишь к выводу: 1. Нужно использовать исключительно метод toLowerCase, без него валидатор не примет. 2. Порядок вывода важен! В первых двух случаях у тебя был другой порядок вывода, но валидатор не принимал, порядок видно не устраивал... Но эти выводы ошибочны. У тебя ошибка была в другом месте, и валидатор пропустил бы и другие варианты сравнения - через equalsIgnoreCase(), и тд. Также валидатору в данном случае все-равно какой порядок вывода, твой код не принимался из-за неверной работы самого алгоритма. Но ты будешь в твердой уверенности, что твой код приняло только потому, что ты поменял порядок вывода и использовал конкретный способ. У тебя были факторы А и Б. Фактор А (порядок вывода и способ) не принципиален валидатору. Фактор Б - это ошибка, принципиален. Твой код не принимается, ты грешишь на фактор А, меняешь код, меняешь, пока у тебя И фактор А меняется, и фактор Б попутно становится верным. Валидатор говорит - ок! И ты: "у меня без фактора А валидатор не принял..."
Александр14 уровень, Kemerovo
1 августа, 09:31
int min = Integer.MAX_VALUE;
Alexey Andreev16 уровень
31 июля, 17:28
Что то я как лох кажись сделал... ArrayList<Integer> list = new ArrayList<>(); for (int i=0;i<array.length;i++){ list.add(array[i]); } return new Pair<Integer, Integer>(Collections.min(list), list.indexOf(Collections.min(list)));
Evgeny Gaychenkov20 уровень, Самара
19 июня, 13:40
отсортировал массив, указал минимум array[0], нашел индекс через Arrays.binarySearch(). Не пропускает, что ему еще нужно. Значения правильные.
5 июля, 11:17
у меня Arrays.binarySearch() = -1, т.е. элемент не найден
Haumi24 уровень, Санкт-Петербург
3 мая, 17:34
1) через метод стрим определяем мин число. 2) перебираем массив и сравниваем каждую ячейку с полученным минимальным числом и когда находиться эта ячейка, берем ее индекс. решение занимает 4 строчки.
Вэйлор20 уровень
24 апреля, 13:35
Поясните за X и Y. Насколько я понял переменные этого типа сами являются классом. Почему в таком случае они не описаны отдельно?
Egor Tehnik19 уровень
10 июля, 15:43
это дженерики
Alexandr Racov27 уровень
10 апреля, 16:20
1. Сoздаем коллекцию ArrayList; 2. Через цикл добавляем в него значения массива; 3. Определяем минимальное значение через Collection.min 4. Определяем индекс минимального значения через .indexOf
Dmitry19 уровень, Москва
29 мая, 13:17
Спасибо, так узнал про .indexOf - решение красивое получилось.
Andrew22 уровень, Гомель
30 марта, 20:13
Отсортировал массив. В Pair <Integer, Integer> (x, y) x - присвоил значение нулевого (минимального после сортировки) элемента массива, y - просто число 0 (нулевой индекс же) . Валидатор сказал идти лесом. Ок, подумал "вдруг ему не нравится, что я передаю y 0, а нужен именно индекс (в форме переменной). Отсортировал массив, вкинул его в LinkedHashMap. Ключи - индексы массива, значения - элементы массива. С помощью iterator().next() получил значения первых пар ключ/значение, закинул в (x, y). Валидатор послал туда же. Задумался. Почитал комменты. И нашел супер коммент: "вас никто не просит сортировать". Тут и пришло озарение... Решил циклом в 4 строчки. Валидатор счастлив. Итог - куча плюсов: 1) В очередной раз убедился, что не нужно усложнять там, где не нужно; 2) +200 к внимательному чтению условия задачи; 3) Повторил тему HashMap.