Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Поиск максимума в двухмерном массиве

Поиск максимума в двухмерном массиве

Запланировано Прикреплена Закрыта Перенесена JavaScript
arrayмассивыjavascriptjs
7 Сообщения 2 Постеры 105 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано kirilljsx
    #1

    Еще одна интересная задача с массивом - для обхода первого измерения мы будем использовать счетчик i, для обхода второго - j. Как только найдем максимальный элемент, в массив ind мы запишем его “координаты” - значения счетчиков i (элемент 0) и j (элемент 1).

    let arr = [0, 0, 0]; // Инициализация массива
    
    arr[0] = [3, 2, 1];
    arr[1] = [7, 8, 9];
    arr[2] = [5, 6, 7];
    
    let max = arr[0][0];   // Максимум
    let ind = [0, 0];    // Его индекс — массив [строка, столбец]
    
    for (i = 0; i < arr.length; i++) {
        for (let j = 0; j < arr[i].length; j++) {
            if (arr[i][j] > max) {
                max = arr[i][j];
                ind[0] = i;
                ind[1] = j;
            }
        }
    }
    
    console.log('Max ' + max);
    console.log('Ind [' + ind[0] + '][' + ind[1] + ']');
    

    Снимок экрана 2025-10-20 в 16.15.51.png

    Обратите внимание, как мы обращаемся к свойству length. Поскольку каждый из элементов исходного массива также является массивом, то мы можем обратиться к length так: arr[i].length. Конечно, мы и так знаем размерность массива, и можно было бы использовать значения длины 3 для каждого из счетчиков, но корректнее.

    Вообще по сути это матрицы, надеюсь Вы помните еще со школьных времен что такое матрицы? Кстати их полезно изучать потому что в наше время для разработки тех же LLM векторы и матрицы - это база.

    Можно было сделать еще чуть проще и сделать сразу матрицу 3х3:

    let arr = [
        [3, 2, 1],
        [7, 8, 9],
        [5, 6, 7]
    ]
    

    Но об этом думаю затрону в других темах и уже про python.

    AladdinA 1 ответ Последний ответ
    0
    • AladdinA Не в сети
      AladdinA Не в сети
      Aladdin
      js
      написал в отредактировано Aladdin
      #2
      let arr = [
          [3, 2, 1],
          [7, 8, 9],
          [5, 6, 7]
      ]
      
      const max = arr.reduce((acc, row) => {
          const maxRow = row.reduce((acc2, item) => {
              return acc2 < item ? item: acc2
          }, -Infinity);
          return acc < maxRow ? maxRow : acc;
      }, -Infinity)
      
      
      kirilljsxK 1 ответ Последний ответ
      1
      • kirilljsxK kirilljsx

        Еще одна интересная задача с массивом - для обхода первого измерения мы будем использовать счетчик i, для обхода второго - j. Как только найдем максимальный элемент, в массив ind мы запишем его “координаты” - значения счетчиков i (элемент 0) и j (элемент 1).

        let arr = [0, 0, 0]; // Инициализация массива
        
        arr[0] = [3, 2, 1];
        arr[1] = [7, 8, 9];
        arr[2] = [5, 6, 7];
        
        let max = arr[0][0];   // Максимум
        let ind = [0, 0];    // Его индекс — массив [строка, столбец]
        
        for (i = 0; i < arr.length; i++) {
            for (let j = 0; j < arr[i].length; j++) {
                if (arr[i][j] > max) {
                    max = arr[i][j];
                    ind[0] = i;
                    ind[1] = j;
                }
            }
        }
        
        console.log('Max ' + max);
        console.log('Ind [' + ind[0] + '][' + ind[1] + ']');
        

        Снимок экрана 2025-10-20 в 16.15.51.png

        Обратите внимание, как мы обращаемся к свойству length. Поскольку каждый из элементов исходного массива также является массивом, то мы можем обратиться к length так: arr[i].length. Конечно, мы и так знаем размерность массива, и можно было бы использовать значения длины 3 для каждого из счетчиков, но корректнее.

        Вообще по сути это матрицы, надеюсь Вы помните еще со школьных времен что такое матрицы? Кстати их полезно изучать потому что в наше время для разработки тех же LLM векторы и матрицы - это база.

        Можно было сделать еще чуть проще и сделать сразу матрицу 3х3:

        let arr = [
            [3, 2, 1],
            [7, 8, 9],
            [5, 6, 7]
        ]
        

        Но об этом думаю затрону в других темах и уже про python.

        AladdinA Не в сети
        AladdinA Не в сети
        Aladdin
        js
        написал в отредактировано
        #3

        Пользователь @kirilljsx написал в Поиск максимума в двухмерном массиве:

        let arr = [
        [3, 2, 1];
        [7, 8, 9];
        [5, 6, 7];
        ]

        ряды в массиве пишутся через запятую

        kirilljsxK 1 ответ Последний ответ
        0
        • AladdinA Aladdin

          Пользователь @kirilljsx написал в Поиск максимума в двухмерном массиве:

          let arr = [
          [3, 2, 1];
          [7, 8, 9];
          [5, 6, 7];
          ]

          ряды в массиве пишутся через запятую

          kirilljsxK Не в сети
          kirilljsxK Не в сети
          kirilljsx
          js
          написал в отредактировано
          #4

          @Jspi косячнул, поправлю))

          1 ответ Последний ответ
          0
          • AladdinA Aladdin
            let arr = [
                [3, 2, 1],
                [7, 8, 9],
                [5, 6, 7]
            ]
            
            const max = arr.reduce((acc, row) => {
                const maxRow = row.reduce((acc2, item) => {
                    return acc2 < item ? item: acc2
                }, -Infinity);
                return acc < maxRow ? maxRow : acc;
            }, -Infinity)
            
            
            kirilljsxK Не в сети
            kirilljsxK Не в сети
            kirilljsx
            js
            написал в отредактировано kirilljsx
            #5

            @Jspi У тебя reduce вообще для всего применяется? ))))

            AladdinA 1 ответ Последний ответ
            0
            • kirilljsxK kirilljsx

              @Jspi У тебя reduce вообще для всего применяется? ))))

              AladdinA Не в сети
              AladdinA Не в сети
              Aladdin
              js
              написал в отредактировано
              #6

              @kirilljsx ну да, через редюс можно любые методы работы с массивами реализовать)

              kirilljsxK 1 ответ Последний ответ
              0
              • AladdinA Aladdin

                @kirilljsx ну да, через редюс можно любые методы работы с массивами реализовать)

                kirilljsxK Не в сети
                kirilljsxK Не в сети
                kirilljsx
                js
                написал в отредактировано
                #7

                @Jspi Кажется я постарел
                1559276839130210974.gif

                1 ответ Последний ответ
                0

                Категории

                • Главная
                • Новости
                • Фронтенд
                • Бекенд
                • Языки программирования

                Контакты

                • Сотрудничество
                • info@exlends.com
                • Наш чат
                • Наш ТГ канал

                © 2024 - 2025 ExLends, Inc. Все права защищены.

                Политика конфиденциальности
                • Войти

                • Нет учётной записи? Зарегистрироваться

                • Войдите или зарегистрируйтесь для поиска.
                • Первое сообщение
                  Последнее сообщение
                0
                • Лента
                • Категории
                • Последние
                • Метки
                • Популярные
                • Пользователи
                • Группы