leetcode 5471

这题看到题目就想到用前缀和和dp,但是一时间没想到怎么寻找子数组的和。因为随着dp到每一个位置再去遍历前面数组来找有没有和满足target的话,时间复杂度就要来到O(n^2)了。

然后我看了大佬的题解,用map维护前缀和和位置,并且在遍历到某一位置的时候直接用sum[i+1]  - target 输入map来寻找目标前缀和在数组中的位置,这样把本来O(n)的工作变成O(1)了。

原文地址:https://www.cnblogs.com/agnes6/p/13462680.html