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

零数组变换 二分+查分数组||线段树lazy

前言:其实这个题目用二分来写才比较合理,但是好久没写二分了,没想到


题目链接
在这里插入图片描述
查分+二分的话比较好理解
代码就不给出来了

class Tree:def __init__(self,n):self.n = nself.t = [0]*(4*n)self.lazy = [0]*(4*n)def push_down(self,o):if self.lazy[o] !=0:self.t[o*2] += self.lazy[o]self.lazy[o*2] += self.lazy[o]self.t[o*2+1] += self.lazy[o]self.lazy[o*2+1] += self.lazy[o]self.lazy[o] = 0def update(self,o,l,r,L,R,va):if L<=l and r<= R:self.t[o] += vaself.lazy[o] += vareturnself.push_down(o)mid = (l+r)//2if L<=mid:self.update(o*2,l,mid,L,R,va)if mid<R:self.update(o*2+1,mid+1,r,L,R,va)self.t[o] = max(self.t[o*2],self.t[o*2+1])def query(self,o,l,r,L,R):if L<=l and r<=R:return self.t[o]self.push_down(o)mid = (l+r)//2tmp = 0if L<=mid:tmp = max(tmp,self.query(o*2,l,mid,L,R))if mid<R:tmp = max(tmp,self.query(o*2+1,mid+1,r,L,R))return tmpclass Solution:def minZeroArray(self, nums: List[int], queries: List[List[int]]) -> int:n = len(nums)tr = Tree(n)for i,va in enumerate(nums):tr.update(1,0,n-1,i,i,va)for i in range(len(queries)):l,r,va = queries[i]if tr.query(1,0,n-1,0,n-1) <= 0:return itr.update(1,0,n-1,l,r,-va)if tr.query(1,0,n-1,0,n-1) <= 0:return len(queries)return -1

相关文章:

  • 分布式集群中的共识算法及其在时序数据库IoTDB中的应用
  • 基于亚马逊云科技构建音视频直播审核方案
  • 【Django系统】Python+Django携程酒店评论情感分析系统
  • 四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API
  • 【后端】【UV】【Django】 `uv` 管理的项目中搭建一个 Django 项目
  • PostgreSQL相比Oracle有哪些优势?
  • 【Linux笔记】——线程池项目与线程安全单例模式
  • Oracle基础知识(二)
  • oracle使用SPM控制执行计划
  • (6)python爬虫--selenium
  • 游戏引擎学习第302天:使用精灵边界进行排序
  • Axure项目实战:智慧运输平台后台管理端-订单管理2(多级交互)
  • WebSocket 是什么?
  • Canvas进阶篇:鼠标交互动画
  • RISC-V 开发板 MUSE Pi Pro CSI测试,一把点亮ov5647摄像头
  • QMK固件RGB矩阵照明功能详解 - 打造你的专属炫彩键盘
  • DevExpress Blazor中文教程 - 如何用AI聊天组件构建大型语言模型聊天APP?
  • python爬虫和逆向:百度翻译数据采集的几种方式
  • 使用Terraform创建azure databrick
  • 【低代码】如何使用明道云调用 Flask 视图函数并传参(POST 方法实践)
  • 北京公司网站制作要多少钱/浏览器谷歌手机版下载
  • 360建筑网怎么获得人才信息/进一步优化落实
  • 苏州专业网站建设设计公司/发布软文的平台
  • 厦门网站建设seo/网站建设平台
  • 拍卖网站开发多少钱/友情链接交换系统
  • 青岛建网站/一个新品牌如何推广