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

力扣前缀和

这一类题,给我的感觉就是,简单的非常简单,难的又非常难

523-continuous-subarray-sum.py

    def checkSubarraySum(self, nums: List[int], k: int) -> bool:if len(nums) == 1:return FalseprefixSum = [0] * (len(nums) + 1)for i, num in enumerate(nums):prefixSum[i+1] += prefixSum[i] + num # 可以不用存,后面还会遍历的# 然后可以变成求两数和,用哈希。好像不行,因为这里是倍数关系,倍数还不能确定吧,那就遍历# 忘了长度为1的时候了# 好像有同余定理hashtable = {}for i, num in enumerate(prefixSum):key = num % kif key in hashtable:if i - hashtable[key] >= 2: # 后面减去前面的,第一次搞反了return Trueelse:hashtable[key] = ireturn False

560,hot100的题

    def subarraySum(self, nums: List[int], k: int) -> int:presuffix = [0] * (len(nums) + 1)for i, num in enumerate(nums):presuffix[i+1] = presuffix[i] + num# 还可以用这个hashtable = {}res = 0# num会混淆,改成dig# problemkey 稍微改一下,如果b-a=0,c-b=0那么c-a也得是0。所以它要记下次数for i,dig in enumerate(presuffix):if dig - k in hashtable:res += hashtable[dig - k]# 保存这个数和对应的下标hashtable[dig] = 1 if dig not in hashtable else hashtable[dig] + 1return res

974-subarray-sums-divisible-by-k.py

输入:nums = [4,5,0,-2,-3,1], k = 5
输出:7
解释:
有 7 个子数组满足其元素之和可被 k = 5 整除:
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]

模K状态前缀和,2025年4月17日 星期四

    # nums = [4,5,0,-2,-3,1]以-3为例子,到-3前缀和是4,前面同样为4的有4、45、450-2-3,所以可以res += modCount[c]def subarraysDivByK_optimize(self, nums: List[int], k: int) -> int:res = 0modCount = [0] * (k + 1) modCount[0] = 1prefixSum = 0for i, num in enumerate(nums):prefixSum += num# 好像这里不能余数的累加。可以的!c = prefixSum % kres += modCount[c]modCount[c] += 1return res
http://www.xdnf.cn/news/13849.html

相关文章:

  • 河南农担携手Gitee企业版:构建农业金融数字化研发新基建
  • 网络层协议:IP
  • qt初识--02
  • 移动电储能工作原理及SOC约束解析
  • 光谱相机叶绿素荧光成像技术的原理
  • Vue 组件通信
  • Jenkins 配置信息导出 的详细说明(中英对照)
  • 如何用AI赋能学习
  • OpenCV CUDA模块图像变形------对图像进行 尺寸缩放(Resize)操作函数resize()
  • Elasticsearch:使用 ES|QL 进行地理空间距离搜索
  • Linux612 chroot_list开放;FTP服务ftp:get put,指定上传路径报错553;ftp查看文件夹权限
  • 28-Oracle 23ai Fast Ingest(Memoptimized Rowstore)高频写入
  • 西电【信息与内容安全】课程期末复习笔记
  • jupyter notebook的相关知识及可能遇到的问题
  • LeetCode 2917.找出数组中的K-or值
  • Shell 脚本:系统管理与任务自动化的利器
  • docker compose安装Prometheus、Grafana
  • ubuntu网络连接失败 + mobaxterm拖拽文件出错等问题解决方法
  • CQL3D编译指南
  • PPIO 上线 Qwen3-Embedding 系列模型
  • C++学习-入门到精通【19】杂项汇总
  • 企业级人员评价系统Web端重构实战:前端架构效能升级
  • 【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
  • Linux系统lvm操作演示
  • 傲火集团传媒基地武汉启幕 构建数字娱乐产业生态闭环
  • 图像处理 | 基于matlab的多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)算法联合的低照度图像增强(附代码)
  • linux安装Redis6.0.8
  • 华为云物联网系统开发(纯云端)外包方案及项目需求说明书
  • PEP 8: E302 expected 2 blank lines, found 0
  • 在服务器上使用 Docker 部署 Node.js 后端服务和前端项目