RosettaCodeData/Task/Greatest-subsequential-sum/R/greatest-subsequential-sum-1.r
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

7 lines
268 B
R

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()]
}