当前位置: 首页 > 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
http://www.dtcms.com/a/203936.html

相关文章:

  • 分布式集群中的共识算法及其在时序数据库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 方法实践)
  • 【Linux我做主】探秘进程与fork
  • 基于MDX的在线编译文档方案
  • 自制操作系统day6(GDTR、段描述符、PIC、实模式和保护模式、16位到32位切换、中断处理程序、idt的设定、EFLAG寄存器)(ai辅助整理)
  • STM32 I2C硬件读写
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Hidden Search Widget (交互式搜索框)
  • 拉普拉斯高斯(LoG)滤波器掩模的注意事项
  • vue3 + vite 使用tailwindcss
  • 关于收集 Android Telephony 网络信息的设计思考2
  • Git 提交大文件 this exceeds GitHub‘s file size limit of 100.00 MB
  • 【WebRTC】源码更改麦克风权限