秋招面试|百度(一面挂

武汉简历挂,转投北京进面

一面0807

一个小时,累死了,人麻了
体验不太好,问的很广

多进程相关,为什么不用多线程

多线程能否进行多核运算

项目里面稍微复杂一点的代码逻辑

答了状态机

用的比较多的数据结构

iic驱动程序是操作的gpio口还是调用的接口

对于32的使用做到了哪一步

讲一下实习的工作

答 得 稀 烂!!!

写过多少C++的代码

宏定义和内联函数的区别

答了宏定义不检查语法

malloc和new的区别

答了malloc返回的是一个void指针,new含有数据类型的指针,会调用构造函数

说一下对虚函数的理解

左值和右值

答了左值是实际的变量,右值时临时的变量如函数返回值
左值引用和右值引用都减小了拷贝的开销

对完美转发的理解

对设计模式的了解

对智能指针的理解

智能指针是否是线程安全的

对static的理解

项目里面是否使用过封装继承多态的特性

讲一下容器的迭代器失效

linux常用的一些指令

对内存管理的理解

当前的linux系统还是使用的段页式吗

不同的进程malloc的时候怎么保证申请的是自己内存空间

讲一下多线程和多进程的区别

有没有碰到过内存泄漏的问题

查内存泄漏使用的工具

手撕升序数组中第一个出现的目标数

时间复杂度logn

#include<vector>
#include <iostream>
using namespace std;


int main(){
    vector<int> array = {1,1,2,3,3,3,4,5,6,7};
    int target = 3;
    int l = 0;
    int r = array.size()-1;
    int mid = (l+r)/2;
    bool find = false;
    int ans = -1;
    while(l<=r){
        if(array[l]==target){
            ans = l;
            find = true;
            break;
        }
        if(array[mid]<target){
            l = mid+1;
        }
        else if(array[mid]>=target){
            r = mid-1;
        }
        if(array[mid]==target&&array[r]!=target){
            ans = mid;
            find = true;
            break;
        }
        mid = (l+r)/2;
    }
    if(!find){
        cout<<-1;
        system("pause");
        return -1;
    }
    // for(int i = mid;i>=0;i--){
    //     if(array[i]==target&&i==0){
    //         ans = 0;
    //         break;
    //     }
    //     else if(array[i]!=target){
    //         ans = i+1;
    //         break;
    //     }
    // }
    cout<<ans;
    system("pause");
    return 0;
}

换岗复活

讲项目

对深度学习的理解

图像处理部分的多核并行计算解释一下

进程之间的交互怎么实现的

多进程如果做多进程对同一块内存空间的读写

答了锁

对死锁的理解

是否了解自旋锁

智能指针中shared_ptr和unique_ptr的区别

unique_ptr拒绝什么操作

对多态的理解

重定义、重载和覆盖的区别

手撕二分


#include<iostream>
#include<vector>
using namespace std;

int main() {
    vector<int> arr{3,4,5,6,7,9,0,1,2};
    int tar = 0;
    int l =0;
    int r = arr.size()-1;
    int mid = (l+r)/2;
    int res=-1;
    while(l<=r){
        if(arr[mid]==tar){
            res = mid;
            break;
        }
        else if(arr[mid]>tar){
            if(arr[l]>=tar){
                l = mid+1;
            }
            else{
                r = mid-1;
            }
        }
        else if(arr[mid]<tar){
            if(arr[r]>=tar){
                l = mid+1;
            }
            else{
                r = mid-1;
            }
        }
        mid = (l+r)/2;
    }
    std::cout << res << std::endl;
    system("pause");
    return 0;
}

他真的好喜欢二分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值