zoukankan      html  css  js  c++  java
  • Number of subarrays having sum exactly equal to k(explanation for 437. Path Sum III of leetcode)

    https://www.geeksforgeeks.org/number-subarrays-sum-exactly-equal-k/

    讲解的详细

    看这道题是为了解决https://leetcode.com/problems/path-sum-iii/

    import java.util.HashMap;
    import java.util.Map;
    
    public class test {
        static int findSubarraySum(int arr[],int sum){
            Map<Integer,Integer> preSum=new HashMap<>();
            int res=0,curSum=0;
            for(int a:arr) {
                curSum+=a;
                if(curSum==sum){
                    res++;
                    continue;
                }
                if(preSum.containsKey(curSum-sum)){//如果当前的curSum比sum大,就去找是否之前加过这个差值,那么为了等于sum,我们现在可以知道,只要之前不加这个差值就可以
                    res+=preSum.get(curSum-sum);
                }
                preSum.put(curSum,preSum.getOrDefault(curSum,0)+1);
            }
            return res;
        }
        public static void main(String[] args) {
            int[] arr={10, 2, -2, -20, 10};
            System.out.println(findSubarraySum(arr,-10));
        }
    }
  • 相关阅读:
    Django-session+CBV+ORM应用
    Django-session实现登陆
    Django-ORM-操作
    事件委托
    数组去重的方法
    闭包
    Javascript中继承
    函数调用的方式
    原型链的理解
    jsonp
  • 原文地址:https://www.cnblogs.com/albert67/p/10416402.html
Copyright © 2011-2022 走看看