来源:投稿 作者:LSC
编辑:学姐
unset
unset
一面
unset
unset
自我介绍、介绍项目、研究方向
# 给定一个整数数组 a ,同时给定它的大小n和要找的 k ,请返回第 k 大的数(包括重复的元素,不用去重)
def partition(a, left, right):
pos = left
while left <= right:
while left <= right and a[right] right -= 1
while left <= right and a[left] >= a[pos]:
left += 1
if left tmp = a[right]
a[right] = a[left]
a[left] = tmp
return right
def solve(a, left, right, k):
# left, right = 0, n - 1
# while left <= right:
pos = partition(a, left, right)
if pos == k-1:
return a[pos]
elif pos > k - 1:
right = pos - 1
# pos = partition(a, left, right)
return solve(a, left, right, k)
else:
left = pos + 1
# pos = partition(a, left, right)
return solve(a, left, right, k)
print(solve(a, 0, n - 1, k))
# 给定一个二叉树的根节点root,请你计算它的最大路径和
# 从该树的任意节点出发,经过父=>子或者子=>父的连接,达到任意节点的序列。
# 给出以下的二叉树:
# 1
# 2 3
# 最优路径是:2=>1=>3,或者3=>1=>2,最大路径和=2+1+3=6
-1
2 3
2=>-1=>3 4
import Math
ans = float('-inf')
def dfs(root):
if root == None:
return 0
leftnum = dfs(root.left)
rightnum = dfs(root.right)
treenum1 = root.val + leftnum + rightnum
ans = Math.max(ans, treenum1)
treenum2 = root.val + Math.max(Math.max(leftnum, rightnum), 0)
return Math.max(treenum2, 0)
dfs(root)
print(ans)
介绍 FM、 gbdt、逻辑回归
大模型、stable diffusion
最近面试的人数也比较多
unset
unset
二面
unset
unset
input = ['news/a', 'news/car/a', 'news/car/suv', 'news/car/mpv', 'news/sports/nba',
'news/sports/cbade']
def solve(input):
n = len(input)
tmp = []
res = []
maxl = 0
for i in range(n):
t = input[i].split("/")
maxl = max(maxl, len(t))
tmp.append(t)
for j in range(0, maxl):
d = {}
# if tmp[0][j] not in d:
# d[tmp[0][j]] = []
# d[tmp[0][0]] = []
for i in range(n):
if len(tmp[i]) > j and tmp[i][j] not in d:
d[tmp[i][j]] = set()
if len(tmp[i]) > j + 1:
d[tmp[i][j]].add(tmp[i][j + 1])
res.append(d)
return res
print(solve(input))
关注“
学姐带你玩AI
”公众号,
回复“
简历
”
领取算法工程师万能简历公式+模板