C++ 中已排序陣列中的單個元素
假設我們有一個僅由整陣列成的已排序陣列,其中每個元素都精確出現兩次,但有一個元素僅出現一次。我們必須找到僅出現一次的單個元素。因此,如果陣列形如 [1, 1, 2, 3, 3, 4, 4, 8, 8],則輸出將為 2
為了解決這個問題,我們將遵循以下步驟 —
- ans := 0
- for i 在 0 到 nums 陣列大小範圍內
- ans := ans XOR nums[i]
- return 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP