本科 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;
}有说的不对的地方,还请大家指教指教!谢谢!

京公网安备 11010502036488号