int bestSubarray(int[] values) {
int best = values[0];
int current = values[0];
for (int i = 1; i < values.length; i++) {
current = Math.max(values[i], current + values[i]);
best = Math.max(best, current);
}
return best;
}
def best_subarray(values: list[int]) -> int:
best = current = values[0]
for value in values[1:]:
current = max(value, current + value)
best = max(best, current)
return best
def bestSubarray(values: Array[Int]): Int =
var current = values(0)
var best = values(0)
for value <- values.drop(1) do
current = value.max(current + value)
best = best.max(current)
best
int bestSubarray(const std::vector<int>& values) {
int current = values[0], best = values[0];
for (int i = 1; i < values.size(); i++) {
current = std::max(values[i], current + values[i]);
best = std::max(best, current);
}
return best;
}