您将得到一个由整数组成的二维数组A,长度为N。您的任务是在数组中找到N个元素的直线(水平,垂直或对角线),该直线产生最高的总和,然后返回该总和。
例
N = 3, A =
3 3 7 9 3
2 2 10 4 1
7 7 2 5 0
2 1 4 1 3
该数组有34条有效行,其中包括
Vertical
[3] 3 7 9 3
[2] 2 10 4 1
[7] 7 2 5 0
2 1 4 1 3 [3,2,7] = 12
Horizontal
3 3 7 9 3
2 2 10 4 1
7 7 [2] [5] [0]
2 1 4 1 3 [2,5,0] = 7
Diagonal
3 3 [7] 9 3
2 2 10 [4] 1
7 7 2 5 [0]
2 1 4 1 3 [7,4,0] = 11
最大行是
3 3 7 [9] 3
2 2 [10] 4 1
7 [7] 2 5 0
2 1 4 1 3 [7,10,9] = 26
注意:线条可能不会缠绕在阵列的边缘。
输入项
- AX by Y 2-D数组A,且X,Y>0。数组的每个元素都包含一个整数值,该值可以为正,零或负。如果愿意,您可以采用其他格式(例如一维数组列表)接受此数组。
- 一个不大于max(X,Y)的正整数N。
输出量
- 表示可以在数组中找到的最大行总和的单个值。请注意,你不会需要提供该行或所在的各个元素。
测试用例
N = 4, A =
-88 4 -26 14 -90
-48 17 -45 -70 85
22 -52 87 -23 22
-20 -68 -51 -61 41
Output = 58
N = 4, A =
9 4 14 7
6 15 1 12
3 10 8 13
16 5 11 2
Output = 34
N = 1, A =
-2
Output = -2
N = 3, A =
1 2 3 4 5
Output = 12
N = 3, A =
-10 -5 4
-3 0 -7
-11 -3 -2
Output = -5
@KevinCruijssen当然可以,添加
—
user2390246
顺便说一句:所有带有解释的答案都将对我有所帮助,但否则,我无法判断我不熟悉的语言(其中多数是这些语言)。
—
user2390246 '17
[[-10, -5, 4],[-3, 0, -7],[-11,-3,-2]]
->-5
(4 + -7 + -2
)