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

leetcode 560 和为k 的子数组

leetcode 560 和为k 的子数组

  • 正文
  • 一般解法
  • 字典方法

正文

在这里插入图片描述

一般解法

class Solution:def subarraySum(self, nums: List[int], k: int) -> int:number = 0for i in range(len(nums)):for j in range(i , len(nums)):if sum(nums[i:j + 1]) == k:number += 1return number

上述方法虽然可行,但是时间复杂度为 O ( n 2 ) O\left(n^2\right) O(n2)。不够迅速,因此,我们考虑使用其他方式实现。

字典方法

import collections
from typing import Listclass Solution:def subarraySum(self, nums: List[int], k: int) -> int:count = 0dict1 = collections.defaultdict(int)dict1[0] = 1pre_sum = 0for i in range(len(nums)):pre_sum += nums[i]count += dict1[pre_sum - k]dict1[pre_sum] += 1return count

需要特别注意的是,这里的 count += dict1[pre_sum - k]dict1[pre_sum] += 1 位置不能互换。

如果大家觉得有用,就请点个赞吧~


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

相关文章:

  • spring整合redis(常用数据类型操作)
  • [英语单词] quorum
  • 呼入的电话通过http接口转接(mod_cti基于FreeSWITCH)
  • 实现通用人工智能 (AGI) 面临的挑战
  • “北京地铁系统中人脸识别技术的安全与效率问题研究”
  • LLVM-MLIR 学习记录
  • 如何使用ssm实现视频点播系统设计与实现+vue
  • 利用Aspose.BarCode 在 C# 中创建微型二维码
  • 微软Win11 24H2最新可选更新补丁26100.1591发布!
  • 记录一次给iOS 工程添加.gitignore文件
  • 利用Nginx反向代理优化Web应用的性能与安全
  • [Jsprit]Jsprit学习笔记-初见Jsprit-doc
  • 绿色守望者:虫情测报仪助力现代农业绿色发展
  • 积鼎科技携手潍柴动力的喷嘴雾化模拟项目荣获2024年数字仿真卓越应用奖
  • OpenCV入门12.1:角点和特征点概述
  • 关于自定义控件,头文件找不到问题的解决办法
  • 低代码集成中心:简化复杂流程的智能解决方案
  • C语言迷宫制造
  • 【Linux】第十八章 Reactor模式
  • 009 批量删除