失效链接处理 |
便利蜂Java笔试面试题 PDF 下载
本站整理下载:
相关截图:
主要内容:
3 个算法题, 3AC, 职位是 JAVA 开发工程师
第一题
leetcode 53 Maximum subarray problem , 算法导论第四章
我就贴我笔记里的, 我自己交的没存
algo
time O(n) space O(1)
n 表示数组长度
DP(具有最优化子结构), 可用数学归纳法证明 , 考虑以 num[i],0<=i<n 结尾的所有子串
code
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
cur=nums[0]
ans=cur
for i in range(1,len(nums)):# 每次只考虑 nums 的前 i+1 个数
# 这一行, cur 存着以 nums[i-1]结尾的子串的和的最大值
if cur>0:
cur+=nums[i]
else:
cur=nums[i]
ans=max(ans,cur)
return ans
第二题
描述
给了一个无向图, 无向图的边还有两种名字, 需要手动创建这个无向图,
再给一个起点和终点, 找出起点到终点的最短路径,
code
复制代码
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
import queue
# bfs with path
mp={}
dirname_mp = {1:"north",-1:"south",2:"east",-2:"west"}
# d
# north 1
# south -1
# east 2
# west -2
# d of s1 is s2
def union(s1,s2,d):
con(s1,s2,d)
con(s2,s1,-d)
|