मान लीजिए कि हमारे पास एन संख्याओं की एक सरणी है, जहां सरणी में प्रत्येक तत्व समान संख्या में दिखाई देता है (एम बार, यह भी दिया गया है) एक तत्व को छोड़कर, हमें इस तत्व को खोजना होगा।
इसलिए, यदि इनपुट A =[6, 2, 7, 2, 2, 6, 6], m =3 जैसा है, तो आउटपुट 7 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
INT_SIZE :=8 * एक पूर्णांक प्रकार चर का आकार
-
आकार की एक सरणी गणना परिभाषित करें - INT_SIZE। और 0 से भरें
-
प्रारंभ करने के लिए मैं:=0, जब मैं
-
j :=0 को इनिशियलाइज़ करने के लिए, जब j <साइज़, अपडेट (j को 1 से बढ़ाएँ), करें -
-
अगर (arr[j] और 2^i) 0 के बराबर नहीं है, तो -
-
गिनती[i] :=गिनती[i] + 1
-
-
रेस :=0
-
-
इनिशियलाइज़ i :=0 के लिए, जब i
-
रेस:=रेस + ((गिनती[i] मॉड एम) * 2^i)
-
-
रिटर्न रेस
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; int selectUnique(unsigned int arr[], int size, int m){ int INT_SIZE = 8 * sizeof(unsigned int); int count[INT_SIZE]; memset(count, 0, sizeof(count)); for(int i = 0; i < INT_SIZE; i++) for(int j = 0; j < size; j++) if((arr[j] & (1 << i)) != 0) count[i] += 1; unsigned res = 0; for(int i = 0; i < INT_SIZE; i++) res += (count[i] % m) * (1 << i); return res; } main(){ unsigned int arr[] = { 6, 2, 5, 2, 2, 6, 6 }; int size = sizeof(arr) / sizeof(arr[0]); int m = 3; cout << selectUnique(arr, size, m); }
इनपुट
{ 6, 2, 5, 2, 2, 6, 6 }
आउटपुट
5