四道面試遇到的題(簡單,大神莫噴)
阿新 • • 發佈:2018-12-17
1.二分法,查詢第一個出錯的檔案(leetcode有原題)
def find_first(n):
left=1, right=n
while True:
mid=(left+right)/2
if isBadversion(mid):
if mid==1 or not isBadversion(mid-1):
return mid
right=mid-1
left=mid
2.輸出兩個列表的交集
a=[1,2,3,4] b=[2,3,4,5] c=[val for val in a if val in b]
3.輸出一個檔案中,前十的單詞
def find_word(filename): result_dict={} with open(filename) as fp: for i in fp: wordlist=i.split() for j in wordlist: if not result_dict.has_key(j): result_dict[j]=1 else: result_dict[j]+=1 sort_result=sorted(result_dict.items, key=lambda x:x[0], reverse=True) return sort_result[:11]
4.兩數之和O(n)複雜度
def sum_2(nums, target):
num_dic={}
for i in range(len(nums)):
if not num_dic.has_key(nums[i]):
num_dic[target-nums[i]]=i
else:
return [num_dic.get(nums[i])+1, i+1]