字节C++开发实习生一凉面

今天是我第一次面字节,面完一个小时左右就收到感谢信了。这效率很高啊。

  • 设计一个类AutoReset, 能够实现让value的值在特定作用域里面临时设置为其他值,并在离开特定作用域后恢复原来的值,如下所示,value在1处为false, 2处值为true,在3处值为false。在你设计的Reset在使用的时候有什么需要注意的地方嘛?
bool value = false;
//1. value is false
{
    AutoReset<bool> mark_inside(&value, true);
   //2. value is true
}
// 3. value is false
template <class T>
class AutoReset {
public:
    AutoReset(T* ptr, T val) : ptr_(ptr), oldVal_(*ptr_) {
        *ptr_ = val;
    }

    ~AutoReset() {
        *ptr_ = oldVal_;
    }

private:
    T* ptr_;
    T oldVal_;
};
  • 上述代码中中有拷贝部分,如果对象很复杂,可以怎么优化?

    • 指针
    • 右值 move
    • 面完之后,突然想到,面试官想问的会不会是引用呢?搞不懂,也没啥提示和引导。
  • 说说模板的理解

  • 智力题:定义一个F函数,F的输入为一个排列,F的输出为一个多项式,多项式的值为排列在所有排列中的次序,如123次序为0,132次序为1,213次序为2。
    例:

    F(123) = 0 * 2! + 0 * 1! + 0 * 0!
    F(2134) = 1 * 3! + 0 * 2! + 0 * 1 ! + 0 * 0!
    F(43512) = 3 * 4! + 2 * 3! + 2 * 2! + 0 * 1! + 0 * 0!
    

    求F(643521),要求给出多项式,不用给出多项式的值。

    • 只看出了一点点规律,面试官说差不多了。写完之后,面试官说还有一点问题,叫我面完再想想。
  • 求函数f(n, k), n, k为正整, 返回数字x, 使得x^k == n,精确到小数点后5位。

    • 想了一会,面试官跟我说,可以跟他讲一下思路。先将了暴力的方法,后面想到了二分的方法。面试官说思路是对的,可以实现了。写完还有bug,面试官提示下,写了出来。
    double f(int n, int k) {
        if (n == 0) {
            return 0.0;
        } else if (n == 1) {
            return 1.0;
        }
    
        double low = 0.0;
        double high = n;
        while (low <= high) {
            double mid = low + (high - low) / 2.0;
            double val = pow(mid, k);
            // 此处的找到x的判断逻辑还有一点问题,
            // 请大佬指点指点。
            if (abs(n - val) <= 0.00001) {
                return mid;
            } else if (val < n) {
                low = mid + 0.00001;
            } else {
                high = mid - 0.00001;
            }
        }
    
        return low;
    }
  • 提问环节。

    • 面试官一两句话就打发了我了,我大概知道凉了。

算法题判断找到x的判断条件还有一点问题,请大佬指点指点。

对比阿里、腾讯、美团,这次面试体验不怎么好。一方面是自己菜,另一方面是可能是不太适应字节的面试风格吧。但是不问基础和项目,这确实让我有点无所适从。

我问面试官部门做啥业务,面试官说不做业务,做基础。我猜是做基础架构的部门吧。这让我联想起快手投的基础架构岗位,直接刷了我简历。以后还是别投基础架构了,太菜了,还是不要太狂。

还好已经拿到了腾讯offer(感谢牛客),已经很佛系了,不然还是挺伤心。稍微预告一下,最近会将3月份的面经整理一下再发出来。整个过程还是挺坎坷,面了16面大厂:阿里提前面4面(还拒了一次阿里云的提前面,不敢面了。进系统后一直处于简历评估状态,迷)、腾讯9面(被腾讯虐到自闭)、美团2面(在等hr面,但一周了,感觉凉了)、虎牙1面(本来约今天二面,为了字节,推迟了,目前hr还没联系)。

大家坚持住,可能你的运气就快来了。希望大家都能拿到满意的offer。

#字节跳动##C++工程师##实习##面经#
全部评论
校友腾讯哪个部门呀😁
点赞 回复 分享
发布于 2020-03-30 19:10
字节的和我面试的80%都一样😂
点赞 回复 分享
发布于 2020-03-30 19:37
我也凉了。。。哈哈哈 不过他说他聊的很愉快 我也愉快 愉快的gg
点赞 回复 分享
发布于 2020-03-30 20:15
1、同问还能怎么优化 2、 3、可以用试填法 4、二分这样写吧 double low = 0.0; double high = n; while (high - low > 1e-5) { double mid = low + (high - low) / 2.0; double val = pow(mid, k); if (val < n) low = mid; else high = mid; }
点赞 回复 分享
发布于 2020-03-30 21:15
恭喜大佬成功上岸
点赞 回复 分享
发布于 2020-03-30 22:45
大佬带带我
点赞 回复 分享
发布于 2020-03-31 18:04
阿明带带我
点赞 回复 分享
发布于 2020-04-01 16:22

相关推荐

8 23 评论
分享
牛客网
牛客企业服务