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

Leetcode 3578. Count Partitions With Max-Min Difference at Most K

  • Leetcode 3578. Count Partitions With Max-Min Difference at Most K
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3578. Count Partitions With Max-Min Difference at Most K

1. 解题思路

这一题是一个动态规划的思路,不过我也是卡了一下,因为需要对动态规划的过程进行一下聚合,直接做会遇到超时的问题,后来是看了一下deepseek的解答搞定了,这里就不多说了,实在有点伤自尊……

2. 代码实现

给出python代码实现如下:

MOD = 10**9+7class Solution:def countPartitions(self, nums: List[int], k: int) -> int:n = len(nums)if max(nums) - min(nums) <= k:return pow(2, n-1, mod=MOD)dp = [1, 1] + [0 for _ in range(n-1)]accum_dp = [0, 1, 2] + [0 for _ in range(n-1)] cache = [(nums[0], 0)]left = -1for i in range(1, n):while cache and nums[i] - cache[0][0] > k:_, idx = cache.pop(0)left = max(left, idx)while cache and cache[-1][0] - nums[i] > k:_, idx = cache.pop()left = max(left, idx)bisect.insort(cache, (nums[i], i))dp[i+1] = (accum_dp[i+1] - accum_dp[left+1]) % MODaccum_dp[i+2] = (accum_dp[i+1] + dp[i+1]) % MODreturn dp[-1] % MOD

提交代码评测得到:耗时964ms,占用内存29.5MB。

http://www.xdnf.cn/news/964297.html

相关文章:

  • HTML 列表、表格、表单
  • Docker-containerd-CRI-CRI-O-OCI-runc
  • 【kafka】Golang实现分布式Masscan任务调度系统
  • Python 自动化临时邮箱工具,轻松接收验证码,支持调用和交互模式(支持谷歌gmail/googlemail)
  • 【C++】26. 哈希扩展1—— 位图
  • 【PhysUnits】17.5 实现常量除法(div.rs)
  • Linux上并行打包压缩工具
  • Cryosparc: Local Motion Correction注意输出颗粒尺寸
  • 基于大模型的输尿管下段结石诊疗全流程预测与方案研究
  • 多场景 OkHttpClient 管理器 - Android 网络通信解决方案
  • 【AI study】ESMFold安装
  • Ribbon负载均衡实战指南:7种策略选择与生产避坑
  • 深度学习核心概念:优化器、模型可解释性与欠拟合
  • 【无标题新手学习期权从买入看涨期权开始】
  • OpenCV 图像像素值统计
  • Python入门手册:常用的Python标准库
  • C++初阶-list的模拟实现(难度较高)
  • C++学习-入门到精通【17】自定义的模板化数据结构
  • ParcelJS:零配置极速前端构建工具全解析
  • React 中的TypeScript开发范式
  • 存储设备应用指导
  • C++ 手写实现 unordered_map 和 unordered_set:深入解析与源码实战
  • 光伏功率预测 | BP神经网络多变量单步光伏功率预测(Matlab完整源码和数据)
  • word嵌入图片显示不全-error记
  • 高考志愿填报,如何查询高校历年录取分数线?
  • Vue 2.0 + C# + OnlyOffice 开发
  • Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
  • K8S容器介绍
  • ubuntu24安装cuda12.6+cudnn9.6
  • 国产具身大模型首入汽车工厂,全场景验证开启工业智能新阶段