leetcode560. 和为K的子数组

class Solution {
public:
	int subarraySum(vector<int>& nums, int k) {
		int ans = 0;
		// 核心思想: 从第一个数开始遍历, 以此为开始的点,然后以此向后累加, 
		// 若等于k,那么记录.停止起点,把起点换成原来起点的下一个,继续进行.
		for (int i = 0; i < nums.size(); i++) {
			// start : 起点   sum : 局部和
			int start = i;
			int sum = 0;
			// 首先要防止起点越界, 因为在while循环里对起点进行了自加1 操作
			while (start < nums.size()) {
				sum += nums[start++];
				if (sum == k) {
					ans++;	
				}
			
			}
		}
		return ans;
	}
};

猜你喜欢

转载自blog.csdn.net/weixin_36149892/article/details/80280212