1. 程式人生 > >和為K的子陣列

和為K的子陣列

給定一個整數陣列和一個整數 k,你需要找到該陣列中和為 的連續的子陣列的個數。

示例 1 :

輸入:nums = [1,1,1], k = 2
輸出: 2 , [1,1] 與 [1,1] 為兩種不同的情況。

說明 :

  1. 陣列的長度為 [1, 20,000]。
  2. 陣列中元素的範圍是 [-1000, 1000] ,且整數 的範圍是 [-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;
    }