和為K的子陣列
阿新 • • 發佈:2018-12-11
給定一個整數陣列和一個整數 k,你需要找到該陣列中和為 k 的連續的子陣列的個數。
示例 1 :
輸入:nums = [1,1,1], k = 2 輸出: 2 , [1,1] 與 [1,1] 為兩種不同的情況。說明 :
- 陣列的長度為 [1, 20,000]。
- 陣列中元素的範圍是 [-1000, 1000] ,且整數 k 的範圍是 [-1e7, 1e7]。
思路:直接用兩次遍歷,左邊界依次後移,尋找所有滿足和為k的子陣列
public static int subarraySum(int[] nums, int k) { int flag=0; for(int i=0;i<nums.length;i++){ int sum=nums[i]; if(sum==k){ flag++; } for(int j=i+1;j<nums.length;j++){ sum+=nums[j]; if(sum==k){ flag++; System.out.println("sum="+sum); } } } System.out.println("flag="+flag); return flag; }