Вот ссылка на полный вопрос: https://youtu.be/5dJSZLmDsxk
Вопрос: Создать функцию, которая возвращает число отрицательных целых чисел в двумерном массиве, так что целые числа каждой строки в этом массиве увеличиваются в размере от индекса 0 до n, в то время как целые числа каждого столбца делают то же самое сверху вниз ,
Э.Г.
{{-5, -4, -3, -2},
{-4, -3, -2, -1},
{-3, -2, -1, 0},
{-2, -1, 0, 1}}
В видео CS Dojo представляет следующее решение:
def func(M, n, m):
count = 0
i = 0
j = m - 1
while j >= 0 and i < n:
if M[i][j] < 0:
count += j + 1
i += 1
else:
j -= 1
return count
Мои вопросы: почему / следующий код не так эффективен? (Единственное отличие состоит в том, что последний начинается слева и увеличивается count
несколько раз <- Но будут ли эти две вещи иметь какое-то значение? </p>
int rows = 3;
int cols = 4;
int count_neg(const int arrays[rows][cols]) {
int count = 0;
int pos = cols;
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= pos; j++) {
if (arrays[i][j] < 0)
count++;
else {
pos = j;
break;
}
}
if (pos == 0)
break; /*offers miniscule efficiency improvement?*/
}
return count;
}
Пожалуйста, предположите, что они оба были написаны на одном языке.