【LeetCode刷题】前缀和解决问题:560.和为k的子数组
【LeetCode刷题】Day 16
- 题目1:560.和为k的子数组
- 思路分析:
- 思路1:前缀和 + 哈希表

题目1:560.和为k的子数组

思路分析:
问题1:怎样找到数组所有子数组?
方式一:暴力枚举出来,以i开始,列出以i开头的所有子数组[i,j](i <= j<= size-1)再i++,列出下一个位置开头的所有子数组。
方式二:前缀和思想,我们用dp[i]来表示[0,i]的数组,要找以i结尾的所有子数组,只需要 dp[i]-dp[j](0<= j <= i-1) 就可以表示所有以i结尾的子数组
下图就这题引入:


问题2:为什么这样转换?
因为在求以i结尾的所有子数组的和时,i和k是不变的,他们的差值也是固定值,所以问题就转换为:前缀和为k的数量,注意: 0<= j <=i-1
问题3:怎样不创建前缀和数组,但统计数量?
用一个int sum来就可以实现,再加上哈希表,就能解决这些问题。
思路1:前缀和 + 哈希表
代码实现:
class Solution {
public:int subarraySum(vector<int>& nums, int k) {//前缀和+哈希表unordered_map<int,int> hash;int sum=0 , ret=0;//处理当sum[i]本身等于k的情况hash[0] = 1;for(auto i : nums){sum+=i;//判断是否存在值为sum-k的key,有就加数量if(hash.count(sum - k)) ret+=hash[sum-k];hash[sum]++;}return ret;}
};
LeetCode链接:560.和为k的子数组
相关文章:
【LeetCode刷题】前缀和解决问题:560.和为k的子数组
【LeetCode刷题】Day 16 题目1:560.和为k的子数组思路分析:思路1:前缀和 哈希表 题目1:560.和为k的子数组 思路分析: 问题1:怎样找到数组所有子数组? 方式一:暴力枚举出来&#x…...
DTU在城市智慧供热上的应用:引领供热行业的智能化革新
随着城市化的快速推进和人们对舒适生活需求的日益增长,供热系统作为城市基础设施的重要组成部分,其智能化、高效化的发展已成为必然趋势。在这一进程中,DTU(Data Transfer Unit,数据传输单元)以其独特的优势…...
LeetCode | 58.最后一个单词的长度
这道题要求最后一个单词的长度,第一个想到的就是反向遍历字符串,寻找最后一个单词并计算其长度。由于尾部可能会有’ ,所以我们从后往前遍历字符串,找到第一个非空格的字符,然后记录下到下一个空格前依次有多少个字母即…...
202479读书笔记|《你是人间的四月天》——谁又能参透这幻化的轮回, 谁又大胆的爱过这伟大的变幻?
202479读书笔记|《你是人间的四月天》——谁又能参透这幻化的轮回, 谁又大胆的爱过这伟大的变幻? 散文诗歌书信 《你是人间的四月天(果麦经典)》作者林徽因,才女的散文,诗歌,书信集选。很值得一…...
近期docker镜像加速器被封杀,需要的请看此内容 点赞加关注
{ “registry-mirrors”: [“https://docker.m.daocloud.io”], “insecure-registries”: [“harbor.sunya.com”], “exec-opts”: [“native.cgroupdriversystemd”], “data-root”: “/data/docker”, “log-driver”: “json-file”, “log-opts”: {“max-size”:“500m…...
开源大模型的新星:ChatGPT-Next-Web 项目解析与推荐
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【区块链】记账的千年演化:从泥板到区块链
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 记账的千年演化:从泥板到区块链引言一、古代记账:泥板与…...
MySQL的索引类型,以及各自的作用
MySQL的索引类型,以及各自的作用 常见的索引类型 主键索引(Primary Key Index): 唯一标识表中的记录,确保索引列的值在整个表中是唯一的主键索引通常是唯一索引的一种特例作用:加速查询,并自动…...
数组中的map方法
JavaScript中的map()方法详解 map()方法经常拿来遍历数组,但是不改变原数组,但是会返回一个新的数组,并且这个新的数组不会改变原数组的长度 注意:有时候会出现这种现象,出现几个undefined const array [1, 4,9, 16…...
使用Python生成并上传文档
这是一个简单的 Python 程序,用于生成文本文件并上传至 FTP 服务器; 通过输入文件名和内容,你可以将文档上传至指定的 FTP 服务器目录中; 在上传成功后,程序会自动关闭窗口。 使用方法 输入文件名和内容。 点击“生…...
LAMP部署及应用
在Web开发和应用程序部署中,LAMP(Linux、Apache、MySQL/MariaDB、PHP/Python/Perl)环境是一个经典的选择。本文将详细介绍如何在Linux系统上部署和配置LAMP环境,并展示一个简单的应用示例。 --- 目录 1. 简介 2. 准备工作 3. 步…...
【STM32进阶笔记】GPIO端口
前段时间由于其他原因,专栏暂停更新了较长一段时间,现在恢复更新,争取继续为大家创造有价值的内容,期待大家的订阅关注,欢迎互相学习交流。 在STM32速成笔记系列专栏中其实已经对GPIO的一些必要知识进行了介绍…...
探索HTML5 Geolocation:精准定位网页的新纪元
在互联网技术日新月异的今天,地理定位已经成为众多Web应用不可或缺的一部分,而HTML5 Geolocation API正是这一领域的关键技术。本文将深入剖析HTML5 Geolocation API的工作原理、使用方法,并通过实战代码示例,带你领略其在现代网页…...
C++程序打开EXCEL2010失败,提示:远程过程调用失败
前两天将Foxit福昕PDF阅览器升级到了最新版本,导致了这个问题,参照这篇文章才知道是升级了福昕阅读器引起的: c#调用excel报错(异常来自HRESULT:0X80010105(RPC_SERVERFAULT)) 这个问题折腾了很久才搞定,网上的很多办法都不靠谱…...
错题记录(小测)
单选 错题1 错题2 错题3 代码题 反转链表 链表的回文结构...
ChromeOS 逐渐靠近安卓
ChromeOS 逐渐 “安卓化” 谷歌在博客中透露,将在ChromeOS底层更广泛地使用和Android相同的技术栈。一个具体的例子是,ChromeOS现在已经开始使用Android的蓝牙协议栈,取代了之前使用的自己的协议栈。这次改变不仅提高了蓝牙配对速度…...
vector模拟实现
目录 vector介绍 vector示意图 关于vector扩容的问题 vector框架 构造函数 析构函数 vector有关空间容量函数 insert和erase pop_back和push_back 其它构造函数 拷贝构造 迭代器区间构造 运算符重载 关于迭代器失效问题【重点】 有关insert发生迭代器失效 有关…...
RV32F\RV32D指令集
RV32F\RV32D指令集 F扩展1、浮点控制状态寄存器2、指令类型F扩展 F扩展增加了32个浮点寄存器f0-f31,每个32位宽,以及一个浮点控制和状态寄存器fcsr,其中包含浮点单元的工作模式和异常状态。FLEN=32表示F单精度浮点扩展,大多数浮点指令对浮点寄存器中的值进行操作。浮点加载…...
安卓VirtualDisplay虚拟屏幕如何实现没有内容显示mirror内容(aosp14版本)
背景: 上一篇blog已经对mirror模式显示镜像屏幕内容进行了详细讲解: 安卓VirtualDisplay虚拟屏幕如何实现没有内容显示mirror屏幕内容 不过这个分析版本是基于aosp13,在这个发布后,有学员在aosp14上进行验证,发现还…...
YOLOv10在RK3588上的测试(进行中...)
1.代码源 国内镜像站在gitcode。这个镜像站也基本上包含了github上常用项目的镜像。然后它的主发布源在这里: GitCode - 全球开发者的开源社区,开源代码托管平台 yolov10是清华主导做的... 然后,在维护列表里看到了这个: 2024年05月31日&am…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
