C++求数组是否含有重复元素

【字号: 日期:2023-04-21浏览:37作者:雯心

问题描述

问题解答

回答1:

#include <algorithm>#include <iostream>#include <vector>using namespace std;bool containsDuplicate(vector<int>& nums) { sort(nums.begin(), nums.end()); cout << nums.size() << endl; int j = 0; cout << nums.size() - 1 << endl; cout << ( j < nums.size() - 1) << endl; for (int i = 0; i < nums.size() - 1; i++) {cout << nums.size() << endl;if (nums[i] == nums[i + 1]) return true; } return false;}int main() { vector<int> a; cout << containsDuplicate(a) << endl; return 0;}

当nums.size() = 0时,因为nums.size()类型是size_t,是unsigned long long的typedef,只能是正数,所以当nums.size() -1 , nums.size()是0时,答案成二进制表示了,为2^64 - 1,一个暴大的正数,所以WA了。建议不要把nums.size()写在for里面,每次都会调用nums.size(), 增加开销。。。

相关文章: