Pocket Gem 面試3

weixin_34162695發表於2016-04-05

第三次電話面試,

a stream data find the number's occurrence more than once. 

看到面經這道題,想了個建造一個array 的方法,誰知道要用bitmap, bitmap 是什麼鬼,還有就是算空間複雜度的時候的問題。 

我的解法:

def sizeN(nums):

if nums is None or len(nums) == 0 or len(nums) == 1:

return None

result = [0]*25000

for elem in nums:

result[elem] += 1

a = []

for i in range(len(result)):

if result[i] > 1:

a.append(i)

return a

print sizeN([1,2,2,3,4,4])


演算法的空間複雜度: 對於32 位系統,一個integer 所佔空間是4byte, 

array  4 *32000

map 4 *32000

all = 8*32000 *0.001 = 200 kb

減少空間負責度:用bit map

相關文章