0
点赞
收藏
分享

微信扫一扫

和相同的二元子数组

萍儿的小确幸 2021-09-21 阅读 35
今日算法
题目描述:
示例 1:
示例 2:
思路一:

暴力解法

代码实现:
class Solution {
    public int numSubarraysWithSum(int[] nums, int goal) {
        int count = 0;
        int len = nums.length;
        for (int i = 0; i < len; i++) {
            int sum = 0;
            for (int j = i; j < len; j++) {
                sum += nums[j]; 
                if (sum > goal) {
                    break;
                } else if (sum == goal) {
                    count++;
                } 
                     
            }
        }
        return count;
    }
}
思路二:
代码实现:
class Solution {
    public int numSubarraysWithSum(int[] nums, int goal) {
        int count = 0;
        int len = nums.length;
        int[] arr = new int[len];
        int sum = 0;
        for (int i = 0; i < len; i++) {
            sum += nums[I];
            arr[i] = sum;
        }
        Map<Integer, Integer> map = new HashMap();
        map.put(0,1);
        for (int i = 0; i < len; i++) {
           if (map.containsKey(arr[i] - goal)) {
               int index = map.get(arr[i] - goal);
               count += index;
           }
           Integer value = map.get(arr[I]);
           map.put(arr[i], value == null ? 1 : ++value);
        }
        return count;
    }
}
举报

相关推荐

0 条评论