博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode1052
阅读量:6584 次
发布时间:2019-06-24

本文共 847 字,大约阅读时间需要 2 分钟。

1 class Solution: 2     def maxSatisfied(self, customers: 'List[int]', grumpy: 'List[int]', X: int) -> int: 3         n = len(customers) 4         presum = 0 5         j = 0 6         for i in range(n): 7             if grumpy[i] == 0: 8                 presum += customers[i] 9                 j += 110             elif j < X:11                 presum += customers[i]12                 j += 113 14         maxsati = presum15         for i in range(0,n-X):16             if grumpy[i] == 1:17                 presum -= customers[i]18             if grumpy[i+X] == 1:19                 presum += customers[i+X]20             maxsati = max(presum,maxsati)21 22         return maxsati

本题的思路是滑动窗口,在区间i到i+X之间,假设全部都处于平静状态,将客人的满意度都加在一起。

然后窗口向右滑动,最左侧的离开窗口,最右侧的新进入窗口,根据其原始状态,判断是进行加还是减。

具体的判断逻辑在代码的15~20行。

转载于:https://www.cnblogs.com/asenyang/p/10926422.html

你可能感兴趣的文章
将用户添加到sudoer列表
查看>>
oracle 11gR2 安装包说明
查看>>
阿里云免费服务器使用笔记(安装tomcat+jdk+mysql)
查看>>
eclipse下关联jar源代码
查看>>
No input file specified的解决方法
查看>>
jQuery.validate.js 表单验证参考2
查看>>
【Visual C++】游戏开发笔记三十八 浅墨DirectX提高班之六 携手迈向三维世界:四大变换展身手...
查看>>
java基础学习-变量&运算
查看>>
我的友情链接
查看>>
Java基础学习总结(16)——Java制作证书的工具keytool用法总结
查看>>
html页面中根据div长度显示标题(截取字符串)
查看>>
2015年终总结
查看>>
大型网站技术架构(六)网站的伸缩性架构
查看>>
JPA常用注解
查看>>
Git使用详细教程
查看>>
批量生成控制文件,用sqlldr自动导入多个表的数据
查看>>
BZOJ4771七彩树——可持久化线段树+set+树链的并+LCA
查看>>
我的友情链接
查看>>
Java基础学习总结(41)——JPA常用注解
查看>>
<More Effective C++>笔记--其他杂项
查看>>