1.11 bilibili求职攻略-理工科版本

1.11.1 校园招聘时间流程

网申

机考

面试

offer

8月-9月

8月-9月

8月-9月

9月-10月

1.11.2 薪资爆料

岗位

地点

学历

薪资范围(年薪)

24届Java开发

北京

本科

15-40K * 14薪

Java开发(实习)

北京

本科

200-500元/天

前端开发(实习)

北京

本科

200-500元/天

人工智能算法实习生

上海

本科

300-400元/天

*数据来源 牛客用户,更多详细信息可到牛客查询

1.11.3 面试真题

1、 漫展打卡奖励

【题目描述】

某次漫展,已知有n个打卡点,每个打卡点的活动需要 m_i 分钟完成,完成后获得奖励点 r_i,已经打卡过的点不能再去。

需要在规定 m 分钟内完成,尽可能多的收获奖励点,求获得最多的奖励点数。

输入描述:

第一行两个整数,打卡点的数量 n 和限制时间 m

第 2 到 1 + n 行,每行两个整数 m_i,r_i

数字以空格分割,其中 0 < n <= 100,1 <= m <= 120,1 <= m_i <= 10,1 <= r_i <= 100

输出描述:

整数, 最大的奖励点数

输入样例:

4 6

2 4

2 35

1 43

2 10

输出样例:

88

【解题思路】

01背包问题

【参考代码】

import sys

n, m = map(int, sys.stdin.readline().strip().split(" "))

points = []

for i in range(n):

m_i, r_i = map(int, sys.stdin.readline().strip().split(" "))

points.append([m_i, r_i])

#print(points)

# dp[i][j]: 当前已考虑i之前的所有点,剩余时间为j时的得分

dp = [[0]*(m+1) for _ in range(n+1)]

for i in range(1, n+1):

for j in range(1, m+1):

# 剩余时间不足

m_i, r_i = points[i-1][0], points[i-1][1]

if j < m_i:

dp[i][j] = dp[i-1][j]

else:

dp[i][j] = max(dp[i-1][j], dp[i-1][j - m_i] + r_i)

print(dp[n][m])

2、 整数转罗马数字

【题目描述】

罗马数字包含以下七

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024校招宝典——软件版本 文章被收录于专栏

牛客独家出品,理工科求职必备攻略,适合岗位: 软件开发、数据库分析、软件测试、前端后端开发

全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务