题目**:给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的子数组的个数 。(连续子序列)https://leetcode-cn.com/problems/subarray-sum-equals-k/
示例 1:
输入:nums = [1,1,1], k = 2
输出:2
示例 2:
输入:nums = [1,2,3], k = 3
输出:2
1、自己定义输入输出:(大厂笔试是不会给输入输出的哦)
public class likou560 {
public static void main(String[] args) {
// 循环输入数组,不知道数组长度;、、、、、、、、、、、、、、、、、、、
Scanner scanner = new Scanner(System.in);
String[] s = scanner.nextLine().split(" ");
int[] nums = new int[s.length];
for (int i = 0; i < s.length; i++) {
nums[i] = Integer.parseInt(s[i]);
}
int k = scanner.nextInt();
// 例如:【1,2,3】
// 先从1往后加
// 然后从2往后加
int ans = 0;
for (int i = 0; i < nums.length; i++) {
int sum = 0;//sum=0,一定要在这里写呀!一次外层循环后,sum重新为0;
for (int j = i; j < nums.length; j++) {
sum += nums[j];
if (sum == k) {
ans++;
}
}
}
System.out.println(ans);
}
}
2、力扣答案:
class Solution {
public int subarraySum(int[] nums, int k) {
int ans = 0;
for (int i = 0; i < nums.length; i++) {
int sum = 0;
for (int j = i; j < nums.length; j++) {
sum += nums[j];
if (sum == k) {
ans++;
}
}
}
return ans;
}
}