Большой, О, примечание O (NM) или (N^2)

Мне сказали ниже кода, = O (MN), однако, я придумываю O (N^2). Который является правильным ответом и почему?

My thought process: nested for loops plus if statements --> (O(N^2)+O(1)) + (O(N^2)+O(1)) = O(N^2)

Спасибо

public static void zeroOut(int[][] matrix) { 
    int[] row = new int[matrix.length];
    int[] column = new int[matrix[0].length];
// Store the row and column index with value 0 
 for (int i = 0; i < matrix.length; i++)
   {
    for (int j = 0; j < matrix[0].length;j++) { 
       if (matrix[i][j] == 0) 
          {
            row[i] = 1;
            column[j] = 1; 
          }
   } 
  }
// Set arr[i][j] to 0 if either row i or column j has a 0 
for (int i = 0; i < matrix.length; i++)
 {
   for (int j = 0; j < matrix[0].length; j++)
      { 
        if ((row[i] == 1 || column[j] == 1)){
              matrix[i][j] = 0; 
           }
      } 
  }
}
3
nl ja de

1 ответы

Что делает M, и N относится к? Мое предположение - то, что это относится к "рядам" и "колонкам" соответственно. Если это так, то уравнение - O (MN), потому что вы образовываете петли через число M времен N.

O (N^2) будет правилен, ЕСЛИ ряды и колонки будут равны.

9
добавлено
Если M
добавлено автор ggbranch, источник
ваше предположение - правильный M, и N относятся к рядам и колонкам соответственно. Спасибо за быстрый ответ. Это имеет смысл!
добавлено автор KingJahfy, источник
Однако, если M - всегда
добавлено автор KingJahfy, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async