169 похожих чатов

Здравствуйте. У меня есть метод, который принимает двумерный массив и

меняет местами строки с максимальным числом и с минимальным. Код:
class Program {
static Calc(arr) {
let maxArr = []; // Массив со всеми максимальными числами всех строк
let minArr = []; // Массив со всеми минимальными числами всех строк
let maxIndex; // Индекс максимального массива в основном массиве
let minIndex; // Индекс минимального массива в основном массиве
let basicMaxArr; // Массив, содержащий максимальное число
let basicMinArr; // Массив, содержащий минимальное число
for (let i = 0; i < arr.length; i++) {
maxArr.push(Math.max(...arr[i]));
minArr.push(Math.min(...arr[i]));
}
maxIndex = maxArr.indexOf(Math.max(...maxArr));
minIndex = minArr.indexOf(Math.min(...minArr));
basicMaxArr = arr[maxIndex];
basicMinArr = arr[minIndex];
for (let i = 0; i < arr.length; i++) {
if (i == maxIndex) {
arr[maxIndex] = basicMinArr;
}
else if (i == minIndex) {
arr[minIndex] = basicMaxArr;
}
}
return arr;
}
}
Он работает исправно, если в одном массиве не предоставлено одновременно минимальное и максимально число, например:
let arr = [
[1,2,10],
[3,4,5],
[6,7,8],
];
Здесь 1 минимальное и 10 максимальное сразу в одном массиве и код тупо ничего не делает, а если бы было б так:
let arr = [
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
];
То он бы поменял первую строку с последней, как и требуется. В чём может быть проблема?

2 ответов

17 просмотров

А в первом случае он должен с какой строкой менять? Просто твой алгоритм сейчас такой 1. Найти массив с максимумом 2. Найти массив с минимумом 3. Поменять их местами А не работает потому что у тебя массив с максимумом и с минимумом это один и тот же массив, значит менять местами ничего не надо, что логично, по идее это правильное поведение

Kirill- Автор вопроса

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
10
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Карта сайта