题目来源:牛客网
在商城的某个位置有一个商品列表,该列表是由L1、L2两个子列表拼接而成。当用户浏览并翻页时,需要从列表L1、L2中获取商品进行展示。展示规则如下:
用户可以进行多次翻页,用offset表示用户在之前页面已经浏览的商品数量,比如offset为4,表示用户已经看了4个商品
n表示当前页面需要展示的商品数量
展示商品时首先使用列表L1,如果列表L1长度不够,再从列表L2中选取商品
从列表L2中补全商品时,也可能存在数量不足的情况
请根据上述规则,计算列表L1和L2中哪些商品在当前页面被展示了
输入描述:
1 | 每个测试输入包含1个测试用例,包含四个整数,分别表示偏移量offset、元素数量n,列表L1的长度l1,列表L2的长度l2。 |
输出描述:
1 | 在一行内输出四个整数分别表示L1和L2的区间start1,end1,start2,end2,每个数字之间有一个空格。 |
输入例子1:
1 | 2 4 4 4 |
输出例子1:
1 | 2 4 0 2 |
1 | import java.util.Scanner; |
小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。
荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。
有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。
输入描述:
1 | 第一行两个数 n, m |
输出描述:
1 | 小易这局游戏获得的分数 |
示例1
输入
1 | 3 9 |
输出
1 | 2 |
思路:统计个数找最小值。
1 | import java.util.*; |
由前序数组、中序数组转换成二叉树
1 |
|
分治
分治思想的绝好例子:二维平面上有 n 个点,如何快速计算出两个距离最近的点对?
分治算法应用-最近点对的最小距离-hdu 1007 Quoit Design
todo
LinkedHashMap 的好例子
- 用 linkedHashMap 既做 hash 判重,又记录了插入顺序。
- 需要 iterator 进行递推
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
1 |
|