zoukankan      html  css  js  c++  java
  • 【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)

  • 相关阅读:
    CentOS 基本设置
    CentOS 7 编译安装 Code::Blocks
    Java和C/C++进行DES/AES密文传输(借鉴)
    VS 2010 编译 Openssl
    Crypto++ 动态链接编译与实例测试
    c++11-bind的用法
    模板编程-迭代器
    LeetCode-Swap Nodes in Pairs
    LeetCode-Generate Parentheses
    Leetcode-Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/corineru/p/11266893.html
Copyright © 2011-2022 走看看