• LeetCode hot100-10


    560. 和为 K 的子数组
    给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
    
    子数组是数组中元素的连续非空序列。
    
    • 1
    • 2
    • 3
    • 4

    我的解法,就是很简单的那种两层循环,没啥好说的。这题是不会超时,能通过。

    class Solution {
        public int subarraySum(int[] nums, int k) {
            int total = 0;
            for (int i = 0; i < nums.length; i++) {
                int j = i + 1;
                int sum = nums[i];
                if(sum == k){
                    total++;
                }
                while (j < nums.length) {
                    sum += nums[j];
                    if (sum == k) {
                        total++;
                    }
                    j++;
                }
            }
            return total;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    官方解法
    和最开始做的几道题很像,都是用map来减少一层循环。但是这题还多了一些弯弯。思想就是从数组下标0到数据下标i,这一串数字的和记为sum1,从数据从数组下标0到数据下标j,这一串数字的和记为sum2。如果sum2-sum1=k的话,下标i+1到j就是一个符合条件的字数组。
    编码时就是把各个和存进map的key,value存的是这个和出现的次数。

    public class Solution {
        public int subarraySum(int[] nums, int k) {
            int count = 0, pre = 0;
            HashMap < Integer, Integer > mp = new HashMap < > ();
            mp.put(0, 1);
            for (int i = 0; i < nums.length; i++) {
                pre += nums[i];
                if (mp.containsKey(pre - k)) {
                    count += mp.get(pre - k);
                }
                mp.put(pre, mp.getOrDefault(pre, 0) + 1);
            }
            return count;
        }
    }
    
    作者:力扣官方题解
    链接:https://leetcode.cn/problems/subarray-sum-equals-k/solutions/238572/he-wei-kde-zi-shu-zu-by-leetcode-solution/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    dubbo源码解析之dubbo配置解析
    C#,入门教程——解决方案资源管理器,代码文件与文件夹的管理工具
    2009-2021系统架构设计师(高级)历年论文题目
    python实现的TopologySort
    Linux文件系统调用接口&&文件描述符的理解
    多表的查询
    Star CCM+ 202206 (17.04) 详细安装步骤
    独立站品牌出海盛行,大批卖家转型逐利
    1.2 向量代数
    持续集成部署-k8s-服务发现-Service
  • 原文地址:https://blog.csdn.net/alike_meng/article/details/136679041