LeetCode Hot Code —— 和为K的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k的子数组的个数

子数组是数组中元素的连续非空序列。

示例 1:

复制代码
输入:nums = [1,1,1], k = 2
输出:2

示例 2:

复制代码
输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104

  • -1000 <= nums[i] <= 1000

  • -107 <= k <= 107

    class Solution {
    public:
    // 前缀和
    int subarraySum(vector<int>& nums, int k)
    {
    int ans = 0;
    vector<int> arr(nums.size(), 0);
    arr[0] = nums[0];
    map<int, int> tu;
    for (int i = 1; i < nums.size(); i++)
    {
    arr[i] = arr[i - 1] + nums[i];
    }
    for (int i = 0; i < nums.size(); i++)
    {
    if (arr[i] == k)
    {
    ans++;
    }
    int num = arr[i] - k;
    if (tu.count(num) == 1)
    {
    ans += tu[num];
    }
    tu[arr[i]]++;

    复制代码
      }
      return ans;

    }
    };

相关推荐
承渊政道3 小时前
【优选算法】(实战剖析链表核心操作技巧)
开发语言·数据结构·c++·vscode·学习·算法·链表
Boop_wu3 小时前
[Java算法] 递归(1)
java·算法·深度优先
stolentime3 小时前
树套树+标记永久化:[POI 2006] TET-Tetris 3D&&SPOJ1741 TETRIS3D - Tetris 3D题解
c++·算法·线段树·树套树·标记永久化
XiYang-DING3 小时前
【LeetCode】链表 + 快慢指针找倒数结点 | 链表中倒数第k个结点
算法·leetcode·链表
一轮弯弯的明月4 小时前
有序整数对个数-欧拉函数
java·算法·蓝桥杯·学习心得
dazzle4 小时前
机器学习算法原理与实践-入门(十):基于PaddlePaddle框架的线性回归
算法·机器学习·paddlepaddle
2501_940315264 小时前
【无标题】1.用哈希表做两数之和
算法·哈希算法·散列表
浅念-4 小时前
Linux 进程与操作系统
linux·运维·服务器·网络·数据结构·笔记·网络协议
计算机安禾4 小时前
【数据结构与算法】第20篇:二叉树的链式存储与四种遍历(前序、中序、后序、层序)
c语言·开发语言·数据结构·c++·学习·算法·visual studio