非科班出身,觉得还是有些难度的,可能自己刷题还不够吧,面试时基本上都是在面试官提点下写出,这里贴出来仅供参考~
商汤:
一面:输入给两个数组,一个数组内数字都是不重复的,要求输出一个数组,该数组只包含两个输入数组的所有相同元素,要求算法复杂度。
eg:输入[3,10,4,9,7,8]和[6,8,10,4,2,1]
则输出[4,8,10]
思路:先排序,后双指针遍历;
#include <iostream>
#include <vector>
vector<int> find_same_num(vector<int> &a,vector<int> &b)
{
sort(a.begin(),a.end()); //O(n*log2(n)) 这里偷个懒,不写快排了
sort(b.begin(),b.end()); //O(n*log2(n))
vector<int> re