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

滑动窗口---6(稍难)

1052. 爱生气的书店老板

题目来源:1052. 爱生气的书店老板 - 力扣(LeetCode)

 分析:

  1. 求不生气的时间最多顾客数量
  2. 将原始本来就不生气的时间内所有顾客累加 res 
  3. 通过滑动grumpy来获取,在连续minutes时间内不生气导致的满意顾客增量 ans
  4. 最后 res += ans即时结果

答案:

class Solution:def maxSatisfied(self, customers: List[int], grumpy: List[int], minutes: int) -> int:'''customers = [1,0,1,2,1,1,7,5], grumpy =    [0,1,0,1,0,1,0,1], minutes =   3遍历grumpy 滑动长度为3窗口  求生气窗口最大增值 所有不生气的时间都顾客数量 加上 最大增值 即时最后结果'''# 增值 ans = ans_tmp = 0left = 0res = 0for right,gru in enumerate(grumpy):# -----> 移入if gru == 0:res += customers[right]  # 加和所有不生气的人数# 计算窗口增值if gru == 1:ans_tmp += customers[right]left = right + 1 - minutesif left < 0 :continue# 更新增值  以及对应的窗口左端点 作为该窗口标识if ans < ans_tmp:ans = max(ans,ans_tmp)# -----------> 移除if grumpy[left] == 1:tmp = customers[left]ans_tmp -= tmpres += ansreturn res

灵神:

class Solution:def maxSatisfied(self, customers: List[int], grumpy: List[int], minutes: int) -> int:s = [0, 0]max_s1 = 0for i, (c, g) in enumerate(zip(customers, grumpy)):s[g] += cif i < minutes - 1:  # 窗口长度不足 minutescontinuemax_s1 = max(max_s1, s[1])if grumpy[i - minutes + 1]:s[1] -= customers[i - minutes + 1]  # 窗口最左边元素离开窗口return s[0] + max_s1作者:灵茶山艾府

 

http://www.lryc.cn/news/599440.html

相关文章:

  • GDB调试命令学习
  • 【开源软件】SimpleAI一款轻量级的桌面随身AI助手
  • 航段导航计算机 (Segment_Navigator) 设计与实现
  • OSPF 协议(多区域)
  • Python智能优化算法实战指南
  • 汪小菲食通达公司成立新零售公司,布局餐饮零售新赛道
  • 轻量级音乐元数据编辑器Metadata Remote
  • SpringBoot整合Liquibase提升数据库变更的可控性、安全性、自动化程度(最详细)
  • 自动化UI测试工具TestComplete的AI双引擎:即时数据集 + 自愈测试
  • SpringBoot学习路径二--Spring Boot自动配置原理深度解析
  • Qt 多媒体开发:音频与视频处理
  • 剪映将绿幕视频扣成透明背景视频转webm格式可以在网页上透明播放
  • 软件工程之可行性研究:从理论到实践的全面解析
  • SpringBoot 集成Mybatis Plus
  • ESLint前端工程实践
  • CMake保姆级教程
  • 力扣1472. 设计浏览器历史记录
  • Execel文档批量替换标签实现方案
  • 三维图像识别中OpenCV、PCL和Open3D结合的主要技术概念、部分示例
  • 【vue3+vue-pdf-embed】实现PDF+图片预览
  • Ubuntu22 上,用C++ gSoap 创建一个简单的webservice
  • 前端学习9:JavaScript--对象与原型
  • vue3 组件生命周期,watch和computed
  • SIP广播对讲系统:构建高效智能的语音通信网络
  • KNN 算法进阶:从基础到优化的深度解析
  • docker compose xtify-music-web
  • DNS 服务正反向解析与 Web 集成实战:从配置到验证全流程
  • 解决企业微信收集表没有图片、文件组件,不能收集图片的问题
  • 【57】MFC入门到精通——MFC 多线程编程总结
  • 飞算 JavaAI “撤回接口信息” 功能:误删接口不用慌,一键恢复更省心