मान लीजिए हमारे पास केवल पूर्णांकों से युक्त एक क्रमबद्ध सरणी है जहां प्रत्येक तत्व ठीक दो बार प्रकट होता है, सिवाय एक तत्व के जो ठीक एक बार प्रकट होता है। हमें इस एकल तत्व को ढूंढना है जो केवल एक बार प्रकट होता है। इसलिए यदि सरणी [1, 1, 2, 3, 3, 4, 4, 8, 8] जैसी है, तो आउटपुट 2 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- ans := 0
- i को 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