C ++中排序数组中的单个元素

假设我们有一个仅由整数组成的排序数组,其中每个元素恰好出现两次,除了一个元素恰好出现一次。我们必须找到仅出现一次的单个元素。因此,如果数组类似于[1、2、3、3、4、4、8、8],则输出为2

为了解决这个问题,我们将遵循以下步骤-

  • 回答:= 0

  • 适用于0到nums数组大小的范围

    • ans:= ans XOR nums [i]

    • 返回ans

例子(C ++)

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>

using namespace std;

class Solution {

public:

   int singleNonDuplicate(vector<int>& nums) {

      int ans = 0;

      for(int i = 0;i < nums.size(); i++)ans ^= nums[i];

      return ans;

   }

};

main(){

   Solution ob;

   vector<int> v = {1,1,2,3,3,4,4,8,8};

   cout << (ob.singleNonDuplicate(v));

}

输入项

[1,1,2,3,3,4,4,8,8]

输出结果

2

以上是 C ++中排序数组中的单个元素 的全部内容, 来源链接: utcz.com/z/331211.html

回到顶部