RosettaCodeData/Task/Greatest-subsequential-sum/R/greatest-subsequential-sum-1.r

8 lines
268 B
R
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
max.subseq <- function(x) {
cumulative <- cumsum(x)
min.cumulative.so.far <- Reduce(min, cumulative, accumulate=TRUE)
end <- which.max(cumulative-min.cumulative.so.far)
begin <- which.min(c(0, cumulative[1:end]))
if (end >= begin) x[begin:end] else x[c()]
}