【Lintcode】1851. Buy Passes
题目地址:
https://www.lintcode.com/problem/buy-passes/description
有一个人叫Alex,想去博物馆买票,它在队伍中站的位置是kkk,再给定一个正整数数组,每个数代表队伍里每个人想买的票的数量。服务台卖票每次只会卖一张,如果一个人买票没买全,就会走到队伍末尾继续排队。忽略到队尾重新排队的时间,假设每个人买票所花时间都是111个单位,问Alex买完票要花多久。
考虑站在Alex前面的人,如果这个人需要买的票的数量大于等于Alex要买的数量aaa,那么Alex花在等他的时间就是aaa,原因是每次Alex要买一张票的时候,他们就会在前面先买;而如果这个人需要买的票的数量小于aaa,比如说是bbb,那么Alex买前bbb张票的时候需要等这个人买票,之后就不用等了。
而对于站在Alex后面的人,可以考虑Alex买完一张票后排在队尾时的情况,按照上面分析的思路,只需要把上面的aaa变成a−1a-1a−1考虑即可。
代码如下:
public class Solution {/*** @param arr: the line* @param k: Alex place* @return: the time when Alex requires to buy all passes*/public int buyPasses(int[] arr, int k) {// Write your code here.if (arr == null || arr.length == 0) {return 0;}int time = 0;for (int i = 0; i < arr.length; i++) {// 如果站在Alex之前,那么Alex等他的时间就是arr[i]和Alex自己票数的较小者。// 同时顺便把Alex自己买票的时间加进去// 如果站在Alex之后,那么Alex等他的时间就是arr[i]和Alex自己票数减一的较小者。if (i <= k) {time += Math.min(arr[i], arr[k]);} else {time += Math.min(arr[i], arr[k] - 1);}}return time;}
}
时间复杂度O(n)O(n)O(n),空间O(1)O(1)O(1)。
【Lintcode】1851. Buy Passes相关推荐
- 【LintCode】算法题 1443. 最长AB子串
描述 给你一个只由字母'A'和'B'组成的字符串s,找一个最长的子串,要求这个子串里面'A'和'B'的数目相等,输出该子串的长度. 这个子串可以为空. s的长度n满足 2<=n<=1000 ...
- 【lintcode】树形数据结构之Maxtree, Tree iterator, remove bst node, 优先队列之动态中位数Median, 矩阵dfs之word search II,最大连
解析 max ksubarray sum: 最大和 of 连续子序列 => 最大和 of k份连续子序列 属于dp,30行代码搞定,注意一些边界. substr diff: 无queu ...
- 【POJ】2828 Buy Tickets(线段树+特殊的技巧/splay)
http://poj.org/problem?id=2828 一开始敲了个splay,直接模拟. tle了.. 常数太大.. 好吧,说是用线段树.. 而且思想很拽.. (貌似很久以前写过貌似的,,) ...
- 【Lintcode】1413. Tree
题目地址: https://www.lintcode.com/problem/tree/description 给定一个无向图,其有树性质,并且顶点编号为111的为树根(也就是这个图是个有根树).要求 ...
- 【Lintcode】1645. Least Subsequences
题目地址: https://www.lintcode.com/problem/1645/ 给定一个长nnn的数组AAA,问AAA最少能分解为多少个严格递减的子序列之并. 在AAA上定义偏序关系< ...
- 【Lintcode】1375. Substring With At Least K Distinct Characters
题目地址: https://www.lintcode.com/problem/substring-with-at-least-k-distinct-characters/description 给定一 ...
- 【Lintcode】1647. Path Search
题目地址: https://www.lintcode.com/problem/path-search/description 给定一个无向图,再给定两个点SSS和TTT,求所有SSS到TTT的简单路径 ...
- 【Lintcode】1799. Sequence Summation
题目地址: https://www.lintcode.com/problem/sequence-summation/description 给定三个数i,j,ki,j,ki,j,k,计算i+(i+1) ...
- 【Lintcode】1367. Police Distance
题目地址: https://www.lintcode.com/problem/1367/ 给定一个m×nm\times nm×n的矩阵,只含1,0,−11,0,-11,0,−1,111表示警察,000 ...
最新文章
- 【转载】Python常用模块之sys
- python.re模块
- #1407 : 后缀数组二·重复旋律2 (不可重叠最长重复子串问题)
- 文件上传 jqueryForm
- VCL组件之Name属性
- 前端第二篇-学成在线首页(作品)
- Modern Effective C++
- SEO新手快速入门教程
- 折腾不止的追梦人--个人公众号
- U盘有占用空间,但无文件或者都变成了快捷方式
- win10家庭版升级专业版
- C++入门>>初识类
- python可以连续赋值吗_Python连续赋值的两个要点
- 1059 习题4-12 求建筑物高度
- c语言float可以 取余吗,C语言fmod()函数:对浮点数取模(求余)
- 强制页面运行于IE8模式下
- 2014美图网校园招聘Android实习工程师笔试试卷详解
- Python介绍及编程环境搭建
- Spring Cloud Gateway rce
- 什么类型的SSL证书有利于网站安全?
热门文章
- kali:Nessus扫描漏洞并用msf利用攻击xp系统
- 从追MM谈Java的23种设计模式
- linux so reuseport,linux – SO_ATTACH_REUSEPORT_CBPF套接字选项意外行为
- web.config中的连接字符串 ---关于 providerName 特性
- python简单的画图代码爱心,怎么用python代码画心
- 虚拟机安装kali系统最新版2020.4,和别人不一样的方法(附软件换国内源,QQ下载,搜狗输入法下载,输入命令提示权限不足)教程
- Java第12篇输入输出I/O和ASCII码
- html+css基础入门学习教程标记语言——图片替换
- 洛克人java下载_JAVA 1.7并发之LinkedTransferQueue原理理解
- mysql的mis安装各种版本