这个题,一开始是觉得应该用滑动窗口做,或者动态规划做,可是思路感觉不是特别清晰。看了答案之后才懂的,如1所示是未优化过的,这个算法的时间复杂度是O(N),空间复杂度是O(N)。这个思路简单地说就是用前缀和,在遍历数组的过程中,将前缀和一一记下,并且判断某个时刻所对应的“k-前缀和”的值是否在字典中以及为多少,将该数字加到答案上。啊话说不知道为什么,用现成的defaultdict反而速度快一点。
PREVIOUSlc098.验证二叉搜索树
NEXTlc953.验证外星语词典
这个题,一开始是觉得应该用滑动窗口做,或者动态规划做,可是思路感觉不是特别清晰。看了答案之后才懂的,如1所示是未优化过的,这个算法的时间复杂度是O(N),空间复杂度是O(N)。这个思路简单地说就是用前缀和,在遍历数组的过程中,将前缀和一一记下,并且判断某个时刻所对应的“k-前缀和”的值是否在字典中以及为多少,将该数字加到答案上。啊话说不知道为什么,用现成的defaultdict反而速度快一点。