地平线 应用软件工程师

地平线一面 8.22(70min)

一、自我介绍

二、项目(10min)

单例模式作用,线程池实现过程

问了学习情况,代码如何管理,脚本?编译和Makefile?Linux下调试工具?调试方法(进程崩溃)?有没有其他项目?怎么练习算法?

三、八股文(20min)

1.多态,虚函数,虚函数表,虚表指针,多态实现方法,虚函数表内部如何存储,纯虚函数,为什么要用纯虚函数,为什么析构函数要虚函数,为什么内存泄漏,析构函数顺序

2.智能指针原理,shared_ptr怎么引用计数的,什么时候引用计数++,循环引用问题

3.右值引用,在哪使用,右值引用的好处

4.lambda底层,怎么写的,中括号里面是什么,再哪会用到

5.函数指针,C++中,在哪会用到

6.编译过程、内存分布,哪些在栈区,栈区的特点,为什么不用手动释放对象

7.模板,在哪使用,模板底层原理

8.STL容器有哪些,vector底层,怎么遍历,怎么申请内存,适配器的函数,vector怎么扩容,map和unordered_map的区别,时间复杂度,哈希冲突解决放法

9.二叉搜索树性质。

四、算法

1.手写二叉搜索树,三个条件:①用模板 ②用vector插入数据③写出后序遍历(22min)

2.写个快排(2min)

五、反问

问了我聊不了解这个公司

#地平线求职进展汇总##地平线信息集散地##23届找工作求助阵地#
全部评论
佬这是实习还是正式岗位啊,问这么多啊
点赞 回复 分享
发布于 2024-05-18 10:34 安徽

相关推荐

1.自我介绍2.介绍一下mcp, skills3.了解react哪些状态管理库4.对话是sse还是什么?是用fetch还是EventSource?5.ts中的any 和 unknown讲一讲6.是直接用组件库的组件还是自己封装了一些别的7.代码输出题1function main() {{var a = 1let b = 2}console.log(a);console.log(b);}main()console.log(a);8.什么是块级作用域 全局作用域 函数作用域9.代码输出题2for (var i = 0;i < 5;i++) {setTimeout(() => {console.log(i);}, 100);}10.代码输出题3for (var i = 0; i < 5; i++){function printText(temp) {setTimeout(() => {console.log(temp);}, 100);}printText(i)}11.代码输出题4for(var i = 0;i < 5;i++){function printText(temp) {var temp = isetTimeout(() => {console.log(temp);}, 100);}printText(i)}12.代码输出题5for(var i = 0;i < 5;i++){function printText(temp) {setTimeout(() => {var temp = iconsole.log(temp);}, 100);}printText(i)}13.点击控制台输出题export default function App() {const [count, setCount] = useState(0)console.log('render',count)return (<div><h1>{count}</h1>{setCount(count + 1)setTimeout(() => console.log('setTimeout', count), 1000)}}>+1</div>)}//这个组件点击按钮后,控制台的输出顺序和值如下:// 1. render 1 (组件重新渲染, count 更新为 1)// 2. setTimeout 0 (1秒后输出,注意这里是 0 而不是 1)14.算法:给有序数组arr = [-4, -1, 0, 3, 5],返回平方后的排序// 有序数组平方后排序const arr = [-4, -1, 0, 3, 5]function solution(arr) {const len = arr.lengthconst result = new Array(len)let left = 0let right = len - 1let index = len - 1while (left <= right) {if (arr[left] * arr[left] > arr[right] * arr[right]) {result[index] = arr[left] * arr[left]left++} else {result[index] = arr[right] * arr[right]right--}index--}return result}console.log(solution(arr));15.反问
查看14道真题和解析
点赞 评论 收藏
分享
评论
6
38
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务