基礎(chǔ)不好,筆試代碼題沒做好,校招沒offer,趕緊來刷題
[TOC]
兩數(shù)之和
這里采用兩種方法來做,比較性能。
列表
nums = [i for i in range(1,100000000)]
target = 3
class Solution(object):
def twoSum(self,nums,target):
if len(nums) <= 1:
return False
L = []
for i in range(len(nums)):
if nums[i] in L:
return [num[i],i]
else:
L.append(target - num[i])
字典
class Solution(object):
def twoSum(self,nums,target):
if len(nums) <= 1:
return False
L = {}
for i in range(len(nums)):
if nums[i] in L:
return [num[i],i]
else:
L[target - num[i]] = i
從代碼來看,差別就在L 是列表還是字典類型。那我們來比較下他們的計算時間吧
比較計算時間
from time import time
nums = [i for i in range(1,100000000)]
t = time()
target = 3
class Solution(object):
def twoSum(self,nums,target):
if len(nums) <= 1:
return False
L = []
for i in range(len(nums)):
if nums[i] in L:
return [num[i],i]
else:
L.append(target - num[i])
print time()-t
t = time()
target = 3
class Solution(object):
def twoSum(self,nums,target):
if len(nums) <= 1:
return False
L = {}
for i in range(len(nums)):
if nums[i] in L:
return [num[i],i]
else:
L[target - num[i]] = i
print time()-t
結(jié)果:
這里寫圖片描述
看來,字典能優(yōu)化性能。