-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMax-HourGlass-Sum.py
39 lines (28 loc) · 1.12 KB
/
Max-HourGlass-Sum.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def hourglasssum(arr):
# In a matrix total number of hour glass is (R-2)*(C-2)
# row = len(arr)
# column = len(arr[0])
if len(arr) < 3 or len(arr[0]) < 3:
return 0
curr_sum = 0
max_sum = -63 # if -9 <= arr[i][j] <= 9
for i in range(len(arr)-2):
for j in range(len(arr[0])-2):
curr_sum = (arr[i][j] + arr[i][j+1] + arr[i][j+2]) + \
(arr[i+1][j+1]) + \
(arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2])
max_sum = max(curr_sum,max_sum)
#for printing each hourglass
print(arr[i][j]," ",arr[i][j+1]," ",arr[i][j+2])
print(" ",arr[i+1][j+1], " = ", curr_sum)
print(arr[i+2][j], " ", arr[i+2][j+1], " ",arr[i+2][j+2])
print("\n")
print("Total Number pf HourGlass = ", (len(array)-2)*(len(array[0])-2))
return max_sum
array = [ [1, 1, 1, 0, 0,0],
[0, 1, 0, 0, 0,0],
[1, 1, 1, 0, 0,0],
[0, 0, 2, 4, 4,0],
[0, 0, 0, 2, 0,0],
[0, 0, 1, 2, 4,0]]
print("Maximum sum = ",hourglasssum(array))