12.4参加了港大的 CS 上海场面试,对面试准备的历程进行一个小小的总结。
考试分为笔试和面试两个部分,其中笔试考察的范围包含高数、线代、概率等数学知识,还有编程知识的运用,不限定语言,我使用的是python。
面试一方面会对笔试进行一个总结,另一方面根据所选方向问一些问题,氛围总体比较轻松愉快,面试官也比较和善。
我在这次准备的过程中主要使用的复习材料有
- 往年论坛面筋
- 高数、线代、概率
- leetcode刷题
以下贴上一些准备时写的程序
def chooseBall(N):
if N == 0: return 0
if N == 1: return 1
if N == 2: return 2
if N == 3: return 4
else: return chooseBall(N-1) + chooseBall(N-2) + chooseBall(N-3)
#################
def isSingle(l):
biggest,index = findBiggest(l)
for ind, item in enumerate(l[0 : index]):
if(ind >=1 ):
if(item <= l[ind - 1]):
return False
for ind, item in enumerate(l[index+1: ]):
if(ind >= 1):
if(item >= l[index+1:][ind - 1]):
print(l[index+1:][ind - 1])
return False
return True
def findBiggest(l):
biggest = 0
ind = 0
for index, item in enumerate(l):
if item > biggest: biggest, ind = item, index
else:
continue
return biggest,ind
##############
def divideInteger(N):
if(N == 0): return 0
if(N == 1): return 1
if(N == 2): return 1
if(N == 3): return 2
else: return divideInteger(N-1) + divideInteger(N-3)
################
def Bulb(l,length,n):
for i in range(1, n+1):
for j in range(0, (length // i)): #注意这里求倍数用的方法
l[j * i] = changeStatus(l[j * i])
return l
def changeStatus(item):
if(item == 0): return 1
if(item == 1): return 0
l = [0]*10
print(Bulb(l, 10,9))
#################
def gcd(a, b):
if(b == 0):
return a
else:
return gcd(b, a%b)
def lcm(a, b):
return a * b / gcd(a, b)
print(lcm(2,5))
##############
def isPrime(a):
if(a == 2): return True #注意这里判断的时候一定要把2加上
for i in range(2, a):
if a % i == 0: return False
else: return True
def choosePrime(a, b):
r = []
for k in range(a, b):
if(isPrime(k) == True):
r.append(k)
return r
print(choosePrime(1,10))
如果需要论坛面筋的整理word和高数、线代、概率的知识点总结,欢迎加微信:513824535私聊
网友评论