佬,手写代码优化后遍历几次呢 我这边想至少要两次吧 不知道有没有更好的思路
点赞 1

相关推荐

11-01 14:27
已编辑
北京林业大学 Java
 最新消息本来周五约我二面 到了周五下午给我说岗位关了??? 这家弄的# 10.28面经26日常实习,百度meg下aigc生产系统研发工程师Golang方向。## 自我介绍语速太快了介绍完面试官把我的简历都没看完...## 实习经历询问复述了一下实习干了什么(中科院的一个小项目,其实非常水,但是就纯吹牛),询问了一些K8s,Docker,没有太深入询问。## 项目询问是跟着一本书做的项目,比较垃圾,描述项目整体有什么功能,描述完之后询问项目中的某个具体功能如何实现(用户验证),面试官见我的项目比较一般(确实是两个玩具项目),所以没有太大的兴趣。## 八股拷打### Golang拷打一开始看我简历上有熟悉Java及其框架(确实学过但是忘得差不多)+了解Rust语言,遂询问为什么Java转Go(被迫...),讲讲Rust语言(讲了我依稀记得的Rust的生命周期lifetime,想讲ownership的时候忘了具体概念了,就说不太清楚了)1. slice底层原理    * 只知道长度,容量,具体扩容机制忘了。2. Map的底层原理    * 讲了讲原生Map为什么线程不安全,如何解决这个线程安全问题### 数据库1. Mysql事务是什么?事务级别?如何使用事务?    * 吟唱八股    * 后续询问了一个为什么可重复读是Mysql默认的事务级别,与什么有关系?(我答与Innodb,MyIsam应该没关系,至于为什么我又重复了一遍什么是可重复读,没再深究)如果我没记错,没有问redis?## 代码题### Go语言题```gofunc main() {    original := []int{1, 2, 3}     copied := original[:2]    copied = append(copied, 4)    original = append(original, 5)    copied = append(copied, 6)    original = append(original, 7)    fmt. Printin("original===",original)    fmt.Printin("copied==="copied)}```询问上述代码的输出结果,其实就是slice的底层原理,正如上面所说我对这里不是很熟悉,开始一眼看过去以为是相等,但是想了想不对,印象中扩容没有那么简单,最后属于是蒙对了。* 具体来说,当 append 导致切片的长度超过其容量时,Go 会自动为切片分配一个新的、更大的底层数组,并将原数组的内容复制到新数组中* 扩容机制为2倍扩容,一方扩容后,指向的就是新数组,另一方还是指向底层的旧数组,所以最后结果不同了。### 手撕题**题目要求**小明 有n天假期,每天他可以进行三种活动中的一种,每种活动给他带来的愉悦值各不相同。如果当天进行过某一种活动,第二天即不能进行这种活动,求n天后小明能获得的最大愉悦值310 40 7020 50 8030 60 90210一道常见的动态规划,由于第一次面试时手撕代码,紧张地看了两分钟题目都没看懂...最后手撕出结果,出错,讲述思路的过程中改对了。## 反问阶段1. 寻求建议,指出项目有点简陋(这个我承认);2. 询问部门职责3. 询问会有几面(2-3)## 总结面试官人非常好,不紧不慢,态度温和,整个过程大概50分钟左右,问的题目算是简单的了,如果能进二面肯定就是狠狠地拷打了,继续努力吧,感谢百度给了这次大厂处女面的机会。面试确实能给自己查缺补漏不少东西并提供未来努力的方向。
查看28道真题和解析
点赞 评论 收藏
分享
牛客网
牛客企业服务