滴滴第一题答案

int main()
{
printf("2\n");
}
#滴滴##C++工程师#
全部评论
#include <stdio.h>
点赞
送花
回复
分享
发布于 2017-09-10 16:57
动态规划,和求最长递增子序列差不多
点赞
送花
回复
分享
发布于 2017-09-10 16:58
滴滴
校招火热招聘中
官网直投
没看懂题都是因为这个[0] xor = 0 其实即使一个数的时候,就是本身,因此只有0可以
点赞
送花
回复
分享
发布于 2017-09-10 16:58
没有return 0;差评
点赞
送花
回复
分享
发布于 2017-09-10 16:58
第一题,直接找一下数组中有多少个0元素,百分之20。。。
点赞
送花
回复
分享
发布于 2017-09-10 16:59
#include<iostream> #include<vector> using namespace std;    //此题有一个要点,就是只要找到了某个区间xor为0,那么后面的数据就跟 //前面的没有关系了。因为区间不能重叠 int main() { int n; cin >> n; vector<int> input(n, 0); for (int i = 0; i < n; i++) cin >> input.at(i);   //数据输入 int k = 0; vector<int> num;   //用于记录当前所有的可能值 for (int i = 0; i < n; i++) { if (input.at(i) == 0) { k += 1; num.clear(); continue;   //  跟样例一个道理,0 就直接是0。。。。 } if (input.at(i)>0) { int flag = 0; for (int j = 0; j < num.size(); j++) { num.at(j) = num.at(j) ^ input.at(i); if (num.at(j) == 0) { flag = 1; k += 1; num.clear(); }                         }                                          //此处我举个例子,比如找第一个区间,现在循环到了第五位,有几种情况?                                          //   input.at(0) ^ input.at(1) ^ input.at(2) ^ input.at(3) ^ input.at(4)                                          //                       input.at(1) ^ input.at(2) ^ input.at(3) ^ input.at(4)                                          //                                           input.at(2) ^ input.at(3) ^ input.at(4)                                          //                                                               input.at(3) ^ input.at(4)                                          //                                                                                   input.at(4)                                         // 这样得到5个数字。来了第6个数,分别于他们xor,发现哪个结果是0,就找                                           // 到本个区间了,然后将记录清空,继续下一个 if (flag == 0) num.push_back(input.at(i)); } } cout << k << endl; return 0; }
点赞
送花
回复
分享
发布于 2017-09-10 16:59
10%
点赞
送花
回复
分享
发布于 2017-09-10 16:57
第一题  看不懂。。。。
点赞
送花
回复
分享
发布于 2017-09-10 16:57
没看懂题,xor 
点赞
送花
回复
分享
发布于 2017-09-10 16:58
60% 坐等学***神的思路~
点赞
送花
回复
分享
发布于 2017-09-10 16:58
这道题真心bug,看了很久才理解到是只有一个元素的时候是跟0异或,上面的明明是说a[l] 到a[r],我以为两个端点一样就跟自己异或,那样有多少元素就有多少区间,啊,悲剧。。。。
点赞
送花
回复
分享
发布于 2017-09-10 17:02
cout<<0<<endl;也是可以的,哈哈哈
点赞
送花
回复
分享
发布于 2017-09-10 17:05

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务