Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में डुप्लिकेट के साथ सॉर्टेड सरणी में समान (या मध्य) बिंदु ज्ञात करें


मान लीजिए हमारे पास n तत्वों की एक सॉर्टेड सरणी है। सरणी सॉर्टेड है। हमें यह ढूंढना है कि क्या सरणी में कोई ऐसा तत्व मौजूद है जहां से छोटे तत्वों की संख्या बड़े तत्वों की संख्या के समान है। यदि समान बिंदु सरणी में कई बार प्रकट होता है, तो पहली घटना का सूचकांक वापस करें। यदि ऐसा कोई बिंदु मौजूद नहीं है, तो -1 वापस करें। मान लीजिए तत्व A = [1, 1, 2, 3, 3, 3, 3, 3] की तरह हैं, तो समान बिंदु सूचकांक 2 पर है, तत्व A[2] = 2 है। क्योंकि इसमें केवल एक छोटा तत्व है जो 1 है, और केवल एक बड़ा तत्व है, जो 3 है।

हम सभी विशिष्ट तत्वों को स्टोर करने के लिए एक सहायक सरणी बनाएंगे। यदि विशिष्ट तत्वों की संख्या सम है, तो हम कोई समान बिंदु नहीं ढूंढ सकते, अन्यथा मध्य तत्व मध्य-बिंदु होगा।

उदाहरण

#include<iostream> using namespace std; int searchEqualPoint(int arr[], int n) { int aux_arr[n]; int i = 0, aux_index = 0; while (i < n) { aux_arr[aux_index++] = i++; while (i<n && arr[i] == arr[i-1]) i++; } return (aux_index & 1)? aux_arr[aux_index>>1] : -1; } int main() { int arr[] = {1, 1, 2, 3, 3, 3, 3, 3}; int n = sizeof(arr)/sizeof(arr[0]); int index = searchEqualPoint(arr, n); if (index != -1) cout << "Equal Point is: " << arr[index]; else cout << "No Equal Point exists"; }

आउटपुट

Equal Point is: 2

  1. C++ का उपयोग करके ब्रैकेट की स्ट्रिंग में समान बिंदु खोजें C++ का उपयोग करके ब्रैकेट की स्ट्रिंग में समान बिंदु खोजें

    यहां हम देखेंगे कि ब्रैकेट की स्ट्रिंग में समान बिंदु कैसे प्राप्त करें। समान बिंदु वह सूचकांक I है, जिसके पहले खुलने वाले ब्रैकेट की संख्या उसके बाद बंद होने वाले ब्रैकेट की संख्या के बराबर होती है। मान लीजिए एक ब्रैकेट स्ट्रिंग है (()))(()()()))), यदि हम ध्यान से देखें, तो हम पा सकते हैं कि इंडेक

  1. - C++ में क्रमबद्ध सरणी में फिक्स्ड पॉइंट (मान सूचकांक के बराबर) ढूंढें

    समस्या विवरण एक क्रमबद्ध सरणी में फिक्स्ड पॉइंट वह तत्व है जिसका मान उसके सूचकांक के बराबर होता है। सरणी में नकारात्मक संख्याएं हो सकती हैं। फिक्स्ड पॉइंट मिलने पर उसका मान वापस करें, अन्यथा -1 वापस करें। हल दृष्टिकोण मानक बाइनरी खोज का उपयोग करके O(log n) समय में हल करें: मध्य तत्व जांचें: यदि m

  1. - C++ में सरणी में अधिकतम GCD वाली जोड़ी ढूंढना

    मान लीजिए हमारे पास धनात्मक पूर्णांकों की एक सरणी है। हमारा कार्य सरणी से पूर्णांकों की जोड़ी ढूंढना है, जहां GCD मान अधिकतम है। मान लीजिए A = {1, 2, 3, 4, 5}, तो आउटपुट 2 है। जोड़ी (2, 4) का GCD 2 है, अन्य GCD मान 2 से कम हैं।इस समस्या को हल करने के लिए, हम एक काउंट सरणी बनाए रखेंगे जो प्रत्येक तत्