とKのサブ配列


整数配列と整数kを指定するには、その配列とkの連続するサブ配列の個数を見つける必要があります.
例1:
  :nums = [1,1,1], k = 2

 
接頭辞和を用いて、2つの接頭辞和の差がKであるか否かを計算する2つの方法を示す.
もう1つは直接暴力の解で、実は2つはすべて暴力の解で、理解が違います.
public int subarraySum(int[] nums, int k) {
        //        
        int[] preSum = new int[nums.length + 1];
        int count = 0;
        for (int i = 0; i < nums.length; i++)
            preSum[i + 1] = preSum[i] + nums[i];

        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j <= nums.length; j++) {
                if (preSum[j] - preSum[i] == k)
                    count++;
            }
        }
        return count;
    }




public int subarraySum(int[] nums, int k) {
        int len = nums.length;
        int sum = 0;
        int count = 0;
        for(int i=0;i