博客
关于我
LeetCode:1052. 爱生气的书店老板————中等
阅读量:360 次
发布时间:2019-03-05

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

为了解决这个问题,我们需要找到书店老板营业期间最多有多少客户能够感到满意。满意客户数包括两部分:一部分是不生气的时间的顾客数量,另一部分是在某个连续X分钟窗口内被赶走的顾客数量。

方法思路

  • 问题分析

    • 书店老板在每分钟可能会生气或者保持冷静。
    • 如果生气,那分钟的顾客不满意,如果保持冷静,顾客满意。
    • 老板可以使用一次秘密技巧,使其连续X分钟保持冷静。
  • 关键思路

    • 计算所有不生气的顾客数量(sum1)。
    • 使用滑动窗口技术找到在连续X分钟内生气的顾客数量的最大值(sum2)。
  • 算法选择

    • 使用滑动窗口技术来解决窗口问题,确保时间复杂度为O(n)。
    • 两个循环遍历数组,分别计算sum1和sum2。
  • 解决代码

    from typing import Listclass Solution:    def maxSatisfied(self, customers: List[int], grumpy: List[int], X: int) -> int:        n = len(customers)        sum1 = 0        for i in range(n):            if grumpy[i] == 0:                sum1 += customers[i]                if X == 0:            return sum1                current = 0        for i in range(X):            current += customers[i] * grumpy[i]        max_sum2 = current                for i in range(X, n):            current += customers[i] * grumpy[i] - customers[i - X] * grumpy[i - X]            if current > max_sum2:                max_sum2 = current                return sum1 + max_sum2

    代码解释

  • 初始化

    • sum1 计算所有不生气的顾客数量。
    • current 用于滑动窗口中当前窗口内生气的顾客数量总和。
  • 滑动窗口

    • 初始化窗口为前X个元素,计算初始窗口内生气的顾客数量总和。
    • 遍历剩余元素,每次滑动窗口,更新窗口内生气的顾客数量总和,记录最大值。
  • 返回结果

    • 总满意客户数是sum1加上最大窗口内生气的顾客数量总和。
  • 通过这种方法,我们可以在O(n)时间复杂度内解决问题,适用于大数据量。

    转载地址:http://kvog.baihongyu.com/

    你可能感兴趣的文章
    Java面向对象
    查看>>
    JAVA带标签的break和continue
    查看>>
    Java获取线程基本信息的方法
    查看>>
    vue源码分析(MVVM篇)
    查看>>
    设计模式之组合模式
    查看>>
    (Python学习笔记):字典
    查看>>
    (C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
    查看>>
    leetcode 14 最长公共前缀
    查看>>
    做做Java
    查看>>
    C++并发与多线程(一)
    查看>>
    计算机网络子网划分错题集
    查看>>
    java一些基本程序
    查看>>
    vue-依赖-点击复制
    查看>>
    LeetCode 116填充每个节点的下一个右侧结点指针
    查看>>
    2021-4-28【PTA】【L2-1 包装机 (25 分)】
    查看>>
    Arduino mega2560+MPU6050利用加速度值控制舵机
    查看>>
    紫书——蛇形填数
    查看>>
    A Guide to Node.js Logging
    查看>>
    webwxbatchgetcontact一个神奇的接口
    查看>>
    Edge浏览器:你的的内核我的芯
    查看>>