网站首页 > 技术文章 正文
发起了无数沟通,终于溅起了一点水花,但是需要先笔试,笔试失败了,以下是笔试的题:
第一题(必答)
要实现对系统运行中的错误和用户行为进行统计,通常会采用上传日志的方式。鉴于日志产生频繁,我们需要对日志进行本地缓存处理。为此,我们可以设计一个代码段,其中包含两个参数:timer 和 count。其中,timer 表示每隔多少秒后将本地日志上传一次,而 count 表示累积多少条日志后进行一次上传,请设计一段代码来满足以上需求。
提示:
1. 前端不能使用 setinterval
a. 后端建议写成一个日志类,能在整个项目中使用而不影响性能
第二题(必答)
有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。现在给一串数字(数字长度不超过 20),请返回所有可能的译码结果,比如:
输入:"11",返回值:"aa"、“k”,
输入:“113”,返回值:“aac”、“kc”、“am”
第三题(必答)
算法题:一台收割机收割给不同地块收割获得的钱不同,同时耗费的油量也不同,以下是 6 个地块的耗油量和收益的列表[(1, 1), (7, 9), (6, 10), (2, 4), (3, 5), (6, 10)],请问收割机在给定油量 n=10 (n≥1)的情况下,如何尽可能赚到更多的钱?提示:
1. 使用动态规划,从第一个地块开始计算油量 dp[1]获得最多收益,再一次计算油量 dp[n]的最多收益。2. 上述答案为 16 。
第四题(非必答)
开放式题目:现有一个论坛的贴子列表功能设计,已知如下数据量以及具体功能需求:1. 数据量比较大,每页 100 条,50 万页(5000 万条数据);
2. 贴子的排序根据用户的点赞量从高到低排序;3. 贴子的列表页访问用户多,流量大。
问题: 请合理设计贴子列表架构方案 ,要求如下:
1. 把技术相关的约束条件(即技术上的要求,从业务需要、安全、性能等方面)列出来,越详细越好。
2. 结合上面的约束条件,从以下方面给出您认为最好的解决方案(采用哪些技术手段及关键的算法策略)。
a. 分页处理逻辑
b. 排序算法策略
c. 缓存逻辑
d. 异步加载逻辑
e. 数据索引处理
f. 【选答】分布式架构
3. 备注:直接使用数据库分页是不符合业务要求,不考虑。
第五题(选答加分项)
请在上述 4 道题中,选择其中一题,尝试用 ChatGPT 来解题,比较 AI 代码和自己的代码的差异?说出其中的优缺点,并给出如何借助 AI 提升开发效率的思路;
我的部分解题思路:
第一题:不影响性能,那必须考虑异步刷写,包括两部分,第一是写入本地缓冲区;第二是写存储(本地文件、远程日志服务等)
第二题:需要考虑边界问题,比如A:912,则只能拆成9,1,2或9,12;B:120,只能拆成1、20,因为0单独无解,同理102,只能拆成10、2,所以在递归或者规划的时候要考虑后面的数字能否单独解。
第三题:其实是子序列的问题,给定一个数列,数列中的子序列和小于等于N的可能,这N种可能的收益,再排序,就拿到了最大收益组合。
第四题:个人观点,重点在深分页,用ES,也会遇到深分页的问题,同时因为点赞量可能大量的帖子是一样的,也就是可能有4000万的帖子的点赞量是集中在0-10的情况,所以瀑布流方式通过大于小于某个值的形式,也是不通的。计算了下,帖子ID假设是int64的,则5000万帖子ID大约需要800M的存储空间,个人解决方案:
方案一:使用redis有序集合,设计一个评分公式,根据点赞量和二级排序条件,比如创建时间先后,计算每个帖子的评分,将ID和评分存到有序集合,每次先从有序集合拿出主键,再根据主键批量去取列表的基本数据,基本上常见的流量,比如1万QPS都没问题。
方案二:静态化,大量用户其实只会考虑访问前10页的内容,很少访问后面的数据,则可以在方案一的基础上,将前10页的数据进行静态化,也可以说缓存处理,当帖子的点赞发生变化时,异步将一定时间窗口内的数据重新刷新缓存或静态文件即可。这样基本上压力数据库已经无压力,可以轻松应对10万级别的QPS,甚至100万级别。
方案三:自己设计一个排序服务,替代redis的有序集合功能。需要考虑单点问题,如果是集群,需要考虑集群之间数据同步问题,过于复杂,不建议。
第五题:个人一直有在用GPT,但是说实话,业务逻辑不太重的简单的东西,确实不错,只要业务逻辑比如重的,生成出来的可能都漏洞百出,有时候反复沟通的成本,不如自己写来得快。目前个人觉得把他用来替代搜索引擎是很好的选择,比如你要搜索antd实现一个弹窗,或者表单检验,用谷歌搜索出来很多都是无用的,相反GPT 准确率很好。我选择了第二题让GPT解,写出来的代码,解码是错误的。没考虑到边界问题。
欢迎大家指点,为我后面的面试提供意见。
- 上一篇: 2W字!梳理50道经典计算机网络面试题(收藏版)
- 下一篇: 前端基础知识汇总(一) 前端知识梳理
猜你喜欢
- 2025-06-18 盘点机器人常用的几大主流SLAM算法
- 2025-06-18 蚂蚁金服软件测试工程师一面面试题(附答案)建议收藏
- 2025-06-18 142道最新的Linux面试题及解析!代码清晰直接套用
- 2025-06-18 字节跳动的算法面试题是什么难度?
- 2025-06-18 史上最全的字节跳动 Java 面试题集锦,高级 Java 工程师面试技术
- 2024-10-04 前端面试题(最近) 前端面试题2021及答案
- 2024-10-04 前端基础知识汇总(一) 前端知识梳理
- 2024-10-04 2W字!梳理50道经典计算机网络面试题(收藏版)
- 2024-10-04 数组遍历:JavaScript算法题的解题利器
- 2024-10-04 第六十二期:算法在前端的应用 算法是前端还是后端
你 发表评论:
欢迎- 532℃Oracle分析函数之Lag和Lead()使用
- 531℃几个Oracle空值处理函数 oracle处理null值的函数
- 529℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 519℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 514℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 505℃【数据统计分析】详解Oracle分组函数之CUBE
- 484℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 483℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端密码加密 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)