请设计一个高效算法,判断数组中是否有重复值。必须保证额外空间复杂度为O(1)。
给定一个int数组A及它的大小n,请返回它是否有重复值。
class Checker { public: bool checkDuplicate(vector<int> a, int n) { // write code here if(n < 2) return false; int tmp, index; for(int i = 1; i < n; i++){ index = i; for(int j = i - 1; j >= 0; j--){ if(a.at(j) > a.at(index)){ tmp = a.at(index); a.at(index) = a.at(j); a.at(j) = tmp; index = j; } } } for(int i = 1; i <n; i++){ if(a.at(i) == a.at(i-1)) return true; } return false; } };