网站建设课程的感想,百度信息流投放在哪些平台,如何在自己电脑上做网站,网站商城维护怎么做LeetCode 560. 和为 K 的子数组
题目描述
给你一个整数数组 nums 和一个整数 k #xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。
思路
思路#xff1a;前缀和
定义数组preSum[nums.length1]#xff0c;在里面计算nums…LeetCode 560. 和为 K 的子数组
题目描述
给你一个整数数组 nums 和一个整数 k 请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。
思路
思路前缀和
定义数组preSum[nums.length1]在里面计算nums数组每一位置上和前面所有数的累加和嵌套循环遍历preSum数组每次用preSum[right]-preSum[left]以计算区间left~right的和若满座条件则子数组个数1
代码
class Solution {public int subarraySum(int[] nums, int k) {int len nums.length;int[] preSum new int[len 1];for (int i 0; i len; i) {preSum[i 1] preSum[i] nums[i];}int count 0;for (int left 0; left len; left) {for (int right 0; right len; right) {if (preSum[right 1] - preSum[left] k) {count;}}}return count;}
}