560.和为K的子数组

server/2024/11/15 4:39:49/

题目

给你一个整数数组 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

思路

这道题我第一想法是滑动窗口,后面发现滑动窗口适合求那种窗口一直滑然后找极致的题目,这里显然不是,它要所有可能,然后我就往动态规划和前后缀方向靠,发现前缀和好像能做,而且能在O(n)内做出来

C++代码如下:

class Solution {
public:int subarraySum(vector<int>& nums, int k) {unordered_map<int,int> map = {{0,1}}; //0的情况也有一个,也得算进去int sum = 0,ans = 0;for(auto& num:nums){sum += num;int cur = sum - k;if(map.count(cur)){ans += map[cur];}map[sum] += 1;}return ans;}
};

python代码如下:

class Solution(object):def subarraySum(self, nums, k):map = {0:1}ans,sum = 0,0for(num:nums):sum += numans += map.get(sum-k,0)map[sum] = map.get(sum,0)+1return ans

也可以使用defaultdict

class Solution(object):def subarraySum(self, nums, k):map = defaultdict(int)map[0] = 1ans,sum = 0,0for(num:nums):sum += numans += map[sum-k]map[sum] += 1return ans


http://www.ppmy.cn/server/38149.html

相关文章

seo伪原创文章工具,批量生成文章效率更高

在seo优化工作中&#xff0c;网站更新文章是每个seo人员必做的工作&#xff0c;每天定时定点的更新文章有利于网站的排名&#xff0c;但是长期需要写文章也会让seo人员陷入写作困境&#xff0c;如是&#xff0c;很多seo人员也都有自己的解决方法&#xff0c;他们会选择用seo伪原…

DORIS参数配置

参数配置 根据参数的生效方式&#xff0c;它们被划分为静态参数和动态参数两类。静态参数在修改后需要重新启动服务才能生效&#xff0c;而动态参数则允许立即生效&#xff0c;无需重新启动服务。 FE动态参数 LOG相关配置 参数 默认值 描述 qe_slow_log_ms 5000 Slow q…

纯血鸿蒙APP实战开发——短视频切换实现案例

短视频切换实现案例 介绍 短视频切换在应用开发中是一种常见场景&#xff0c;上下滑动可以切换视频&#xff0c;十分方便。本模块基于Swiper组件和Video组件实现短视频切换功能。 效果图预览 使用说明 上下滑动可以切换视频。点击屏幕暂停视频&#xff0c;再次点击继续播放…

纯 CSS 检测文本是否溢出

介绍一个CSS检测文本溢出的小技巧。 一直以来&#xff0c;CSS 都无法很好的检测出一段文本是否溢出。但这又是一个非常普遍的需求&#xff0c;比如多行文本展开&#xff0c;展开按钮只有在文本溢出的时候才出现 由于无法直接CSS判断&#xff0c;这使得不得不借助 JavaScript或…

视频号创作者分成4.0,软件无脑原创,轻松过分成计划,日入600+

详情介绍 今天给大家带来的项目是《视频号创作者分成4.0&#xff0c;软件无脑原创&#xff0c;轻松过分成计划&#xff0c;日入600》

QT 客户端软件开发

QT 是一种功能强大且灵活的跨平台应用程序开发框架&#xff0c;但也存在一些技术难点&#xff0c;需要开发者仔细考虑和克服。以下是一些常见的 QT 软件开发的技术难点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 跨平台兼容性…

美易官方:1929年要重演?传奇投资者再发美股暴跌警告

近年来&#xff0c;全球经济和金融市场的波动不断加剧&#xff0c;使得投资者们倍感焦虑。在这样的背景下&#xff0c;一些传奇投资者的言论和预测备受关注。最近&#xff0c;一位传奇投资者再次发出警告&#xff0c;称1929年的股市崩盘可能会重演&#xff0c;这引发了市场的广…

golang中的继承和组合的区别

go语言中的继承 指的是一个结构体中采用匿名的方式包含另外一个结构体 这个就叫做继承&#xff0c; 注意这里的匿名 组合 一个结构体用命名的方式包含另外一个结构体&#xff0c;这个就叫做组合 继承代码示例 type A struct {Name stringAge int}type B struct {Addr string…