OPPO 0315 c卷 笔试题
20 道选择题+3 道编程题
选择题:Linux命令,try catch finally异常处理,Mysql语句,HTTP,CPP代码题,Java代码题等(CPP 选手表示不会Java)
编程题:
1. 我们有一个大小为 n 的数组 a1, a2, ..., an 。我们可以选择一个元素 ai ,将其变成它的相反数 ai → (-1) × ai 。如果此时数组的和在区间 0, t 内,那么这个选择是“好的”。我们的目标是计算有多少种选择是“好的”。
2. 题目要求我们计算删除数组中每个元素后的 MEX 值。MEX 的定义是数组中未出现的最小非负整数。例如:
数组 0, 1, 2 的 MEX 是 3 ,因为 3 是未出现的最小#非负整数。
数组 1, 2, 3 的 MEX 是 0 ,因为 0 是未出现的最小非负整数。
我们需要为数组中的每个元素 ai ,计算删除 ai 后剩余数组的 MEX 值,并输出结果。
3. 给定一个长度为 n 的字符串 s,其中某些位置可能为问号(?),问号可以被替换为任意数字。求所有可能的替换方式中,使得 s 表示的数字是 3 的倍数的个数。结果需要对 10^9 + 7 取模。注意,不能有前导零(例如,03 不是有效的数字)。#OPPO笔试# #笔试# #26届暑期实习#
选择题:Linux命令,try catch finally异常处理,Mysql语句,HTTP,CPP代码题,Java代码题等(CPP 选手表示不会Java)
编程题:
1. 我们有一个大小为 n 的数组 a1, a2, ..., an 。我们可以选择一个元素 ai ,将其变成它的相反数 ai → (-1) × ai 。如果此时数组的和在区间 0, t 内,那么这个选择是“好的”。我们的目标是计算有多少种选择是“好的”。
2. 题目要求我们计算删除数组中每个元素后的 MEX 值。MEX 的定义是数组中未出现的最小非负整数。例如:
数组 0, 1, 2 的 MEX 是 3 ,因为 3 是未出现的最小#非负整数。
数组 1, 2, 3 的 MEX 是 0 ,因为 0 是未出现的最小非负整数。
我们需要为数组中的每个元素 ai ,计算删除 ai 后剩余数组的 MEX 值,并输出结果。
3. 给定一个长度为 n 的字符串 s,其中某些位置可能为问号(?),问号可以被替换为任意数字。求所有可能的替换方式中,使得 s 表示的数字是 3 的倍数的个数。结果需要对 10^9 + 7 取模。注意,不能有前导零(例如,03 不是有效的数字)。#OPPO笔试# #笔试# #26届暑期实习#
全部评论
笔试三道a了,上午一看复筛不通过
第二题:
先计算原始数组的 MEX 值,就用set去重,从mex=0开始找第一个没出现的就是了,记为 origin_mex 。如果删除某个元素后,剩余数组的 MEX 值可能小于或等于origin_mex 。使用一个哈希表统计数组中每个元素的次数。然后遍历数组nums,判断当前元素值是否小于origin_mex且只出现了一次,那么删掉该元素后数组的新mex就是它自己,同理就能得到全部答案了。
复筛挂了,逆天
复筛算是笔试通过了吗
第三题:
使用动态规划来记录当前字符串前缀的余数(模 3 的结果)。对于每个字符,如果是数字,则更新余数;如果是 ? ,则枚举所有可能的数字(0-9),并更新余数。设 dp[i][r] 表示前 i 个字符的余数为 r 的方案数。对于每个字符,更新 dp[i][r]的值。还需要排除前导零的情况,如果字符串的第一个字符是 ?,则不能替换为 0 。最终结果存储在 dp[n][0],表示整个字符串的模3余数为 0 (即3的倍数)的方案数。
第一题:
先计算原始数组元素和sum ,遍历数组,对于每个元素 ai ,计算将其变为相反数后的新和 new_sum = sum - ai + (-ai) = sum - 2 * ai ,然后判断newsum是否在区间内:如果 0 ≤ new_sum ≤ t ,则这个选择是“好的”,遍历完所有元素后,计算满足条件的“好的”选择数量。
相关推荐
01-07 09:54
广东工业大学 后端工程师 行云流水1971:优化后简历(以 “后端开发岗” 为目标)
基本信息
姓名:XXX | 电话:XXX | 邮箱:XXX
求职意向:后端开发工程师 | 意向城市:XXX
教育经历
2023.09-2027.07 XX 大学 | 计算机科学与技术 | 本科
核心课程:Java 程序设计、数据库原理、计算机网络、数据结构(成绩均 85+)
技能关联:掌握 Java 基础语法、MySQL 增删改查,为后端开发奠定技术基础
项目经历
项目 1:小说推荐 - 大数据智能推荐平台 | 后端开发 | 2025.09-2025.12
技术栈:Java、SpringBoot、MySQL、Redis、Kafka
核心动作:
参与用户行为数据采集模块开发,用 Kafka 实现日志数据异步传输,峰值吞吐量提升 40%;
基于 MySQL 设计用户 - 小说关联表,配合 Redis 缓存热门推荐列表,页面响应时长从 300ms 缩短至 120ms;
成果:支撑日均 1000 + 用户访问,推荐内容点击率较初始版本提升 25%。
项目 2:在线博客 - 个性化博客分享平台 | 后端开发 | 2025.03-2025.06
技术栈:Java、SpringBoot、MyBatis、MySQL
核心动作:
开发博客发布 / 编辑接口,通过 MyBatis 实现数据持久化,接口成功率达 99.8%;
设计用户权限控制逻辑,区分普通用户 / 管理员操作权限,避免非法内容发布;
成果:完成 5 个核心功能模块开发,实现博客内容的全流程管理。
技能证书
技术栈:熟练使用 Java、SpringBoot、MyBatis 进行后端开发;掌握 MySQL 数据库设计与优化、Redis 缓存应用
工具:Git 版本管理、Postman 接口测试
自我评价
具备 Java 后端开发基础,参与 2 个完整项目的后端模块开发,能独立完成接口编写、数据持久化等工作;熟悉 SpringBoot 等主流框架,可快速上手企业级开发流程,具备良好的代码规范与逻辑思维。
需要我帮你补充项目的量化成果细节(比如接口性能、用户数据等)吗?若需要更精准的岗位适配优化,可私信沟通。
点赞 评论 收藏
分享

