当前位置: 首页 > news >正文

和等于 k 的最长子数组长度(LeetCode)

题目

        给定一个数组 nums 和一个目标值 k,找到和等于 k 的最长连续子数组长度。如果不存在任意一个符合要求的子数组,则返回 0

解题

"""
时间复杂度: O(n),因为我们只遍历一次数组。
空间复杂度: O(n),用于存储前缀和及其对应的位置。
"""def maxSubArrayLen(nums, k):prefix_sums = {0: -1}  # 初始化哈希表,前缀和为 0 时索引为 -1current_sum = 0max_length = 0for i, num in enumerate(nums):current_sum += num# 检查是否存在前缀和,使得 current_sum - previous_sum = kif current_sum - k in prefix_sums:max_length = max(max_length, i - prefix_sums[current_sum - k])# 仅在哈希表中记录前缀和首次出现的位置if current_sum not in prefix_sums:prefix_sums[current_sum] = ireturn max_length# 示例 1
nums = [1, -1, 5, -2, 3]
k = 3
print(maxSubArrayLen(nums, k))  # 输出: 4# 示例 2
nums = [-2, -1, 2, 1]
k = 1
print(maxSubArrayLen(nums, k))  # 输出: 2

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL windows版本安装
  • How do you implement OpenAI GPT-3 Api Client in PHP?
  • 古希腊掌管类型转换的神 boost::lexical_cast
  • 掌握Objective-C中的NSSpellServer:拼写检查的艺术
  • MySQL 8
  • QT、C++简单界面设计
  • js实现图片以鼠标为中心滚轮缩放-vue
  • 深度学习中常用概念总结
  • 一次sql请求,返回分页数据和总条数
  • 【深度学习】【语音TTS】GPT-SoVITS v2 实战,训练一个人的音色,Docker镜像
  • Centos7安装Redis(采用docker安装方式)
  • 贪吃蛇(C语言详解)
  • 【精通SDL之----SDL_RenderReadPixels截屏】
  • Jenkins默认工作目录修改及迁移(Windows)
  • 《中国数据库前世今生》——历史的深度与未来的展望
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • co.js - 让异步代码同步化
  • gulp 教程
  • JavaScript 奇技淫巧
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 关于Flux,Vuex,Redux的思考
  • 关于Java中分层中遇到的一些问题
  • 利用jquery编写加法运算验证码
  • 使用 QuickBI 搭建酷炫可视化分析
  • 思维导图—你不知道的JavaScript中卷
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 我的zsh配置, 2019最新方案
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (回溯) LeetCode 46. 全排列
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .equals()到底是什么意思?
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core Swagger 过滤部分Api
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net流程开发平台的一些难点(1)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET业务框架的构建
  • [\u4e00-\u9fa5] //匹配中文字符
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [C#] 我的log4net使用手册
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复
  • [Docker]十.Docker Swarm讲解