Как найти максимальный элемент в строке массива

в C# так не работает(хотя в некоторых других языках так можно написать).

C# язык со статической типизацией https://ru.wikipedia.org/wiki/Статическая_типизация

В вашем случае вы не можете изменить тип вашего массива во время работы программы.

int[,] myArr = new int[4, 5];

Во в этой строчке, слева вы сказали(для упрощения), что переменная myArr принадлежит типу int[]. Теперь туда можно добавлять только числа и исправить это нельзя.

Вы дали очень мало описания и возможно не прочитали, как задавать вопросы. Нужно задать конкретный вопрос, ибо в данный момент он звучит “Я ничего не сделал, сделайте за меня”(поэтому вам ставят минусы, а не потому что вопрос плохой).

Для того, чтобы вам ответили, задайте конкретный вопрос. В данном случае он звучит “Как мне вставить в массив чисел символ?”

Дело в том, что это форум архив знаний, состоящий из вопросов. Вопрос и ответ должен содержать в себе страницу учебника. Представьте, что вы пишете Введение в тему занятия. В ответах пишутся детали, а в комментариях обсуждаете с коллегами, как лучше написать.

Подсказка, как сделать

Если правильно оформите вопрос, я на него отвечу. Пока пусто.

Given a matrix, the task is to find the maximum element of each row.
Examples: 

Input :  [1, 2, 3]
         [1, 4, 9]
         [76, 34, 21]

Output :
3
9
76

Input : [1, 2, 3, 21]
        [12, 1, 65, 9]
        [1, 56, 34, 2]
Output :
21
65
56

Method 1: The idea is to run the loop for no_of_rows. Check each element inside the row and find for the maximum element. Finally, print the element. 
Below is the implementation : 

Python

import numpy

def maxelement(arr):

    no_of_rows = len(arr)

    no_of_column = len(arr[0])

    for i in range(no_of_rows):

        max1 = 0

        for j in range(no_of_column):

            if arr[i][j] > max1:

                max1 = arr[i][j]

        print(max1)

arr = [[3, 4, 1, 8],

       [1, 4, 9, 11],

       [76, 34, 21, 1],

       [2, 1, 4, 5]]

maxelement(arr)

Output :

8
11
76
5

Time Complexity: O(N^2), where N is the number of rows in the matrix.

Space Complexity: O(1), as no extra space is required for the algorithm.

Method  2: By calculating max element Each list of list of lists using the max() function

Python3

arr = [[3, 4, 1, 8],

       [1, 4, 9, 11],

       [76, 34, 21, 1],

       [2, 1, 4, 5]]

for i in arr:

    print(max(i))

Time complexity: O(n*m), where n is the number of rows and m is the number of columns in the matrix.

Auxiliary space: O(1), as we are only using a constant amount of extra space to store the maximum value of each row.

Another approach that could be used to find the maximum element of each row in a matrix is to use the built-in map() function. The map() function applies a given function to each element of a given iterable (such as a list or a matrix). In this case, we can use the map() function to apply the max() function to each row of the matrix.

Here is an example of how this approach could be implemented:

Python3

def find_max_element(matrix):

  return list(map(lambda row: max(row), matrix))

matrix = [[3, 4, 1, 8],

          [1, 4, 9, 11],

          [76, 34, 21, 1],

          [2, 1, 4, 5]]

max_elements = find_max_element(matrix)

print(max_elements) 

 Time complexity: O(n * m), where n is the number of rows and m is the number of columns in the matrix. 
 Auxiliary Space: O(n), as we are creating a new list to store the maximum elements of each row.

Method#4: Using the Recursive method.

The find_max_recursive function takes a matrix as input, along with an optional index variable i (which is initially set to 0) and a result list res (which is initially empty). The function returns a list of the maximum element in each row of the matrix.

The function first checks if it has reached the end of the matrix (i.e., if i is equal to the length of the matrix). If so, it returns the result list. Otherwise, it finds the maximum element in the current row using the built-in max function, and appends it to the result list. It then recursively calls itself with the index of the next row and the updated result list.

Python3

def find_max_recursive(matrix, i=0, res=[]):

    if i == len(matrix):

        return res

    max_val = max(matrix[i])

    res.append(max_val)

    return find_max_recursive(matrix, i+1, res)

matrix = [[3, 4, 1, 8],

          [1, 4, 9, 11],

          [76, 34, 21, 1],

          [2, 1, 4, 5]]

max_elements = find_max_recursive(matrix)

print(max_elements)

The time complexity of this function is O(n^2), where n is the size of the input matrix. This is because the function iterates over each element in the matrix once to find the maximum value in each row, resulting in n iterations. Additionally, finding the maximum value in each row requires iterating over each element in the row, resulting in another n iterations. Therefore, the total number of iterations is n^2.

The auxiliary space of this function is also O(n^2), as the result array ‘res’ is being appended with the maximum element from each row in the matrix. Since the matrix has n^2 elements, the result array will also have a maximum of n^2 elements, leading to the O(n^2) space complexity.

Method#5: Using the lambda function + list comprehension 

In this method, we define a lambda function that takes a matrix as input and uses a list comprehension to print the maximum element of each row using the NumPy max() function.

Note: Before using numpy you first need to install it by using the following command: pip install numpy

Below is the code for the following method: 

Python3

import numpy as np

maxelement = lambda arr: [print(np.max(row), end = " ") for row in arr]

arr = [[3, 4, 1, 8],

       [1, 4, 9, 11],

       [76, 34, 21, 1],

       [2, 1, 4, 5]]

maxelement(arr)

Output: 

Time complexity:  O(n*m),  where n is the number of rows and m is the number of columns in the matrix.
Auxiliary Space: O(1)

Please refer complete article on Find maximum element of each row in a matrix for more details!

Last Updated :
29 Mar, 2023

Like Article

Save Article



Ученик

(136),
закрыт



4 года назад

Ирина Анатольевна

Просветленный

(20120)


5 лет назад

var i, j, n, maxi: Integer;
a: array [1..100,1..100] of integer;
begin
write (‘n = ‘);
readln (n);
writeln (‘array’: n*4 div 2 + 3, ‘max’:n*4 div 2+8);
for i:=1 to n do
begin
maxi:=-10;
for j:=1 to n do
begin
a[i,j]:=-9+random(19);
write (a[i,j]:4);
if (j=1) then maxi:=a[i,j];
if a[i,j] > maxi then maxi:=a[i,j];
end;
write (maxi:10);
writeln;
end;
end.

ДарительУченик (136)

5 лет назад

Извините, но у меня эта программа работает не корректно или я не правильно задал вопрос. У меня программа работает так: включаю программу и идет запрос 1 числа. После ввода числа появляется строка и в выписывается макс. элемент в этой строке, а хотелось бы, чтобы вводился (к примеру) ограничитель для массива. X строк и x столбцов и в данной матрице из каждой строки выписать максимальный элемент

Егор Коневцов

Знаток

(377)


5 лет назад

В повседневной практике, даже при сложнейших вычислениях, редко используются числа больше миллиарда.

Миллиард — реже его называют биллионом — это единица с девятью нулями. Употребляется и триллион — единица с двенадцатью нулями. Наименования еще больших чисел мало известны, да и ради экономии места они обозначаются и произносятся как степень числа 10. Например, десять в двадцать четвертой степени. Но у некоторых чисел-великанов названия есть: 10 5—квадриллион, 1018—квинтиллион, 1024—секстиллион, 1027—октиллион.. .

Американский математик Кастнер изобрел «самое большое число» и назвал его «гугол» . Это единица со ста нулями! То есть, 10100. Хотя естественный ряд чисел и бесконечен, все же в известной мере гугол — это граница исчисляемого мира.

Дадим простор своему воображению и попытаемся проверить это утверждение. Вычислим площадь Земли в квадратных миллиметрах — можно надеяться, что получится головокружительная величина. Ничего подобного. Площадь земного шара равна 5X1020 квадратных миллиметров.

Если же подсчитаем объем Земли в кубических миллиметрах, то получим чуть большее число — 1030. Но и это слишком мало по сравнению с гуголом. Если предположить, что в одном кубическом миллиметре вместится десять песчинок, и подсчитать их количество в объеме Земли, то получится всего tO31. Иными словами, Земля слишком мала для какого бы то ни было вычисления в масштабах гугола.

Возьмем просторы космоса и попытаемся выразить расстояние между звездами в ангстремах — один ангстрем равен одной десятимиллионной части миллиметра. Обычно межзвездные расстояния измеряют в световых го- — это расстояние, которое солнечный луч проходит за год, — приблизительно 9,5 триллиона километров. И если выразить световой год в ангстремах, то получим 1026 ангстрема. И расстояние до самых удаленных галактик не превышает 6X1027 ангстрем.

Предположим, что Вселенная имеет ограниченные размеры (что не доказано) и сопоставим этот самый крупный физический объект, известный людям, с ядром атома — одним из самых малых объектов, изученных физиками. Соотношение между ними составит 1040. Это также не гугол.

А теперь подсчитаем возраст Вселенной. Самое короткое время, которое мы используем в этом вычислении, составляет тот миг, который необходим световому лучу, чтобы пересечь диаметр атомного ядра. Получается, что возраст Вселенной в этих единицах составляет также 1040.

Пересчитаем все атомные частицы, существующие в известной нам Вселенной: протоны, электроны, нейтроны, а также нейтрино и фотоны. Даже в одной пылинке содержится несколько миллиардов элементарных частиц. А во Вселенной их 1088— то есть миллионная миллионной части гугола!

До сих пор мы пользовались только статистическими величинами: длиной, объемом, количеством частиц. Интересно затронуть и динамические величины, например энергию. Энергия, излучаемая всеми звездами во Вселенной, должна быть исключительно велика. Но даже выраженная в микроваттах, она не достигает 1040.

Гугол недостижим, даже если подсчитать, сколько энергии содержится во всем веществе Вселенной.

Юрий Моисеев

Оракул

(83754)


5 лет назад

const m=10;
n=10;
var a:array[1..m,1..n] of integer;
i,j,imx,jmx:integer;
mx:integer;
begin
randomize;
writeln(‘Массив’);
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write(a[i,j]:4);
end;
writeln;
end;
writeln(‘Максимальные в строках:’);
for i:=1 to m do
begin
mx:=a[i,1];
for j:=2 to n do
if a[i,j]>mx then begin mx:=a[i,j];imx:=i;jmx:=j end;
writeln(imx,’ ‘,jmx,’:’,’Макс=’,mx:4);
end;
end.

в C# так не работает(хотя в некоторых других языках так можно написать).

C# язык со статической типизацией https://ru.wikipedia.org/wiki/Статическая_типизация

В вашем случае вы не можете изменить тип вашего массива во время работы программы.

int[,] myArr = new int[4, 5];

Во в этой строчке, слева вы сказали(для упрощения), что переменная myArr принадлежит типу int[]. Теперь туда можно добавлять только числа и исправить это нельзя.

Вы дали очень мало описания и возможно не прочитали, как задавать вопросы. Нужно задать конкретный вопрос, ибо в данный момент он звучит “Я ничего не сделал, сделайте за меня”(поэтому вам ставят минусы, а не потому что вопрос плохой).

Для того, чтобы вам ответили, задайте конкретный вопрос. В данном случае он звучит “Как мне вставить в массив чисел символ?”

Дело в том, что это форум архив знаний, состоящий из вопросов. Вопрос и ответ должен содержать в себе страницу учебника. Представьте, что вы пишете Введение в тему занятия. В ответах пишутся детали, а в комментариях обсуждаете с коллегами, как лучше написать.

Подсказка, как сделать

Если правильно оформите вопрос, я на него отвечу. Пока пусто.

Добавить комментарий