Make locally optimal choices at each step to reach a global optimum
2 standard techniques
Running sum resets when it goes negative.
Track farthest reachable index.