当前位置: 首页 > 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。

相关文章:

  • Oracle SQL*Plus 配置上下翻页功能
  • 行为设计模式之Memento(备忘录)
  • Linux 删除登录痕迹
  • 多面体编译的循环分块
  • 字符串方法_indexOf() +_trim()+_split()
  • 定制化平板电脑在各行业中有哪些用途与作用?
  • CppCon 2015 学习:Give me fifteen minutes and I’ll change your view of GDB
  • 【Java多线程从青铜到王者】懒汉模式的优化(九)
  • 【GESP真题解析】第 2 集 GESP 四级样题卷编程题 1:绝对素数
  • IK分词器
  • 模型训练-关于token【低概率token, 高熵token】
  • Q: dify的QA分段方式,question、answer和keywords哪些内容进入向量库呢?
  • Python主动抛出异常详解:掌握raise关键字的艺术
  • 力扣HOT100之堆:347. 前 K 个高频元素
  • TDengine 快速体验(云服务方式)
  • 对3D对象进行形变分析
  • 3D扫描技术赋能汽车零部件尺寸测量效率提升
  • win11本地Docker部署腾讯云Docker部署若依前后端分离版
  • 关于前端常用的部分公共方法(三)
  • Spring boot应用监控集成
  • 做网站开发学什么语言好/微信推广平台哪里找
  • ps做网站设计/问卷调查网站
  • 网站架构优化/app下载注册推广平台
  • 牡丹江做网站建设/全国各城市疫情搜索高峰进度
  • 苏州网络平台公司/seopeix
  • 中国建设银行黄陂支行网站/关键词优化外包服务