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

Leetcode 325. 和等于 k 的最长子数组长度【Plus题】

1.题目基本信息

1.1.题目描述

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

1.2.题目地址

https://leetcode.cn/problems/maximum-size-subarray-sum-equals-k/description/

2.解题方法

2.1.解题思路

哈希表。使用哈希表记录每个前缀和第一次出现的索引下标

时间复杂度:O(n)

2.2.解题步骤

第一步,构建维护变量。map1哈希表记录每个前缀和第一次出现的索引下标

第二步,遍历。更新维护变量并找到最优解

2.1.更新最优解到result

2.2.更新map1

3.解题代码

Python代码

class Solution:def maxSubArrayLen(self, nums: List[int], k: int) -> int:# 思路:哈希表。使用哈希表记录每个前缀和第一次出现的索引下标n = len(nums)# 第一步,构建维护变量。map1哈希表记录每个前缀和第一次出现的索引下标map1 = {0: -1}# 第二步,遍历。更新维护变量并找到最优解result = 0preSum = 0for i in range(n):preSum += nums[i]# 2.1.更新最优解到resultdiff = preSum - kif diff in map1:result = max(result, i - map1[diff])# 2.2.更新map1if preSum not in map1:map1[preSum] = ireturn result

4.执行结果

在这里插入图片描述


http://www.mrgr.cn/news/98685.html

相关文章:

  • PyTorch - Tensor 学习笔记
  • 【前端】Vue一本通 ESLint JSX
  • Vue3+Vite+TypeScript+Element Plus开发-17.Tags-组件构建
  • 解决Flutter 2.10.5在升级Xcode 16后的各种报错
  • Maven 多仓库与镜像配置全攻略:从原理到企业级实践
  • 解决 Vue 中 `v-model` 获取不到值的问题:一步步排查与解决方案
  • TMS320F28P550SJ9学习笔记16:Lin通信SCI模式配置TX发送结构体寄存器
  • 如何利用GM DC Monitor快速监控一台网络类设备
  • CompletableFuture
  • HOW - 前端 sdk 实践(二)- 权限 SDK
  • 算法基础(以acwing讲述顺序为主,结合自己理解,持续更新中...)
  • 数据结构与算法入门 Day 0:程序世界的基石与密码
  • PyBroker量化交易系列:第二部分 策略开发
  • KALI搭建log4j2靶场及漏洞复现全流程
  • STM32 四足机器人常见问题汇总
  • 【Bluedroid】A2DP Sink播放流程源码分析(三)
  • 基于MyBatis自定义拦截器实现数据库字段加密脱敏
  • 操作系统之shell实现(上)
  • fedora 42更新了
  • UDP猜数字游戏与TCP文件传输案例解析