每日一题|2073. 买票需要的时间|循环数组、下标分类

news/2024/9/29 17:50:37/

 

本题的数据范围比较大,如果是直接模拟的话会超时。

所以,一个更直接的想法是,在第k个人买完时,每个人分别都花了多少时间?

也就是,求出买票循环结束前每个人所花的时间。

那么,对于k之前的人,他们会在k买完票之前和k一样排到队首的机会,所以最多能够买ticket[k]的票,自身需要买ticket[i],所以在二者之间取最小值。同时,k买的恰好是ticket[k]张票,所以两个可以合并成一个情况。when i <= k: time = min(ticket[k], ticket[i])

对于k之后的人,他们在k买完之后那一轮无法排到队首,所以最多能买ticket[k] - 1张票。when i > k: time = min(ticket[i], ticket[k] - 1)

从头到尾遍历全部的ticket,将每人的时间累积,得到最终结果。

class Solution(object):def timeRequiredToBuy(self, tickets, k):""":type tickets: List[int]:type k: int:rtype: int"""res = 0n = len(tickets)for i in range(n):if i <= k:res += min(tickets[i], tickets[k])else:res += min(tickets[i], tickets[k] - 1)return res

http://www.ppmy.cn/news/1532023.html

相关文章

Qualcomm AI Hub模型优化1: Whisper-Base-En导出及问题解决

1 从Qualcomm AI Hub Module中选择Whisper-Base-En模块部署 1.1 进入module虚拟环境 python3 -m venv qai_hub_models_env && source qai_hub_models_env/bin/activate1.2 使用pip安装高通音频转录包 pip install "qai_hub_models[whisper_base_en]" 1.3…

Solidity智能合约中的异常处理(error、require 和 assert)

Solidity 中的三种抛出异常方法&#xff1a;error、require 和 assert 在 Solidity 开发中&#xff0c;异常处理是确保智能合约安全性和正确性的关键步骤。Solidity 提供了三种主要方法来抛出异常&#xff1a;error、require 和 assert。本文将详细介绍这三种方法的用途、实现方…

正则表达式在过滤交换机lldp信息的应用举例

#include <iostream> #include <string> #include <regex> #include <vector> #include <unordered_map> #include <sstream> #include <unistd.h> // For usleep// 假设存在的 LOG_INFO 和 LOG_WARNING 函数 #define LOG_INFO(...)…

SpringMVC4-SpringMVC获取请求参数

目录 通过ServletAPI获取&#xff08;不常用&#xff09; 通过控制器方法的形参获取请求参数 RequestParam RequestHeader CookieValue 通过POJO获取请求参数 解决获取请求参数的乱码问题 test_param.html&#xff1a; <!DOCTYPE html> <html lang"en&qu…

性能调优知识点(mysql)三

SQL底层执行原理 MySQL的内部组件结构&#xff1a;大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层store两部分 Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xf…

R包:VennDiagram韦恩图

加载R包 library(VennDiagram)数据 # Prepare character vectors v1 <- c("DKK1", "NPC1", "NAPG", "ERG", "VHL", "BTD", "MALL", "HAUS1") v2 <- c("SMAD4", "DKK1…

一、Spring Boot集成Spring Security之自动装配

Spring Boot集成Spring Security之自动装配介绍 一、实现功能及软件版本说明二、创建Spring Boot项目三、查看自动装配配置类四、自动装配配置类之SecurityAutoConfiguration1、SecurityAutoConfiguration部分源码2、主要作用3、SpringBootWebSecurityConfiguration3.1、Spring…

深入探讨AI 神经网络:类型、特点与创新应用

一、引言 1.1 背景 随着科技的飞速发展,人工智能已经成为当今社会的热门领域。在人工智能的发展过程中,神经网络扮演着至关重要的角色。神经网络是一种模拟人类大脑神经元结构的计算模型,它通过大量的神经元相互连接并进行信息处理,从而实现对数据的分析和预测。不同类型…