我正在尝试实现最大子阵列问题的Brute方法(clrs 4.1-2),我认为我(非常容易)得到它:
PSEUDO-CODE:
BRUTE-MAX-SUB-ARR(A)
1. from = -1 , to = -1, TSUM = -infinity
2. for i=0 to A.length-2
3. sum = 0
4. for j=i to A.length-2
5. sum = sum+ A[i]
6. if (sum > TSUM)
7. TSUM = sum
8. from = i
9. to = j
10. return(from,to,TSUM)
但问题出现的时候只返回一个元素(from = to)
,因此,我们应该考虑from = to
的情况,但这要么排除有用的情况,要么包含多余的情况。
示例:
如果输入为1,-4,3,-4则会返回错误的答案(例如只有3作为第3个元素)。
任何赞赏的帮助。
月亮
编辑:1)天改为A.length
2)我想知道在from = to
时我们如何处理这种情况,最大值为sum
。
3)0
在伪代码的第5行更改为sum
。