मान लें हमारे पास एक एरे A है। कुछ तत्व हैं। कुछ तत्व सामान्य हैं। हमें वह तत्व लौटाना है जो एरे में 25% से अधिक स्थानों पर आ रहा है। तो यदि A = [1, 2, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7], यहां 4 चार बार आया है। यह 12 के 25% से अधिक है (एरे का आकार)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −
- तत्वों को पढ़ें और उनकी संबंधित आवृत्तियों को स्टोर करें
- यदि आवृत्ति एरे के आकार के 25% से अधिक है, तो परिणाम लौटाएं।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें −
#include <bits/stdc++.h> using namespace std; class Solution { public: int findSpecialInteger(vector<int>& arr) { int n = arr.size(); int req = n / 4; unordered_map <int, int> m; int ans = -1; for(int i = 0; i < n; i++){ m[arr[i]]++; if(m[arr[i]] > req)ans = arr[i]; } return ans; } }; main(){ Solution ob; vector<int> c = {1,2,4,4,4,4,5,5,6,6,7,7}; cout << ob.findSpecialInteger(c); }इनपुट
[1,2,4,4,4,4,5,5,6,6,7,7]
आउटपुट
4