इस समस्या में, हमें n आकार का arr[] दिया जाता है। हमारा काम f . करना है एक सरणी में केवल भिन्न तत्व को इंड करें ।
सरणी में केवल दो अलग-अलग प्रकार के तत्व होते हैं। एक को छोड़कर सभी तत्व समान हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
arr[] = {1, 1, 1, 2, 1, 1, 1, 1}
आउटपुट
2
समाधान दृष्टिकोण
समस्या को हल करने के लिए एक सरल दृष्टिकोण, हमें सरणी को पार करने और उन तत्वों को खोजने की आवश्यकता है जो सरणी के अन्य तत्वों से भिन्न हैं। इस दृष्टिकोण को O(N 2 . की समय जटिलता की आवश्यकता है )।
ओ (एन) में समस्या को हल करने के लिए एक और तरीका हैश टेबल का उपयोग तत्वों और उनकी घटना आवृत्ति को स्टोर करने के लिए करना है। और घटना की एकल आवृत्ति के साथ मान प्रिंट करें।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#include <iostream> using namespace std; int findDiffElementArray(int arr[], int n){ if (n == 1) return -1; if (n == 2) return arr[0]; if (arr[0] == arr[1] && arr[0] != arr[2]) return arr[2]; if (arr[0] == arr[2] && arr[0] != arr[1]) return arr[1]; if (arr[1] == arr[2] && arr[0] != arr[1]) return arr[0]; for (int i = 3; i < n; i++) if (arr[i] != arr[i - 1]) return arr[i]; return -1; } int main(){ int arr[] = { 5, 5, 1, 5, 5, 5, 5}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The different element in the array is "<<findDiffElementArray(arr, n); return 0; }
आउटपुट
The different element in the array is 1