题目:原题链接(困难)

标签:动态规划、贪心算法、有序映射

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O(NlogK)O(NlogK)O(NlogK) O(N)O(N)O(N) 264ms (94.74%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

import collections
from typing import Listfrom sortedcontainers import SortedListclass Solution:def constrainedSubsetSum(self, nums: List[int], k: int) -> int:# 均为负数的情况max_val = max(nums)if max_val <= 0:return max_vallst = [0]window1 = collections.deque()window2 = SortedList()for i2, num2 in enumerate(nums):if num2 >= 0:if len(window1) != 0:if len(window1) == k:lst.append(window2[-1][0])window1.clear()window2.clear()lst.append(num2)else:lst[-1] += num2else:if len(window1) < k:window1.append((num2, i2))window2.add((num2, i2))else:v = window2[-1][0] + num2num1, i1 = window1.popleft()window2.remove((num1, i1))window1.append((v, i2))window2.add((v, i2))else:if len(window1) != 0:lst.append(window2[-1][0])ans = 0total = 0for num in lst:total = max(0, total + num)ans = max(ans, total)return ans

LeetCode题解(1425):带限制的子序列和(Python)相关推荐

  1. LeetCode题解(0606):根据二叉树创建字符串(Python)

    题目:原题链接(简单) 标签:字符串.树.二叉树 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 48ms (100.00%) ...

  2. LeetCode题解(0695):岛屿的最大面积(Python)

    题目:原题链接(中等) 标签:数组.广度优先搜索.深度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N×M)O(N×M)O(N×M) O(N×M)O(N×M)O( ...

  3. LeetCode题解(0592):分数加减运算(Python)

    题目:原题链接(中等) 标签:数学.字符串 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 40ms (67.37%) Ans ...

  4. LeetCode题解(0417):太平洋大西洋水流问题(Python)

    题目:原题链接(中等) 标签:深度优先搜索.广度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(M×N)O(M×N)O(M×N) O(M×N)O(M×N)O(M×N ...

  5. LeetCode题解(0919):设计完全二叉树插入器(Python)

    题目:原题链接(中等) 标签:树.二叉树.广度优先搜索.设计 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 100ms (2 ...

  6. LeetCode题解(0631):设计Excel求和公式(Python)

    题目:原题链接(困难) 标签:设计.图.拓扑排序 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) SET = O(H×W)O(H×W)O(H×W) ; GET = O(1)O(1 ...

  7. LeetCode题解(面试17.07):婴儿名字(Python)

    题目:原题链接(中等) 标签:并查集.深度优先搜索.广度优先搜索 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN ...

  8. 算法与数据结构+LeetCode题解-Js版

    LeetCode题解Js版 https://webbj97.github.io/leetCode-Js/ 题外话 LeetCode题解:传送门 前端笔记:传送门 项目背景 旨在提高自己对算法的理解,将 ...

  9. LeetCode 659. 分割数组为连续子序列

    LeetCode 659. 分割数组为连续子序列 回顾 根据题意,每个元素只会涉及两种情况: 已经存在nums[i]-1结尾的序列,我们把nums[i]接到之前的某个序列后. 尝试以nums[i]为头 ...

最新文章

  1. 数据挖掘技术在出行体验上的应用!
  2. 蓝桥杯——说好的进阶之去反复元素的排列组合
  3. error:“ACCESS_MASK”: 不明确的符号
  4. 黑客发现了欺骗华尔街的新方法
  5. WCF热带鱼书学习手记 - Service Contract Overload
  6. day13 生成器 三元运算 列表解析
  7. JavaScript面向对象轻松入门之概述(demo by ES5、ES6、TypeScript)
  8. 中值滤波原理及c语言的实现,关于中值滤波算法,以及C语言实现(转)
  9. photoshop文字使用技巧
  10. 从百度世界大会2014中所看到,所感受到的
  11. CMD和AMD的区别
  12. 一:以理论结合实践方式梳理前端 ES 6+ ——— ES 6+ 能干什么
  13. java里什么是注释,全面解析Java中的注解与注释
  14. Oracle获取拼音简码
  15. C语言麦克劳林展开e^x,sinx,cosx
  16. win2003系统优化[全集,很详细]
  17. vivo手机android耗电快怎么解决,vivo手机耗电严重怎么办 如何解决手机耗电严重的问题...
  18. 伟景行Citymaker高亮图层的内元素CSharp
  19. Python安装Selenium
  20. df_1.columns

热门文章

  1. Word合并所有段落再按字数划分段落
  2. java毕设项目车牌号码识别系统开源了,很好玩,建议尝试
  3. 优惠券测试点和测试用例
  4. 【数据库系统原理】数据库课内实验
  5. 每周读书#2 - 《程序员的成长课》
  6. JM模型I帧帧内预测流程
  7. 五年程序员谈软件工程师做职业规划的重要性
  8. Chrome的启动参数
  9. 卸载MySQL残余及修改密码
  10. linux配置SVN,添加用户,配置用户组的各个权限教程