C++ 面试题9-29

可能有的面试比较水,不要笑我XD

字节跳动 (多媒体开发)

  • 一面
    • 自我介绍
    • 项目经历
    • 两个链表交点
    • 多进程多线程
    • ipc方式           
    • c++的基础知识
      • 动态绑定
      • static的用法
      • 四种cast
    • shell中一个正在运行的程序,ctrl+c终止程序是依赖于什么。还有哪些信号量
    • 知道直播有哪些协议吗
    • 有没有读过开源项目的源码
  • 二面
    • 自我介绍
    • 项目经历
    • 连续最大子数组的和
    • ipc方式
    • c++一些基础知识
      • 虚函数
      • 构造函数可不可以为虚函数,为什么
      • 析构函数可不可以为虚函数,为什么
    • 保持长连接的常用方法
    • 对安卓了解吗
    • rtsp协议的底层看过吗
  • 三面
    • 自我介绍
    • 讨论项目
    • 实习经历
    • 面试官介绍他们部门的东西
    • 一些HR会问的问题
      • 自我的优点
      • 你觉得你老板怎么评价你
      • 你做过最硬核的事情
      • 秋招之后有什么规划没有

百度 (c++/php)

  • 一面
    • c++
      • 虚函数
      • 多态的几种实现
      • 智能指针
      • 左值右值
    • 网络
      • 平时用过什么网络库
    • 操作系统
      • 进程和线程
    • 编程题
      • 给定三个字符串str1和str2,以及str3,判断str3是否由str1和str2交替组成       动态规划
      • 编写一个双向循环链表类,写出插入和删除函数
    • 介绍一下实习经历和项目
    • 问了一下我频繁跳槽的原因
    • 搞过分布式和机器学习没有
    • 有没有什么想问我的
      • 反馈一下写代码的网站体验极差,写代码都有重影
      • 贵部门是搞分布式和机器学习的吗
      • 头条也做大搜,你怎么看
  • 二面
    • 锤了一下实习经历,提了一些比较尖锐的问题,确实也是我没怎么相过的问题
    • 锤了一下基本语法
      • map的swap
      • 有哪几种锁
      • 自旋锁和普通的互斥器有什么区别,哪个可能会陷入内核态
      • yield
      • 协程
    • 有一个hash表,三个读者,一个写者,设计一下数据结构
  • 三面
    • 给定两个整形数组A和B,数组A中元素互不相同,数组B中元素互不相同,求A和B中相同元素,以及时空复杂度
    • 给定两个字符串数组A和B,数组A中元素互不相同,数组B中元素互不相同,求A和B中相同元素,以及时空复杂度
    • 同样,给定整形数组A,但是B是流式输入,怎么处理
    • 数组a换成大文件,怎么处理
    • 内存有限,给定两大文件A和B,大文件中存放若干url,求文件A和B中相同url
    • 给定200G整形数据文件,现在将其随机分散在100台内存4GB的机器上,设每台机器上分到2G数据,将100台机器编号从1到100。现在需要对这些机器上的数据做排序,使得机器1上的数据小于机器2上的数据,机器2上数据小于机器3上数据,依次类推
  • 四面
    • 自我介绍
    • 聊腾讯的项目和商汤的项目
    • 场景题
      • A集群100台机器会产生日志,B集群10台机器处理日志,设计一个系统,用于将A集群的日志传输到B集群去处理

依图 (服务端方向)

  • 一面

    • 问了实习经历和项目经历
    • 算法题
      • 数组A,长度N-1,其中元素各不相同,且范围在[0,N),求缺少的那个数字
      • 数组A,长度N-2,其中元素各不相同,且范围在[0,N),求缺少的那两个数字
      • vector的扩容方式
      • vector连续push_back n个元素,求元素发生了多少次拷贝
  • 二面

    • 给定两个 stack (pop/push),实现一个queue (enqueue/dequeue)

    • 1

      2

      3

      4

      5

      6

      7

      8

      9

      给定一张任务表,计算执行任务表所需要的最小人数。

       

      任务表分三列,分别是起始时间、结束时间和所需人数。

       

      任务表举例:

      <9:00, 9:45, 1>

      <9:30, 10:00, 2>

      <10:10, 10:50, 1> -> <9:50, 10:50, 1>

      <11:00, 11:30, 2>

  • 三面

    • 截断有序数组,查找某个数

网易互娱(游戏研发)

  • 一面
    • TCP为什么三次,二次会有什么问题,三次会不会有相同的问题
    • 如何判断一个有向无环图
    • 编译期间发生了哪些事情
    • 预编译干了哪些事情
    • c++17的新特性
    • 以及一大堆碎碎的密集的面经题hongz
  • 二面
    • 如何实现一个http server
    • 100M的key(int), context(string)存在磁盘上,只用10M内存,做
      1. 高效查询
      2. 热点数据
    • 写一个LRUCache类,实现Get,Set, Remove
    • 写一个定时器管理类,实现AddTimer,CancelTimer
    • 字符串寻找子字符串的个数,比如90125749027中寻找9027有多少个
    • 用两个栈实现最大栈Pop,Push和GetMax方法            ( MAX_MIN)

阿里 (c++方向)

  • 一面
    • 自我介绍
    • 在腾讯做的项目
    • c++
      • 指针和引用
      • 多态和虚函数
      • 进程与线程,线程没有共享的部分
      • ipc通信
      • sleep和wait区别
      • core_dump的产生原因
      • vector底层实现
      • map和unordered_map
    • 多核编程
      • 有哪些互斥器
      • 死锁的产生
      • 什么时候用多线程?什么时候用多进程
    • 数据库
      • 索引
      • b+树
    • 编程题
      • 模拟LRU过程
        • LRUCache
          • capacity()
          • get(key)
          • put(key, value)
          • clear()
    • 网络
      • 三次握手四次挥手
      • 长连接短连接
      • 大量time_wait
      • nginx负载策略
  • 二面(挂)
    • 聊实验室项目,聊未来想做的方向,聊实习项目,聊你觉得最nb的项目
    • c++
      • 四种cast
      • 多继承
      • pthread
      • vector和list区别
      • 构造函数中可不可以抛出异常,析构函数中可不可以抛出异常
    • 多核编程
      • 死锁产生原因
      • 多线程死锁怎么解决
      • 单线程、死锁怎么解决
    • 算法题
      • 排序二叉树,给定两个节点,查找最近公共祖先节点
      • 链表倒数第k个节点(遍历一次)
      • 对字符串数组进行分类,由相同元素组成字符串为一类

        1

        2

        3

        4

        // 实现一个函数 能够对输入的字符串数组进行按含有同样的字符进行分类

        // 举个例子,输入:``["eat","tea","tan","ate","nat","bat","batt"]``,

        // 输出:``[["ate","eat","tea"],["nat","tan"],["bat", "batt"]]``

        // 相同的字符只算一次比如 aate 和 ate不是一类 aate 和 teaa是一类

拼多多 (服务端方向)

  • 一面
    • 数据库索引优化
    • hash表的实现,几种解决碰撞的方法
    • 整形数组中连续最大字串和
    • 求出一个数组超过一半的数字
    • 求出一个数组超过1/3的数字
    • 和一堆乱七八糟的问题
  • 二面
    • 介绍项目
    • 讲下https
    • 链表的插入排序

网易有道 (C++方向)

  • 一面
    • 实习经历和相关提问
    • 算法题
      • 求二叉树中两节点之间的最长距离
      • 给定一个vector<int>,里面是1-9的整数,求字典序中的下一个排列。比如14532,下一个排列是15234</int>
    • c++
      • c++的编译过程
      • 静态和动态库
      • static的作用
      • static修饰类方法,哪些变量可以访问,哪些变量不可以访问
      • static的初始化是在类外还算类内
      • static可以是虚函数吗
      • 还有哪些函数不可以是虚函数
      • stl你说一个你比较熟悉的数据结构吧
    • 多线程
      • 消费者生产者队列
      • 对整个队列加锁吗,怎么优化
    • 嵌入式
      • 嵌入式malloc有遇到过什么问题吗
      • malloc和new什么区别
  • 二面
    • 小易在维护数据的时候遇到一个需求,具体来说小易有一系列数据,这些数据构成一个长度为n的数字序列,接下来小易会在这个序列上进行q次操作。每次操作有一个查询的数字x,小易需要将序列数据中所有大于等于K的数字都减一,并输出本次操作中多少个数字被减一了。小易犯了难,希望你能帮帮他。(这一题我直接暴力做超时了,然后打表还是超时了,然后就GG了)
    • 输入描述

      1

      2

      第一行n, q,表示数字个数和操作个数。

      接下来一行n个数表示初始的数字,接下来q行,每行一个数,表示要查询的数。

    • 输出描述

      1

      每次操作输出按行输出

华为(软件开发)

因为做过华为的软件挑战比赛,所以有张绿卡,可以直接终面。终面就是聊人生,所以没有什么面经

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值