排序查询如何访问私有向量值

时间:2019-07-07 13:29:39

标签: c++ sorting

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

  

假设A只有一对重复,其余所有元素都是不同的。因此它具有n-1个不同的元素和1个与n-1个元素之一相同的元素。您的任务是识别A中两个相同元素的索引。

您不需要访问元素,当iLessThanj(a, b)返回false并且iLessThanj(b, a)返回false时,索引 a b 是解决方案(当然还有 b != a

类似:

hiddenVector v;
... initialization of v
int n = v.getSize();

for (int a = 0; a < n; ++a) {
  int b;

  for (b = a+1; b < n; ++b) {
     if (!v.iLessThanj(a, b) && !v.iLessThanj(b, a)) {
       std::cout << "element is the same at indexes " << a << " and " << b << std::endl;
       break;
     }
  }
  if (b < n)
    break;
}

P.S。复杂度为O(n ^ 2),请看另一个答案,它更复杂但复杂度较低