滴滴第一题随便写了写(内附内推面经,虽然上次发过了)
int solve(vector<int>& nums) {
unordered_set<int> data;
int res = 0;
int local = 0;
for (int i = 0; i < nums.size(); ++i) {
local = local ^ nums[i];
if (local == 0 || data.count(local)) {
++res;
local = 0;
data.clear();
}
else {
data.insert(local);
}
}
return res;
}
简单来说就是用local记录一下前面的异或结果,比如说a^b^c^d的异或结果如果与a^b相等的话,那c^d就一定是0,这就找到了一个区间,然后清空临时数据,往后继续扫就行
今天有事,4点多开始做的滴滴笔试题
附上内推面经
通知9月7号下午三点面试,LZ2点40签的到。5点20开始面试,5点40面试结束,一面挂
LZ项目主要在C***服务器包括分布式存储相关。面试官:会Java吗?
我:不会
面试官:哦,会C***啊,用的多么
我:挺多的
面试官:好的,主要写什么啊?
我:服务器之类的
面试官:那网络应该挺熟吧?
我:是的
面试官:会web开发吗?
我:???
面试官:知道http1.2吗?
我:???
面试官:写过cookie吗?
我:???
面试官:知道web中的加解密吗?
我:???
面试官:写个算法吧
我:好
面试结束,一面挂了
#滴滴##C++工程师#
查看6道真题和解析
