滴滴第一题随便写了写(内附内推面经,虽然上次发过了)
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++工程师#