1. 满帮暑期实习
一面(6.13)
1. CTC loss 简述,说CTC和attention的区别;
2. 论文模型与当前哪些模型比较,取得了怎么样的效果;
3. 为什么只考虑纯视觉的信息,为什么不考虑语义模型;
4. 经典的检测算法有哪些;
5. Resnet 用的是哪个;
6. 如何理解你的模型,针对哪些难点,做了哪些改进?
算法: 最大容量的水
题目:给定一个长度为 n
的整数数组 height
。有 n
条垂线,第 i
条线的两个端点是 (i, 0)
和 (i, height[i])
。找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> nums = {1,8,6,2,5,4,8,3,7};
int i, j;
i = 0;
j = nums.size() - 1;
int res = 0;
while(i < j) {
if(nums[i] < nums[j]) {
res = max(res, (j - i) * nums[i]);
i ++;
}else{
res = max(res, (j - i) * nums[j]);
j --;
}
}
cout<<res<<endl;
return res;
}
二面(6.14)
1. 说一下你的项目(难点、你是如何解决的);
2. 说一下检测算法EAST,为什么不选择YOLO;
3. 你的模型主要是怎么做的?背景、效果、难点
注意力漂移;中间模块的输入输出具体如何?
4. 参数量问题;
5. 你的双通路是怎么做的呢,里面具体结构;
6. transformer的结构,讲讲你的理解;kqv的理解;
7. 篡改的场景,和怎么做的?
8. 篡改的精度怎么样,效果好吗?
9. 为什么不结合语义模型去做呢?
主要是结合自己的项目去讲
算法:快排和时间复杂度
/* Online C++ Compiler and Editor */
#include <iostream>
#include <vector>
using namespace std;
int part(vector<int> &nums, int left, int right) {
int i = left;
int j = right;
int base = nums[left];
while (i != j) {
while (nums[j] >= base && i < j) {
j --;
}
if(i < j) {
nums[i] = nums[j];
}
while (nums[i] <= base && i < j) {
i ++;
}
if(i < j) {
nums[j] = nums[i];
}
}
nums[i] = base;
return i;
}
void quicksort(vector<int> &nums, int left, int right){
if( left >= right )
return;
int i = part(nums, left, right);
quicksort(nums, left, i - 1); //递归左边的部分
quicksort(nums, i + 1, right);
}
void show(vector<int> &v){
for(auto &x : v)
cout<<x<<" ";
cout<<endl;
}
int main()
{
vector<int> nums = {2,3,1,4,4, 7,1,9};
// srand((int)time(0));
// int n = 5;
// while(n--)
// nums.push_back(rand() % 100 + 1);
show(nums);
quicksort(nums, 0, nums.size()-1);
cout<<endl<<endl;
show(nums);
}
时间复杂度:调用栈的高度为O(log n)【由于二分法产生】,而每层需要的时间为O(n)。因此整个算法需要的时间为O(n) * O(log n) = O(n log n)。这就是最佳情况。 在最糟情况下,有O(n)层,因此该算法的运行时间为O(n) * O(n) = O(n2)。
——————————————————————————————————————————
第一次面试,确实是紧张死了。。。元气大伤,估计这个也寄了。。。。基本上很多东西都不会