dsfafaadfsa

leetcode每日一题之2.爱生气的书店老板

爱生气的书店老板

解题思路,首先计算不算X的所有满意的客户数量。然后计算X时间可能产生的最大的客户满意数量,即使用滑动窗口的方式,从左往右,找出最大的值,加上之前的值即可。代码如下

class Solution {

  /**
   * @param Integer[] $customers
   * @param Integer[] $grumpy
   * @param Integer $X
   * @return Integer
   */
  function maxSatisfied($customers, $grumpy, $X) {
      $count = 0;
      $length = count($customers);
      for($i = 0; $i < $length; $i++){
          if($grumpy[$i] == 0){
              $count += $customers[$i];
          }
      }
      $increase = 0;
      for($i = 0; $i < $X; $i++){
          $increase += $customers[$i] * $grumpy[$i];
      }
      $maxIncrease = $increase;
      for($j = $X; $j < $length; $j++){
          $increase = $increase + $customers[$j] * $grumpy[$j] - $customers[$j - $X] * $grumpy[$j - $X];
          $maxIncrease = max($maxIncrease, $increase);
      }
      return $count + $maxIncrease;
   }
}
posted @   狩猎者丿七夜  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示