0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

美图面试C++工程师的经历

工程师人生 来源:工程师吴畏 2019-06-26 16:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上周去美图公司面试C++工程师 有两位面试官

一位面试官问了一些数据结构相关的问题 另一位面试官则问了一些项目相关的问题

交流比较顺畅 和他们的交流也反馈给我一些信息 原来工作中有些地方可以做的更好

比如代码的耗时点的评估

问到数据结构时 面试官问了我这样一个问题

1. 求两个二叉树的子节点的最低公共父节点?

这个问题当时我是这样回答的:递归向上寻找父节点 每一个父节点又各自向下递归寻找另一个要寻找的子节点。 这个做法无疑是低效的。面试官教我这样一种方法:两个子节点都向上递归到根节点 然后逐个验证两条路径中的每个节点是否是公有节点 直到寻找到最低节点。

这个方法明显比我的要聪明不少,另外我查了些资料 其实这个问题还有其他解法

1. 中序遍历

2. 后序遍历

为什么可以用这两种方法呢?

因为两个子节点的公共父节点必定在他们的中间!这是个容易得出的规律。

中序遍历时 按顺序遍历 左 根 右节点

后序则是 左 右 根节点

按照这种方法可以大概圈定出公共节点的范围 再采用递归寻找会快些。

2. 求最小的k个数

这个问题我是这样答的:建立小顶堆 然后拿走堆顶节点后再调整堆为小顶堆

这样的话开销在于 第一次小顶堆的建立

后序每次小顶堆的重调整(开销不像第一次建立那么大)

这一题面试官似乎不是很满意答案 但是我回来想了下 网上能查到的还有用快排实现的

实际上也是用的递归快排 开销也不低 这个问题可能还得再想想。

工程相关的问题:

1. 关于框架的跨平台

这个问题主要也就是回答了下怎么把C++的框架代码应用到Androidios

关于Android方面的我熟悉一些 简单讲了下C调用Java,Java调用C的方法。

以及对应的C++接口阻塞/非阻塞 Java监听C代码的回调这些

ios就简单介绍了下自己用过的Object-C/C++混合编程

2. 关于代码的耗时点

这和我原来的想法有点不一样

原来我认为的优化是通过在代码里替换高IO代码为arm汇编来提高效率

但实际上好像没有这样做

另外面试官还提到了用工具来分析代码性能 我查了一下有不少开源实现

这个要关注一下。 原来的分段式分析耗时的方法还是比较落后 效率比较低一些。

总结

美图的技术实力还是过硬的 原先参加过的面试 基本只问些项目相关的逻辑实现

这次面试问了不少基础相关的问题 不少基础没打扎实 要研究清楚来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1600

    浏览量

    70660
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76716
  • 美图
    +关注

    关注

    0

    文章

    77

    浏览量

    8443
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    人工智能工程师高频面试题汇总:循环神经网络篇(题目+答案)

    后台私信雯雯老师,备注:循环神经网络,领取更多相关面试题随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以
    的头像 发表于 10-17 16:36 492次阅读
    人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:循环神经网络篇(题目+答案)

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    硬件工程师面试/笔试经典 100 题

    分享一些常见的硬件工程师面试/笔试题。公众号后台回复关键字:100题,可获取完整的PDF。--END--免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系,谢谢!加入粉丝
    的头像 发表于 04-30 19:34 1211次阅读
    硬件<b class='flag-5'>工程师</b><b class='flag-5'>面试</b>/笔试经典 100 题

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    硬件工程师面试必看试题(经典)

    硬件工程师面试试题 模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 2、平板电容公式(C=εS/4πkd)。(未知) 3、最基本的如三极管曲线特性。(未知) 4、描述反馈电路的概念
    发表于 04-21 15:36

    如何成为一名嵌入式软件工程师

    如何成为一名嵌入式软件工程师? 01明确岗位的角色与定位 嵌入式软件工程师主要负责开发运行在特定硬件平台上的软件,这些软件通常与硬件紧密集成,以实现特定的功能。 不仅需要精通编程语言(如C/
    发表于 04-15 14:37

    长沙怎么这么难招硬件工程师

    长沙好难招硬件工程师呀,大部分面试的只有课程设计经验,没有额外学习硬件或者动手做东西,招聘也太难了。有实力的请联系 pengyushi@haominoe.com*附件:HAOMIN 招聘启事-初级硬件工程师.pdf
    发表于 04-10 15:44

    硬件工程师:回答我!#回答我 #硬件工程师 #YXC晶振 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2025年03月25日 18:46:59

    一招拿捏电子工程师#被AI拿捏了 #电子工程师 #电子电工

    电子工程师
    安泰小课堂
    发布于 :2025年03月25日 17:30:51

    面试题】人工智能工程师高频面试题汇总:机器学习深化篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-16 13:42 3316次阅读
    【<b class='flag-5'>面试</b>题】人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:机器学习深化篇(题目+答案)

    面试题】人工智能工程师高频面试题汇总:Transformer篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习的那些算法
    的头像 发表于 12-13 15:06 2394次阅读
    【<b class='flag-5'>面试</b>题】人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:Transformer篇(题目+答案)