学习是最好的投资!
#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(), 增加開銷。 。 。
nums.size() = 0
nums.size()
size_t
unsigned long long
nums.size() -1
當
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()
, 增加開銷。 。 。