搜尋

首頁  >  問答  >  主體

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

PHPzPHPz2803 天前542

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-04-17 14:28:02

    #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() -1nums.size()是0時,答案成二進位表示了,為2^64 - 1,一個暴大的正數,所以WA了。建議不要把nums.size()寫在for裡面,每次都會呼叫nums.size(), 增加開銷。 。 。

    回覆
    0
  • 取消回覆