[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/arjunmullick/coding-Interview/master/SubArraySubK.java [Back]  [Original]

// https://leetcode.com/problems/subarray-sum-equals-k/
//
class Solution {
    public int subarraySum(int[] nums, int k) {
        int n = nums.length;
        int sum = 0;
        int count = 0;
        
        HashMap map = new HashMap();
        map.put(0,1); // one way to count 0 sum is before start []
        
        for(int i = 0 ; i < n ; i++){
            sum += nums[i];
            int diff = sum - k; //if this value is seen then we have a cont sub array with sum = k
            if(map.containsKey(sum-k)){
                count += map.get(sum-k);
            }
            map.put(sum,map.getOrDefault(sum,0)+1);
        }
        
        return count;
    }
}


// Not optimized 
class Solution2 {
    public int subarraySum(int[] nums, int k) {
        int [] sums = new int[nums.length+1];
        sums[0] = 0;
        for(int i = 1 ; i 

Web Proxy Viewer  |  New URL  |  Original Page