• 【c++面试总结】


    前几周还电话面试了某大厂,遗憾挂了,不过题目还是不错的,记录下来。

    1 c++基础题

    static关键字的作用。

    智能指针的原理。

    malloc和new的区别。new和malloc的容错保护是如何实现的(就是假如未新建成功要怎么处理)(malloc分配完成后会返回指针,如果指针为null表示分配失败,new的话失败会抛出bad_alloc异常,要捕获异常)。

    函数默认参数的默认值在定义中还是声明中。(声明中)

    fork和vfork的区别。

    本来面试官还想问网络编程,但是我不会。。于是就没问。

    2 算法题

    如何找到前K个数,时间复杂度?(堆排序,NlogK)

    如何找到排序为第N个数,这个N可以是任意的,但是必须保证时间复杂度为O(logn)(参考快排,先以第一个数A为限,排出小于A的部分,和大于A的部分,然后看A的排序是不是N,如果<N,则继续在前半部分找,如果>N则继续在后半部分找,并递归)

    如何判断链表是回文的,要求空间复杂度为O(1),时间复杂度为O(N)。(先用快慢指针找到中间结点,然后把后半部分的链表逆过来,就可以同时往两边遍历了)

    3 概率题

    抛硬币。A抛出先正后负算赢,B连续抛出两次负算赢,问谁赢的概率大?(答案是A)

  • 相关阅读:
    javascript给builtin对象添加新方法
    __stdcall、__cdecl 、CALLBACK 几种函数修饰符
    判断是空白符(空格、换页、换行、回车、横向制表和纵向制表)的方法
    strcpy函数的实现
    strncpy实现
    strcat实现
    android修改标题栏高度
    断言 assert
    字符类别测试总结
    判断是否是控制字符
  • 原文地址:https://www.cnblogs.com/corineru/p/11266893.html
Copyright © 2020-2023  润新知