【发布时间】:2010-08-07 23:04:00
【问题描述】:
例如,在输入数组 [0,1,4,6,8,9,12] 中,最大的连续均匀间隔数集是 {0,4,8,12},下一个最大的数是' t 最大的子集是 {4,6,8}。
【问题讨论】:
-
至少尝试提出一个问题(动词+问号),并尝试解释您考虑过的方法。
-
你的意思是依次增加?如果你有 [a_1,a_2,a_3,...,a_n],你想要 a_i
例如,在输入数组 [0,1,4,6,8,9,12] 中,最大的连续均匀间隔数集是 {0,4,8,12},下一个最大的数是' t 最大的子集是 {4,6,8}。
【问题讨论】:
您可以使用两遍方法:
diffarray = []
for (i= 0..array.size-2) {
for (j= i..array.size-1) {
diffarray[i][j] = array[j] - array[i]
}
}
diffarray 是:
0 1 4 6 8 9 12
[0] [1] [2] [3] [4] [5] [6]
0 [0] . 1 4 6 8 9 12
1 [1] . . 3 5 7 8 11
4 [2] . . . 2 4 5 8
6 [3] . . . . 2 3 6
8 [4] . . . . . 1 4
9 [5] . . . . . . 3
您现在可以遍历每行中的所有元素,然后“向前”(向下和向右移动)。这可以递归地完成;记住要步进与行相同数量的列。
【讨论】: