LeetCode Subarray Sum Equals K

原题链接在这里:https://leetcode.com/problems/subarray-sum-equals-k/description/

题目:

Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.

Example 1:

Input:nums = [1,1,1], k = 2
Output: 2

Note:

  1. The length of the array is in range [1, 20,000].
  2. The range of numbers in the array is [-1000, 1000] and the range of the integer k is [-1e7, 1e7].

题解:

计算subarray的和为k的个数.

保存从头到当前值和sum 以及 对应这个和的个数. 若是之前出现了sum-k说明这一段相加就是k. 更新和.

Note: 初始HashMap<Integer, Integer> hm 时需要先把和为0的情况加进去. 最开始什么都没有, 所以hm需要加上<0,1>这个对应关系.

Time Complexity: O(nums.length).

Space: O(nums.length).

AC Java:

 1 class Solution {
 2     public int subarraySum(int[] nums, int k) {
 3         if(nums == null || nums.length == 0){
 4             return 0;
 5         }
 6         
 7         HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
 8         hm.put(0, 1);
 9         int res = 0;
10         int sum = 0;
11         for(int num : nums){
12             sum += num;
13             if(hm.containsKey(sum - k)){
14                 res += hm.get(sum - k);
15             }
16             
17             hm.put(sum, hm.getOrDefault(sum, 0)+1);
18         }
19         return res;
20     }
21 }

类似Two Sum, Continuous Subarray Sum, Subarray Product Less Than K.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/7761030.html

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

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

相关文章

水木告白工作室:Java从零入门之模仿头条资讯(一)

总体设计 一 &#xff1a;Java语言基础 二 &#xff1a;Spring入门&#xff0c;模板语法和渲染 三 &#xff1a;数据库交互iBatis集成 四&#xff1a; 用户注册 登陆 管理 五&#xff1a; 资讯发布 图片上传 资讯首页 六&#xff1a; 评论中心 站内信 七&#xff1a; Redis入门…

架构师不可不知的十大可扩展架构

2019独角兽企业重金招聘Python工程师标准>>> 可扩展性正是如今软件设计领域最值得优先考虑的要素。然而&#xff0c;计算机科学家们还无法了解一套单独的架构如何才能扩展至各类应用环境当中。相反&#xff0c;我们在数量繁多的方案中所设计出的可扩展性架构&#x…

Winform开发框架中工作流模块的业务表单开发

在我们开发工作流的时候&#xff0c;往往需要设计到具体业务表单信息的编辑&#xff0c;有些是采用动态编辑的&#xff0c;有些则是在开发过程中处理的&#xff0c;各有各的优点&#xff0c;动态编辑的则方便维护各种各样的表单&#xff0c;但是数据的绑定及处理则比较麻烦&…

JavaScript --- 跨浏览器的事件处理程序

var EventUtil {addHandler: function(element, type, handler) { // 添加事件处理程序if (element.addEventListener) { // DOM2级事件处理程序element.addEventListener (type, handler, false) ;} else if (element.attachEvent) { // IE事件处理程序element.attachEve…

RabbitMQ学习总结(2)——安装、配置与监控

2019独角兽企业重金招聘Python工程师标准>>> 一、安装 1、安装Erlang 1&#xff09;系统编译环境&#xff08;这里采用linux/unix 环境&#xff09; ① 安装环境 虚拟机&#xff1a;VMware Workstation 10.0.1 build Linux系统&#xff1a;CentOS6.5 rabbitMQ官网下…

nginx针对某个url限制ip访问,常用于后台访问限制

nginx针对某个url限制ip访问&#xff0c;常用于后台访问限制 假如我的站点后台地址为&#xff1a; http://www.abc.net/admin.php 那么我想限制只有个别ip可以访问后台&#xff0c;那么需要在配置文件中增加&#xff1a;location ~ .*admin.* {allow 1.1.1.1;allow 12.12.12.0/…

JavaScript --- 跨浏览器的事件对象

var EventUtil{addHandler: function(element, type, handler){ // 添加事件方法if (element.addEventListener){element.addEventListener(type, handler, false); // 添加监听事件,第3个参数false代表:冒泡阶段} else if (element.attachEvent) {element.attachEvent("…

第一个C#程序

第一个C#程序 新建项目-选择模板--控制台应用程序 还不会用学习版执行程序,没找到执行(不调试)菜单,调试出一堆线程状况.用了VS旗舰版完成, 看见C#在VS中的编译和执行时分开的,eclipse确实叫预编译软件,代码写好没错可以直接运行,编译由eclipse完成, 提问:为啥VS不这样设置?是…

XML序列化与反序列化

C#对于XML的序列化与反序列化提供了很好的支持&#xff0c;我们只需要引用System.Xml的命名空间即可&#xff0c;无需使用第三方库&#xff0c;下面简单实现了一个XML的序列化与反序列化的帮助类。 1.序列化&#xff1a; 先声明一个变量var settings new XmlWriterSettings&am…

CODE[VS] 3411 洪水

题目描述 Description小浣熊松松和朋友到野外露营&#xff0c;没想到遇上了&pi;年一次的大洪水&#xff0c;好在松松是一只爱观察的小浣熊&#xff0c;他发现露营地的地形和洪水有如下性质&#xff1a; ①露营地可以被看做是一个N*M的矩形方阵&#xff0c;其中左上角坐标为…

JavaScript --- 取得鼠标事件的坐标

说明: clientX和clientY属性&#xff1a;事件发生时,鼠标指针在视口中的水平和垂直坐标。pageX和pageY属性&#xff1a;鼠标光标在页面中的位置。screenX和screenY属性&#xff1a;鼠标事件发生时&#xff0c;鼠标指针相对于整个屏幕的坐标信息。IE8及更早的版本不支持事件对象…

JavaScript语义基础

变量&#xff08;Variables&#xff09; Variables是你存储数据的容器。声明一个变量需要使用关键字var&#xff0c;然后输入变量的名称。 1 var myvar; 定义一个变量后&#xff0c;可以赋予变量一个值&#xff1a; 1 myvar "mxp"; 可以将上述操作写在一行&#x…

spring面试专题一点通,再也不用担心面试不会回答了

前言文章内容有点小长&#xff0c;希望你能耐心阅读&#xff0c;更多Java面试题以及学习资料获取方式&#xff1a;加Qun:1017-599-436免费获取。还有更多包括电子书&#xff0c;PDF文档以及视频精讲可以分享给大家&#xff0c;内容覆盖很广&#xff0c;分布式缓存、RPC 调用、Z…

bzoj4033 [HAOI2015]树上染色

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id4033 重要的思路&#xff1a;与其考虑每一个点对的贡献&#xff0c;不如考虑每条边的贡献&#xff08;被经过了几次&#xff09;&#xff01; 树形dp。 总共的黑点和白点的个数都是已知的&#xff0c;所以知…

JavaScript --- 表单focus,blur,change事件的实现

假设有一个文本框&#xff0c;我们只允许用户输入数值。为此&#xff0c;我们希望: 1.利用focus事件修改文本框内容&#xff0c; 2.利用blur事件回复文本框的内容, 3.利用change事件在用户输入了非数值字符时再次修改背景颜色。 var EventUtil {addHandler: function(element…

mysql日期格式转化

select DATE_FORMAT( 20170701, %Y-%m-%d);先挖坑转载于:https://www.cnblogs.com/tuhooo/p/7766221.html

Solr管理页面 上

DashBoard&#xff08;仪表盘&#xff09;Logging&#xff08;日志&#xff09;Core Admin&#xff08;Core管理&#xff09;在Solr中&#xff0c;每一个Core&#xff0c;代表一个索引库&#xff0c;里面包含索引数据及其配置信息。Solr中可以拥有多个Core&#xff0c;也就同时…

GRPC协议的相关原理

GRPC的Client与Server&#xff0c;均通过Netty Channel作为数据通信&#xff0c;序列化、反序列化则使用Protobuf&#xff0c;每个请求都将被封装成HTTP2的Stream&#xff0c;在整个生命周期中&#xff0c;客户端Channel应该保持长连接&#xff0c;而不是每次调用重新创建Chann…

Echarts --- 各个省份的坐标

纯手打…效果如下 1.新疆: [86.61 , 40.79] 2.西藏:[89.13 , 30.66] 3.黑龙江:[128.34 , 47.05] 4.吉林:[126.32 , 43.38] 5.辽宁:[123.42 , 41.29] 6.内蒙古:[112.17 , 42.81] 7.北京:[116.40 , 40.40 ] 8.宁夏:[106.27 , 36.76] 9.山西:[111.95,37.65] 10.河北:[115.21 , 38.…

xxx征集系统项目目标文档

问题 每四人一组&#xff0c;讨论结束后&#xff0c;每人根据课堂讨论结果提交一份系统利益相关者案例。撰写撰写项目目标文档&#xff08;目标&#xff0c;好处&#xff0c;度量标准。&#xff09; 项目目标文档 目标&#xff1a; &#xff08;1&#xff09;需求填报 &#xf…