本科 211/985
研究生 211
研究方向 图像分割
第一次面试,怂得不要不要的,但也算打怪成长的经验值吧,面试官人都很好,引导式写代码,我刷题没有什么思路,把知乎上最火的刷题指南里的题整了一遍我就上了,觉得自己实在憨批,最开始就是自我介绍,问简历上面的项目,面试官2觉得我比赛打得多,还问我知道boosting和stacking吗,我就是个入门级比赛选手,不知道;还问我知道小物体目标分割吗,我举例了几个我用过的憨批做法,滑窗,multi-grids。面试官2 问完代码说我还是多刷刷题,建议看看算法与数据结构。

算法题如下:(大概看我比较弱鸡,给的题都比较简单)
面试官1.很仁慈,循环移动链表
面试官2.给定无序数组 ,求max(ai-aj),i<j
暴力解法O(n**2)
将第一个遍历存成常量O(n)

#include<iostream>
using namespace std;
//这里有两个坑。用leetcode的都知道,leetcode不用写头文件引用,所以这里差两个
//#include <vector>
// #include<limits.h>
// int min=INT_MIN;
// int max=INT_MAX;

// #include<algorithm>//max
//#include<cmath>//这个是常用数学库,写abs要引用到的
int main(){
    vector<int> arr = {4,2,1,3};
    int res = fuc(arr);
    cout<<res<<endl;
}
int func(vector<int>&arr){//第一个坑,为啥要用饮用,查了一下->数组作为形参时,传数组指针即可;而vector作为形参时,要传引用,否则无法通过形参改变实参。
    int res = INT_MIN;//第二个坑在这里,面试官问我会不会存在内存溢出,后来引导我:
    //面试官:有坑 你自己看看
    //我:会溢出吗,假设数组中有INT_MAX和0,(现在想想应该说-2和INT_MAX就会溢出了,整型的数据范围是[-1 * 2^32, 2^32 - 1],-2 - (2^32 - 1) = -1 * 2^32 -1)
    //面试官:那你试试,0-INT_MAX = ?
    //我:-1 * 2^32 + 1 ???那我改成长整型就好了吧。(所以后来定义成long)
    int len = arr.size();
    for(int i=0;i<len;i++){//这里面试官觉得用len-1,后来承认len就可以
        for(int j=0;j<len;j++){
            if(arr[i]-arr[j]>res){
                res = arr[i]-arr[j];
            }
        }
    }
    //后来,面试官说用一个for循环写就可以,我本来想写的, 他说时间超时了,别改了。。。。。
    //这里贴一下吧
    int max_0 = arr[0];
    int res = INT_MIN;
    for(int i=1;i<len;i++){
        if(max_0-arr[i]>res){
            res = max_0 - arr[i];
        }
        max_0 = max(max_0,arr[i]);
    }
    return res;
}

有说的不对的地方,还请大家指教指教!谢谢!