来源:投稿 作者:LSC
编辑:学姐
1.自我介绍
2.确认我能否实习半年以上
3.因为这个岗位是模型的部署,所以会考量很多C++的知识和代码能力,提问C++中lambda的用法
匿名定义一个目标函数或者函数对象,不需要额外的再写一个命名函数或者函数对象,以更直接的方式去写函数,可以调高程序的可读性和可维护性。
和python的用法是类似的。但是我C++用lambda比较少,是属于C++11后的语法。
4.设置一个模板函数,实现一个数组的元素求和。
我不太会,模板太久没用了,后来重新查了一下。
语法格式如下:
template <class 类型参数1, class类型参数2, ...
返回值类型 模板名(形参表)
{
函数体
}
template<class T>
void sum(T *array, int size)
{
T sum = 0;
for(int i = 0; i < size; ++i)
{
sum += array[i];
}
return sum;
}
5.实现一颗二叉树的定义,并用bfs搜索。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<unordered_map>
#include<unordered_set>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
struct Node
{
int data;
Node *lchild, *rchild;
Node(int d, Node *l = NULL, Node *r = NULL) : data(d), lchild(l), rchild(r) {}
};
void bfs(Node *root)
{
queue<Node*> q;
q.push(root);
while (!q.empty())
{
Node* temp = q.front();
q.pop();
printf("%d\n", temp->data);
if (temp->lchild != NULL) { q.push(temp->lchild); }
if (temp->rchild != NULL) { q.push(temp->rchild); }
}
}
6.输入一个字符串,字符串包含大括号中括号小括号,判断其是否是正确的配对。
比如{{{()[]{}}}}是对的,{{[}}]是错的
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<unordered_map>
#include<unordered_set>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
string str;
stack<char> s;
bool check(string &str)
{
int len = str.length();
for (int i = 0; i < len; ++i)
{
if (str[i] == '{' || str[i] == '[' || str[i] == '(')
{
s.push(str[i]);
}
else
{
if (str[i] == '}')
{
if (s.empty() || s.top() != '{') return false;
s.pop();
}
else if (str[i] == ']')
{
if (s.empty() || s.top() != '[') return false;
s.pop();
}
if (str[i] == ')')
{
if (s.empty() || s.top() != '(') return false;
s.pop();
}
}
}
return true;
}
int main()
{
cin >> str;
if (check(str))cout << 1 << endl;
else cout << 0 << endl;
return 0;
}
最后聊了关于模型部署的工作和学习路线,以及行业前景。
更多面经可关注👇不定期分享各类资料合集