hackerrank-2D Array

来源:互联网 发布:erp系统维护 数据库 编辑:程序博客网 时间:2024/06/01 08:14

2D Array - DS

Context
Given a 2D Array, :

1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
We define an hourglass in to be a subset of values with indices falling in this pattern in ‘s graphical representation:

a b c
d
e f g
There are hourglasses in , and an hourglass sum is the sum of an hourglass’ values.

Task
Calculate the hourglass sum for every hourglass in , then print the maximum hourglass sum.

Note: If you have already solved the Java domain’s Java 2D Array challenge, you may wish to skip this challenge.

Input Format

There are lines of input, where each line contains space-separated integers describing 2D Array ; every value in will be in the inclusive range of to .

Constraints

Output Format

Print the largest (maximum) hourglass sum found in .

Sample Input

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
Sample Output

19
Explanation

contains the following hourglasses:

1 1 1 1 1 0 1 0 0 0 0 0
1 0 0 0
1 1 1 1 1 0 1 0 0 0 0 0

0 1 0 1 0 0 0 0 0 0 0 0
1 1 0 0
0 0 2 0 2 4 2 4 4 4 4 0

1 1 1 1 1 0 1 0 0 0 0 0
0 2 4 4
0 0 0 0 0 2 0 2 0 2 0 0

0 0 2 0 2 4 2 4 4 4 4 0
0 0 2 0
0 0 1 0 1 2 1 2 4 2 4 0
The hourglass with the maximum sum () is:

2 4 4
2
1 2 4

题目大意: 在一个6*6的二维数组中,求出满足hourglass形状的数字之和的最大值。
解题思路:用两个二重循环

#!/bin/python3import sysarr = []for arr_i in range(6):   arr_t = [int(arr_temp) for arr_temp in input().strip().split(' ')]   arr.append(arr_t)m=-100;for i in range(0,4):    for j in range(0,4):        sum=0        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]        m=max(sum,m)print(m)