第560题 和为 K 的子数组
题目给你一个整数数组nums和一个整数k请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。示例 1输入nums [1,1,1], k 2输出2示例 2输入nums [1,2,3], k 3输出2提示1 nums.length 2 * 104-1000 nums[i] 1000-107 k 107思路因为是子数组,所以要确定两个数组的首位位置,使用sum变量进行动态累加代码示例import java.util.*; public class lc560 { public static void main(String[] args) { Scanner scan new Scanner(System.in); String str scan.nextLine(); int k scan.nextInt(); String[] split str.substring(1, str.length() - 1).split(,); int[] arr new int[split.length]; for (int i 0; i split.length; i) { arr[i] Integer.parseInt(split[i]); } lc560 sol new lc560(); int res sol.subarraySum(arr, k); System.out.println(res); } public int subarraySum(int[] nums, int k) { int res 0; //两层for循环控制首尾数组位置,最后通过sum对k进行对比得出k总和 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){ res; } } } return res; } }

相关新闻