给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的子数组的个数 。
子数组是数组中元素的连续非空序列。
示例 1:
输入:nums = [1,1,1], k = 2 输出:2
示例 2:
输入:nums = [1,2,3], k = 3 输出:2
* 需要注意的是,二维遍历有两种,一种是起点遍历,另外一种是终点遍历,
起点遍历如下
for(int i = 0; i< n; i++)
for(int j = i; j < n; j++)
终点遍历如下
for(int i = 0; i< n; i++)
for(int j = i; j >= 0; j--)
本题需要的是终点遍历,并且需要对终点前的n项求和,因此基础上市一个O(n^3)的遍历问题
官方解答如下