假设我们有一个仅由整数组成的排序数组,其中每个元素恰好出现两次,除了一个元素恰好出现一次。我们必须找到仅出现一次的单个元素。因此,如果数组类似于[1、2、3、3、4、4、8、8],则输出为2
为了解决这个问题,我们将遵循以下步骤-
回答:= 0
适用于0到nums数组大小的范围
ans:= ans XOR nums [i]
返回ans
让我们看下面的实现以更好地理解-
#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