r*******h 发帖数: 315 | 1 刚过了g的电面,recruiter问我能否来得及参加下周的一个special |
s*****r 发帖数: 43070 | |
b**q 发帖数: 247 | 3 就是弄一堆人在同一天 面完了会所有的candidates一起聊聊天喝喝茶 |
l******a 发帖数: 6 | 4 喝茶碰到现公司的同事老板啥的怎么办(⊙_⊙?)
【在 b**q 的大作中提到】 : 就是弄一堆人在同一天 面完了会所有的candidates一起聊聊天喝喝茶
|
l**o 发帖数: 356 | |
r*******h 发帖数: 315 | 6 刚过了g的电面,recruiter问我能否来得及参加下周的一个special onsite event,感
觉时间有点太紧了,不知道是否应该凑这个时间,还是推迟一下。
(抱歉,之前文章没有发完)
电面:要求实现RandomMap,它的put, get, remove, getRandomValue要求是O(1)。 |
s*****r 发帖数: 43070 | |
b**q 发帖数: 247 | 8 就是弄一堆人在同一天 面完了会所有的candidates一起聊聊天喝喝茶 |
l******a 发帖数: 6 | 9 喝茶碰到现公司的同事老板啥的怎么办(⊙_⊙?)
【在 b**q 的大作中提到】 : 就是弄一堆人在同一天 面完了会所有的candidates一起聊聊天喝喝茶
|
l**o 发帖数: 356 | |
|
|
t******5 发帖数: 30 | 11 暂时想到用个hashmap加上一个array, 如果hash collision 的话可以存到一个list里
面,但是没想好怎么做remove() |
t******5 发帖数: 30 | |
r*******h 发帖数: 315 | 13 简单来说就是把key和一组连续整数对应起来,如果删除的话,需要把待删除的key相应
的整数重新定位到最大整数对应的key,然后删除掉最大整数
【在 t******5 的大作中提到】 : 楼主能分享一下解法么
|
c****8 发帖数: 76 | 14 恭喜。楼主可否把解法说详细点?
【在 r*******h 的大作中提到】 : 简单来说就是把key和一组连续整数对应起来,如果删除的话,需要把待删除的key相应 : 的整数重新定位到最大整数对应的key,然后删除掉最大整数
|
C****t 发帖数: 53 | 15 from random import randint
class randomMap:
def __init__(self):
self.map = {}
self.pool = []
def add(self, x):
if x not in self.map:
self.pool.append(x)
self.map[x] = len(self.pool) - 1
def rm(self, x):
if x in self.map:
idx = self.map[x]
self.map[self.pool[-1]] = idx
self.pool[idx] = self.pool[-1]
self.map.pop(x)
self.pool.pop()
def randGet(self):
idx = randint(0,len(self.pool)-1)
return self.pool[idx]
|
b**********5 发帖数: 7881 | |