b*********n 发帖数: 26 | 1 最近onsite被问了一道题,面试官貌似是想让我写代码,但我怎么都感觉这是个设计题。
到现在还不知道这题应该怎么解。
题目是这样的:
实现两个function :recordEvent 和 getCount
recordEvent 记录不同的eventName.
getCount 需要能够拿到一段时间内不同granularity 下不同eventName 的count。
具体如下:
enum granularity {
DAY, HOUR, MINUTE
}
/**
* A new event came, will call this function
* @param eventName
* @param timestamp
*/
public void recordEvent (String eventName, long timestamp) {
}
/**
*
* @param eventName
* @param gType
* @param startTime
* @param endTime
* @return a list of count of the granularity within the given time
range
*/
public long[] getCount (String eventName, granularity gType, long
startTime, long endTime) {
return null;
} | b*********n 发帖数: 26 | | s***i 发帖数: 6149 | 3 既然是不同eventname的count,为何又给定一个eventname作为input? | b*********n 发帖数: 26 | 4 eventname 作为input来确定是哪 哪种event
【在 s***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 既然是不同eventname的count,为何又给定一个eventname作为input?
| s***i 发帖数: 6149 | 5 假如granutity是DAY,start time是day1, end time是day 2
那应该返回一个long[2],分别为day1的count和day2的count,对么?
【在 b*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : eventname 作为input来确定是哪 哪种event
| b*********n 发帖数: 26 | 6 对于 getcount 函数, 它有4个参数
granularity, start time, end time, event type.
在你的例子里面
granutity是DAY,start time是day1, end time是day 2, 还需要一个eventname 比如说
"PageView"
然后返回的就是long[2], 分别为PageView 这个eventname 这个event的 day1的count
和day2的count
【在 s***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 假如granutity是DAY,start time是day1, end time是day 2 : 那应该返回一个long[2],分别为day1的count和day2的count,对么?
| s***i 发帖数: 6149 | 7 恩,我就是这么理解的,你已经澄清了eventname,因此我的例子中结果默认是基于提
供eventname的。主要是想确认返回数组的返回值
count
【在 b*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 对于 getcount 函数, 它有4个参数 : granularity, start time, end time, event type. : 在你的例子里面 : granutity是DAY,start time是day1, end time是day 2, 还需要一个eventname 比如说 : "PageView" : 然后返回的就是long[2], 分别为PageView 这个eventname 这个event的 day1的count : 和day2的count
| b*********n 发帖数: 26 | 8 对啊,有什么想法么?
不清楚这题考点在哪啊。
【在 s***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 恩,我就是这么理解的,你已经澄清了eventname,因此我的例子中结果默认是基于提 : 供eventname的。主要是想确认返回数组的返回值 : : count
| s***i 发帖数: 6149 | 9 java不熟,c++我的思路就是用map,name是key, value是timestamp的set,找到对应
eventname的set之后遍历,根据granurity计数。。
看起来像是database应该干的事儿啊
【在 b*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 对啊,有什么想法么? : 不清楚这题考点在哪啊。
| p*********g 发帖数: 2998 | 10 这题冒私不难, 不过不知道考点在哪里, 如果我写的话
要定义个class event{
} |
|