LeetCode 560 和为K的子数组

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

思路:

根据题目连续子数组和 --> 前缀和。

利用hashmap存储前缀和与其出现的次数。

从前往后遍历前缀和数组:

由sum[right] - sum[left] == k(后 - 前)得知判断hashmap里是否存在sum[i] - k,累加其出现的次数;以及特判一下当前的sum[i]是否 == k。

最后将sum[i]存进hashmap中。

代码:

class Solution {
    public int subarraySum(int[] nums, int k) {
        int[] sum = new int[nums.length + 1];
        for (int i = 1; i < sum.length; i++) {
            sum[i] = sum[i - 1] + nums[i - 1];
        }

        int count = 0;
        Map<Integer,Integer> map = new HashMap();
//        r - l == k
        for (int i = 1; i < sum.length; i++) {
            if (sum[i] == k ){
                count++;
            }
            if (map.containsKey(sum[i] - k)){
                count += map.get(sum[i] - k);
            }
            if (map.containsKey(sum[i])){
                map.put(sum[i],map.get(sum[i]) + 1);
            }else {
                map.put(sum[i],1);
            }
        }

        return count;
    }
}

相关推荐

  1. K数组LeetCode 560

    2024-03-12 03:04:03       58 阅读
  2. leetcode560k数组

    2024-03-12 03:04:03       57 阅读
  3. LeetCode 560 K数组

    2024-03-12 03:04:03       44 阅读
  4. 560.K数组

    2024-03-12 03:04:03       30 阅读
  5. LeetCode-热题100:560. K 数组

    2024-03-12 03:04:03       44 阅读
  6. LeetCode刷题记录】560. K 数组

    2024-03-12 03:04:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 03:04:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 03:04:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 03:04:03       87 阅读
  4. Python语言-面向对象

    2024-03-12 03:04:03       96 阅读

热门阅读

  1. LeetCode904:水果成篮

    2024-03-12 03:04:03       40 阅读
  2. 【Leetcode】top 100 子串

    2024-03-12 03:04:03       45 阅读
  3. [力扣 Hot100]Day50 二叉树中的最大路径和

    2024-03-12 03:04:03       42 阅读
  4. LaTex 笔记

    2024-03-12 03:04:03       49 阅读
  5. Docker部署的MySQL容器数据备份与导入

    2024-03-12 03:04:03       53 阅读
  6. skynet cluster集群笔记

    2024-03-12 03:04:03       39 阅读
  7. 无人机避障技术

    2024-03-12 03:04:03       35 阅读
  8. 嵌入式学习 Day 31

    2024-03-12 03:04:03       41 阅读
  9. redis进阶以及springboot连接使用redis

    2024-03-12 03:04:03       44 阅读
  10. LeetCode 第 388 场周赛个人题解

    2024-03-12 03:04:03       39 阅读
  11. DDL、DML 和 DQL区分

    2024-03-12 03:04:03       49 阅读