【leetcode hot 100 560】和为K的子数组

news/2025/3/5 4:54:57/

解法一:用左右指针寻找字串,如果和>k,则减少一个数(left++);如果和<k,则加上一个数(right++)。

class Solution {public int subarraySum(int[] nums, int k) {int num = 0;int left=0, right=0;while(left<nums.length && right<nums.length && left<=right){int sum = 0;for(int i=left; i<=right; i++){sum += nums[i];}if(sum==k){num++;if(left==right){// nums[i]=kright++;}else{left=right;}}else if(sum>k){// 不适合含有复数的判断left++;right = Math.max(left,right);}else{right++;}}return num;}
}

错误原因:该方法不适合于nums有负数的情况

在这里插入图片描述

方法二:(枚举)循环i寻找[0, i]中子串和为k的子串,即找以i结尾的子串。

public class Solution {public int subarraySum(int[] nums, int k) {int num=0;for(int i=0; i<nums.length; i++){int sum=0;for(int j=i; j>=0; j--){// 这里要从j=i开始算,包含计算所有以i结尾的子串sum += nums[j];if(sum==k){num++;}}}return num;}
}

注意:

  • 里面的循环要从j=i开始循环,包含计算所有以i结尾的子串
  • 类似【leetcode hot 100 53】最大子数组和

http://www.ppmy.cn/news/1576734.html

相关文章

从 Transformer 到 DeepSeek-R1:大型语言模型的变革之路与前沿突破

本文参考引用&#xff1a;medium-大型语言模型简史 2025年初&#xff0c;DeepSeek开源了一款开创性且高性价比的「大型语言模型」&#xff08;Large Language Model, LLM&#xff09; — — DeepSeek-R1&#xff0c;引发了AI领域的巨大变革。 本文回顾LLM的发展历程&#xff0…

Android Studio 新版本Gradle发布本地Maven仓库示例

发布代码到JitPack示例&#xff1a;https://blog.csdn.net/loutengyuan/article/details/145938967 以下是基于 Android Studio 24.2.2&#xff08;Gradle 8.10.2 AGP 8.8.0 JDK17&#xff09; 的本地 Maven 仓库发布示例&#xff0c;包含aar和jar的不同配置&#xff1a; 1.…

【java--数据结构】顺序表

1. 线性表的概念 线性表&#xff08;Linear List&#xff09;是一种基本的数据结构&#xff0c;它是由相同类型的元素组成的有限序列。线性表中的元素具有一对一的线性关系&#xff0c;即除了第一个元素和最后一个元素外&#xff0c;每个元素都有且仅有一个直接前驱和一个直接…

Ubuntu中dpkg命令和apt命令的关系与区别

在 Ubuntu 中&#xff0c;dpkg 和 apt 是软件包管理的核心工具&#xff0c;但二者的角色和功能有显著区别&#xff1a; ​一、功能定位 ​特性​​**dpkg**​​**apt**​​层级​底层工具&#xff08;直接操作 .deb 文件&#xff09;高层工具&#xff08;管理软件仓库和依赖关…

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中&#xff0c;常常需要同时兼顾多个相互冲突的目标&#xff0c;多目标粒子群优化&#xff08;MOPSO&#xff09;算法应运而生&#xff0c;作为群体智能优化算法家族中的重要成员&#xff0c;它为解决此类棘手难题提供了高效且富有创新性的解决…

嵌入式开发中的计算机体系结构与主流架构深度解析

一、计算机体系结构基础 1.1 计算机模型:图灵机与两大经典架构 图灵机模型 图灵机是现代计算机的理论基础,由无限长纸带(TAPE)、读写头(HEAD)、控制规则(TABLE)和状态寄存器组成。其核心思想是将复杂运算分解为有限个基本操作,映射到现代计算机中即为程序代码(纸带)…

el-select的下拉选择框插入el-checkbox

el-check注意这里要使用model-value绑定数据 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…

校园二手交易微信小程序的设计与实现(论文源码调试讲解)

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…