Leetcode--560. 和为K的子数组

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。

示例 1 :

输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。
说明 :

数组的长度为 [1, 20,000]。
数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。

思路:哈希表  时间复杂度O(N)

一开始想用滑动窗口做,但是发现负数,然后。。。。滑不动啊

从头开始遍历数组,依次把nums[i]加到sum,用哈希表来存每次的和

HashMap < Integer, Integer >     哈希表的第一个值key指的是sum的值,第二个值value指的是这个值出现的次数

我们寻找sum-k的值出现的次数即可

为什么是sum-k呢?   sum-(sum-k)=k

例如:从i=0开始到当前位置i的和为sum,而如果哈希表里面存在键值为sum-k数,他表示的是从i=0到位置为x的和为sum-k

那么从位置为x+1到位置为i的和就是k,我们只需要观察k的value是多少,也就是他出现了多少次

提交的代码:

class Solution {

    public int subarraySum(int[] nums, int k) {

        int count = 0, sum = 0;

         HashMap < Integer, Integer > map = new HashMap < > ();

         map.put(0, 1);

         for(int i=0;i<nums.length;i++)

         {

             sum+=nums[i];

             if(map.containsKey(sum-k))

             {

                 count+=map.get(sum-k);//获得sum-k出现的次数

             }

             map.put(sum, map.getOrDefault(sum, 0)+1);

//如果这个sum之前出现过,那么给他的次数+1,如果没出现过,那么就是第一次出现,把他添加进哈希表,存的是(sum,1)

         }

         return count;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

细数高光时刻,2020全球科技巨头如何激战AI?

来源&#xff1a;嵌入式资讯精选本文作者&#xff1a;Jiachang Pan编辑&#xff1a;SV Insight最近&#xff0c;百度、谷歌等多家科技巨头相继发布2020年AI发展总结。2020年12月30日&#xff0c;百度以一篇万字长文《百度AI的2020》向2020年告别。2021年1月12日&#xff0c;谷歌…

html表格ui,table表格 - 基础 - H-ui前端框架官方网站

表格系统默认表格表头表头表头类别表格内容表格内容类别表格内容表格内容类别表格内容表格内容....table H-ui默认表头表头表头类别表格内容表格内容类别表格内容表格内容类别表格内容表格内容....table-border 带水平线表头表头表头类别表格内容表格内容类别表格内容表格内容类…

PHP逐行解析文件,并写入数据库

$filePath为文件路径&#xff0c;上传文件则返回文件路径调用下面函数即可public function readText($filePath,&$errorCode,&$errorMessage){ try{ $file fopen($filePath, "r"); // 只读文件 if(empty($file)){ $errorCode …

数据编码信号调制

信道上传送的信号也可以分为&#xff1a; 基带信号&#xff1a;将数字信号1&#xff0c;0直接用两种不同的电压表示&#xff0c;再送到数字信道上去传输 直接表达了要输出的信息的信号。 基带信号在数字信道上去传输&#xff0c;就叫做基带传输 宽带信号&#xff1a;将基带…

人为什么要学数学 ——数学意义的哲学思考

来源&#xff1a;算法与数学之美编辑 ∑Gemini人为什么要学数学&#xff1f;其实很多人并不清楚&#xff0c;甚至存在许多认识误区&#xff0e;有学生认为&#xff0c;“数学除了买东西的时候有点用&#xff0c;考试的时候有点用&#xff0c;没有多大的实际用途&#xff0e;”还…

列表、字典补充点、strJoin方法、set()集合、和深浅拷贝

一 、对之前知识点的补充 str中的join方法&#xff0c;把列表换成字符串 1 s "_".join("ABC") #可迭代对象 2 print(s&#xff09; 3 >>>A_B_C 二、字典和列表在循环的时候不能直接删除&#xff0c;可以复制一个新列表&#xff0c;循环新列表、…

html标签始终在右下角,html+javascript实现图片始终在页面右下角

标题页function setVariables() {imgwidth235; //图像的宽度imgheight19; //图像的高度if (navigator.appName "Netscape") { //netscape下的位置设置horz".left";vert".top";docStyle"document.";styleDoc"";innerW"…

Gary Marcus:AI 可以从人类思维中学习的11个启示

来源&#xff1a;AI科技评论作者&#xff1a;Gary Marcus、Ernest Davis编译&#xff1a;陈彩娴1969 年图灵奖得主、MIT 人工智能实验室创始人马文明斯基&#xff08;Marvin Minsky&#xff09;在其1986年著作《心智社会》&#xff08;The Society of Mind&#xff09;一书中曾…

17-比赛2 C - Maze (dfs)

Pavel loves grid mazes. A grid maze is an n  m rectangle maze where each cell is either empty, or is a wall. You can go from one cell to another only if both cells are empty and have a common side. Pavel drew a grid maze with all empty cells forming a co…

html div 知识点,HTML知识点总结之div、section标签

div元素div是块级元素&#xff0c;相当于一个容器&#xff0c;在语义上不代表任何特定类型的内容。主要用作大的框架布局&#xff0c;也就是说网页的骨架主要通过div来架设的&#xff0c;而网页的血肉则是有span、p或者ul等元素完成。section元素标签是HTML5新增的语义化标签&a…

我们的大脑,足以理解大脑本身吗?

来源&#xff1a; 利维坦树突&#xff08;红色&#xff09;神经元的分支过程&#xff0c;接收突触信息的突出棘的渲染&#xff0c;以及来自小鼠大脑皮层的饱和重建&#xff08;多色圆柱体&#xff09;。© Lichtman Lab at Harvard University利维坦按&#xff1a;关于大脑…

Leetcode--17.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例: 输入&#xff1a;"23" 输出&#xff1a;["ad", "ae", "af…

博弈论模型总结

博弈论五大模型 前四大模型的深入理解 Bash博弈模型 有一堆数量为n的石头&#xff0c;双方轮流每次从堆中取至少1个石头最多m个石头&#xff0c;谁先取完谁赢。 设存在整数k和r使方程**nk*(m1)r**成立,当r0时先手必败&#xff0c;否则先手必赢。 结论&#xff1a;n%(m1) 0, 先…

安全技术可以采用计算机安全,2017年计算机三级《信息安全技术》习题

2017年计算机三级《信息安全技术》习题信息安全技术主要培养熟练掌握网络设备的安装、管理和维护&#xff0c;能分析企业网络和信息系统安全漏洞、及时解决网络安全问题&#xff0c;并能够根据企事业单位业务特点设计制作安全的电子商务/政务网站的专业人员。以下是小编整理的2…

福布斯:14位技术专家预测,未来哪些行业将被AI颠覆?

来源&#xff1a;Forbes转自&#xff1a;新智元未来&#xff0c;哪些行业将从人工智能中受益&#xff1f;14位技术专家对哪些行业和部门最终将从AI中受益最大进行了预测。哪些行业将受益于AI&#xff1f;目前&#xff0c;人工智能和机器学习已进入许多不同的行业&#xff0c;改…

P3195 [HNOI2008]玩具装箱TOY

P3195 [HNOI2008]玩具装箱TOY 题目描述 P教授要去看奥运&#xff0c;但是他舍不下他的玩具&#xff0c;于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩&#xff0c;其可以将任意物品变成一堆&#xff0c;再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具…

Leetcode--671. 合并二叉树

给定两个二叉树&#xff0c;想象当你将它们中的一个覆盖到另一个上时&#xff0c;两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠&#xff0c;那么将他们的值相加作为节点合并后的新值&#xff0c;否则不为 NULL 的节点将直…

吕述望 计算机网络专家,特稿: 中科院吕述望教授:互联网名不符实

国际中华智慧学会创新智慧研究通讯编号&#xff1a;YT-2012-007发布日期&#xff1a;2012年8月28日吕述望教授认为中国互联网名不符实中国香港讯&#xff1a;月前&#xff0c;中国工信部部长隆重宣布&#xff0c;将加快面向全新框架未来互联网的技术研发前沿布局&#xff0c;力…

打开AI芯片的“万能钥匙”

来源&#xff1a;雷锋网 作者&#xff1a;包永刚雷锋网按&#xff0c;新推出的AI芯片因架构的独特性和软件的易用性增加了客户尝试和迁移的成本&#xff0c;因此&#xff0c;软件成为了能否快速、低成本迁移的关键。现在普遍的做法是在TensorFlow写一些后端集成新硬件&#xff…

python2.7 threading RLock/Condition文档翻译 (RLock/Condition详解)

RLock Objects 可重入锁是一个同步原语&#xff0c;它可以被同一个线程多次获取。在内部&#xff0c;除了原始锁使用的锁定/解锁状态之外&#xff0c;它还使用“线程拥有”和“递归级别”的概念。在锁定状态下&#xff0c;某些线程拥有锁&#xff1b;在未锁定状态下&#xff0c…