Asked at Wolverine Trading
Theory: Algorithms Under a Complexity BoundRead the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.
A daily PnL series is a list of signed integers. A trading desk wants to know the best run it ever had: the contiguous stretch of days with the largest total PnL.
Implement max_subarray_sum(values) returning the maximum sum over all
non-empty contiguous subarrays of values.
max_subarray_sum([-2, 1, -3, 4, -1, 2, 1, -5, 4])
# 6 (the stretch [4, -1, 2, 1])
max_subarray_sum([-3, -1, -7])
# -1 (a subarray must be non-empty; the least-bad single day wins)
1 <= len(values) <= 200000, values fit in a normal integer range.Only the function above is graded. The variants are the follow-up questions an interviewer asks once you have the sum, and they are what the title refers to. Try them in your head before you look: the Solution tab answers all four.
k days.