LeetCode560.和为k的子数组

这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案+1然后break然后下一次遍历,测试用例中就出现了合理的子串后面还有一个0,于是我改成直到遍历完最后一个才结束循环;所以我把两个break都删了,我以为会超时,没想到还是过了,以下是我的代码:
class Solution {public int subarraySum(int[] nums, int k) {int ans =0;int n = nums.length;int sum=0;for(int i=0;i<n;i++){sum =0;for(int j=i;j<n;j++){sum+=nums[j];if(sum == k){ans++;}}}return ans;}
}
就是最简单的暴力法,用i,j两个指针作为子串的起点和终点,然后把子串的所有数的和加起来,如何等于k,ans++。这里就需要注意我前面提到的无论sum=k还是sum>k都不能break,要遍历到最后一个数自动结束,外层循环每次sum归0。
题解的方法一和我的是一样的暴力枚举,方法二是用HashMap来存前缀和,key是前缀和,value值这个前缀和出现的次数,pre[i]表示前i个数的和,pre[j-1]表示前j-1个数的和,当pre[i]-pre[j-1]=k时,我们就找到了这个子串的起始位置j,所以我们只需要一遍遍历即可(算出pre[i]放入hashmap,如果有这个key,就value+1),同时我们看hashmap中有没有pre[i]-k这个key,如果有答案就加上这个key的value,以下时哈希优化的代码:
public class Solution {public int subarraySum(int[] nums, int k) {int count = 0, pre = 0;HashMap < Integer, Integer > mp = new HashMap < > ();mp.put(0, 1);for (int i = 0; i < nums.length; i++) {pre += nums[i];if (mp.containsKey(pre - k)) {count += mp.get(pre - k);}mp.put(pre, mp.getOrDefault(pre, 0) + 1);}return count;}
}相关文章:
LeetCode560.和为k的子数组
这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案1然后break然后下一次遍历,测试用例中就出…...
echarts 的dataZoom滑块两端文字被遮挡
问题: 期望: 解决方案: 1:调整宽度(4版本的没有width属性) 2. 参考:echarts图标设置dataZoom拖拽时间轴时自动调整两侧文字的位置_datazoom 位置_乌栖曲的博客-CSDN博客 设置文字的定位 cons…...
MongoDB基本使用
在 MongoDB 中我们可以使用use命令来创建数据库,如果该数据库不存在,则会创建一个新的数据库,如果该数据库已经存在,则将切换到该数据库。使用use命令创建数据库的语法格式如下: --use database_name use my_db1;数据…...
C++ 中的左值(Lvalues)和右值(Rvalues)
C 中有两种类型的表达式: 左值(lvalue):左值参数是可被引用的数据对象,例如,变量、数组元素、结构成员、引用和解除引用的指针都是左值。非左值包括字面常量(用引号起的字符串除外,…...
html流光按钮
出处bilibili猫咪爱狗 <!DOCTYPE html> <html><head><style>body {/*内容居中,背景色*/height: 100vh;display: flex;justify-content: center; align-items: center;background-color: #000;}a { /*水平垂直居中*/position: re…...
HAProxy+nginx搭建负载均衡群集
目录 一、常见的Web集群调度器 二、HAProxy群集介绍 1、Haproxy的特性 : 2、Haproxy常用的调度算法 ① 轮询调度(Round Robin) ② 最小连接数(Least Connections) ③ 基于来源访问调度算法(Source Hashing&am…...
logback-spring.xml 的配置及详解(直接复制粘贴可用)
logback-spring.xml 的配置及详解 一、注意实现二、配置及详解 一、注意实现 logback-spring.xml 中有三处需要根据实际业务进行修改,直接查找“(根据业务修改)”即可进行定位。 如果不想修改,直接复制粘贴到自己系统运行也可以&…...
C语言易错点整理
前言: 本文涵盖了博主在平常写C语言题目时经常犯的一些错误,在这里帮大家整理出来,一些易错点会帮大家标识出来,希望大家看完这篇文章后有所得,引以为戒~ 一、 题目: 解答: 首先在这个程序中…...
60.每日一练:回文数(力扣)
目录 问题描述 代码解决以及思想 解法(一) 知识点 解法(二) 问题描述 代码解决以及思想 解法(一) class Solution { public:bool isPalindrome(int x) {string arr to_string(x); // 将整数转换为…...
算法通关村第5关【青铜】| Hash和队列的特征
1.Hash基础 (1)基础 哈希也称为散列,通过算法变成固定长度的输出值,存入对应的位置 例如这个算法为取模算法,indexnumber 模 7 存入1到15 (2)碰撞处理 当多个元素映射到同一位置上时就产生…...
C++:函数
函数参数的传递机制 C的每个程序至少有一个函数,即主函数main(),函数也是类的方法的实现手段。C的函数包括两类:预定于函数和用户自定义函数。 函数的定义格式为: <返回值类型><函数名>(<参数列表>) <函…...
Linux网络编程:libevent事件通知库
文章目录: 一:libevent库 二:libevent框架 1.常规事件event 1.1 创建事件event(event_new) 1.2 添加事件到 event_base(event_add) 1.3 从event_base上摘下事件(event_del&a…...
java.lang.reflect.InvocationTargetException:null报未知异常
在项目上线过程中,突然出现大量异常信息,堆栈信息如下: java.lang.reflect.InvocationTargetException: null at jdk .internal.reflect.GeneratedMethodAccessor792 .invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingM…...
MySQL高级篇——MySQL架构篇1(Linux下MySQL8的安装与使用)
目录 0 安装前0.1 Linux系统及工具的准备0.2 查看是否安装过MySQL0.3 MySQL的卸载 1 MySQL8的Linux版安装1.1 MySQL的4大版本1.2 下载MySQL指定版本1.3 CentOS7下检查MySQL依赖1.4 CentOS7下MySQL安装过程 2 MySQL登录2.1 首次登录2.2 修改密码2.3 设置远程登录 3 MySQL 8 的密…...
解决 go mod tidy 加载模块超时
如果go mod tidy 加载模块超时 解决方法 修改GOPROXY: 查看go环境相关信息: go envgo env -w GOPROXYhttps://goproxy.cn...
金融市场中的机器学习;快手推出自研语言模型“快意”
🦉 AI新闻 🚀 OpenAI可能面临《纽约时报》的起诉,侵犯知识产权引发争议 摘要:OpenAI使用《纽约时报》的文章和图片来训练AI模型,违反了《纽约时报》的服务条款,可能面临巨大损失。此前,也有其…...
【面试刷题】——什么是深拷贝和浅拷贝?
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在编程中用来描述对象拷贝的两个概念,特别是在涉及对象包含其他对象(如嵌套数据结构、指针等)的情况下。 浅拷贝(Shallow Copyÿ…...
物联网(IoT)安全挑战与解决方案: 分析物联网设备面临的安全威胁,以及如何设计和管理安全的IoT生态系统
第一章:引言 随着科技的飞速发展,物联网(IoT)作为连接世界的桥梁,已经成为现代社会不可或缺的一部分。然而,随着IoT设备数量的不断增加,其安全问题也日益显著。本文将深入探讨IoT领域面临的安全…...
Ubuntu 22.04.3 LTS 维护更新发布
近日消息,Canonical 今天发布了代号为 Jammy Jellyfish、长期支持的 Ubuntu 22.04 第 3 个维护版本更新,距离上个版本相隔 6 周时间。 Ubuntu 22.04.3 LTS 最大的亮点在于内核升级到 Linux Kernel 6.2,此外 Mesa 图形堆栈也升级到 23.0.4 版…...
平安健康,找到了医疗服务的价值密码
健康是人类的永恒需求,围绕医疗和健康服务衍生的产业,却苦于无法和用户建立足够紧密、长期的联系。由此,也不得不面临价值从何而来的问题。 作为医疗服务领域的代表性企业,平安健康医疗科技有限公司(股票简称“平安好…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
