Количество локальных максимумов/минимумов

Как подсчитать количество локальных максимумов/минимумов в массиве? Не получается никак
import random
local = 0
m = {}
for i in range(8):
    for j in range(8):
        m[i,j] = random.choice(range(1,100))
print("Массив 1")
for i in range(8):
    print(*[m[i,j] for j in range(8)])
 
for i in range(8):
    for j in range(8):
        if m[i,j] > m[i,j-1] and m[i,j] > m[i,j+1]:
            local+1
print(local)
4 ответа

Актуально


Ошибка в том, что если j == 0 или j == 7 , то элемента i-1 в первом случае и i+1 во втором с такими номерами в массиве нет. range(8) = от 0 до 7.
if (m[i, j] > m[i, j - 1) and (m[i, j] > m[i, j + 1]):
if (m[i, j] > m[i, j - 1]) and (m[i, j] > m[i, j + 1]):
import random
local = 0
m = {}
for i in range(8):
    for j in range(8):
        m[i,j] = random.choice(range(1,3))
print("Массив 1")
 
for i in range(8):
    print(*[m[i,j] for j in range(8)])
 
for i in range(8):
    for j in range(8):
        if j == 0 or j == 7:
            pass
        else:
            #print(m[i, j])
            if (m[i, j] > m[i, j - 1]) and (m[i, j] > m[i, j + 1]):
                local += 1
 
print(local)


import random local = 0 m = {} for i in range(8): * * for j in range(8): * * * * m[i,j] = random.choice(range(1,3)) print("Массив 1") for i in range(8): * * print(*[m[i,j] for j in range(8)]) for i in range(8): * * for j in range(8): * * * * if j == 0 or j == 7: * * * * * * pass * * * * else: * * * * * * #print(m[i, j]) * * * * * * if (m[i, j] > m[i, j - 1]) and (m[i, j] > m[i, j + 1]): * * * * * * * * local += 1
Спасибо тебе добрый человек!