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

零数组变换 二分+查分数组||线段树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.xdnf.cn/news/7750.html

相关文章:

  • 算法C++最大公约数
  • Linux条件变量
  • 从零基础到最佳实践:Vue.js 系列(4/10):《Vue Router 路由管理:深入探索与实战应用》
  • 选择合适的Azure数据库监控工具
  • 【Java学习方法】类变量
  • 七彩喜防摔马甲:科技守护银发安全的“隐形铠甲”
  • LabVIEW风机状态实时监测
  • 【前端基础】12、CSS的overflow(visible、hidden、scroll、auto)【注:只有最基础的说明。】
  • AI驱动新增长:亚马逊Rufus广告点击率提升300%的奥秘
  • 微型化GNSS射频前端芯片AT2659S:L1频段多系统支持,SOT23-6封装
  • Python 字典的用法和技巧
  • 设计模式介绍
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Hidden Search Widget (交互式搜索框)
  • 企业网站架构部署与优化-Nginx核心功能
  • Quasar 使用 Pinia 进行状态管理
  • C#SQLServer数据库通用访问类
  • 电子电路:什么是射极电阻?
  • 构建安全的Vue前后端分离架构:利用长Token与短Token实现单点登录(SSO)策略
  • 多线程环境下结构体赋值是否具有原子性?
  • Java 线程池 ThreadPoolExecutor
  • SAP-ABAP:SAP的BAPI_PO_CHANGE功能详解
  • 9 定时任务与周期性调度
  • 活到老学到老-Spring注解-如何创建get和set
  • C++面向对象——多态
  • 进程之IPC通信一
  • 内核常见面试问题汇总
  • PN结的形成及特性
  • 技术派项目——注册登录(用户名密码的方式)
  • 瀚高安全版4.5.8/4.5.9字符串默认按字节存储导致数据无法写入(APP)
  • 前端流行框架Vue3教程:20. 插槽slot(2)