腾讯C++二面

时间:3.26 19:30

基础知识:

    1. C++传值方式
    1. C++继承和多态
    1. C++虚函数
    1. STL用过哪些
    1. map和set的区别
    1. 数据库用过哪些 说用过mysql,但是不会原理
    1. 删除表、删除表结构 瞎答的,不知道对不对
    1. 面试官看我不会数据库就说问最后一个问题,主键和外键
    1. 常用linux命令
    1. grep了解吗
    1. 进程间通信方式
    1. 线程间同步方式
    1. ip、tcp、http分别在网络中的哪一层
    1. linux的定时怎么做 说听过timerfd 但是没用过 问题都没有太深入,回答了之后面试官就会说okok 算法 3道,每道20分钟:
    1. 一串1和0组成的数,相邻的不同的数可以消掉,问消掉之后字符串的长度 如:1100,消掉之后为0
    1. 一个满二叉树,结点数为2^k-1,每个结点的值为0~2^k-1,该二叉树还是排序树,找值=val1, val2, val3的节点的最小公共父节点。(这道题写了20分钟的时候还有一点bug,后面面试官让讲完思路之后才发现bug在哪里)
    1. 一堆硬币,形式是{1, 1, 2, 2, 4, 4, 8, 8, 16, 16,...},问能凑成n的方案数,不能有重复的。 如:n = 6,则方案数是3({1,1,2,2}, {2,4},{1, 1, 4}) 这道题代码写出来了,面试官让跑了几个测试用例,但是没告诉我对不对。。很虚