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

C++ में दी गई n रेंज में k-वां सबसे छोटा तत्व ढूंढें


इस समस्या में, हमें n रेंज और एक पूर्णांक k दिया गया है। हमारा कार्य दी गई n रेंज में k-वां सबसे छोटा तत्व ढूंढना है।

हमें उस सरणी से kवां सबसे छोटा तत्व ढूंढना है जो रेंज को मिलाकर बनाई गई है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: ranges = {{2, 5}, {7, 9}, {12, 15}}, k = 9

आउटपुट: 13

व्याख्या:

बनाई गई सरणी है {2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 15}

सबसे छोटा तत्व 13 है

समाधान दृष्टिकोण:

समस्या का एक सरल समाधान सभी रेंज से सरणी बनाना है और चूंकि यह रेंज से बनाई गई है यह आरोही क्रम में सॉर्ट भी है। इसलिए हमें केवल सरणी का kवां मान ढूंढना है।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream>
using namespace std;

int main(){
    int arr[][2] = {{2, 5}, {7, 9}, {12, 15}};
    int n = sizeof(arr)/sizeof(arr[0]);
    int k = 9;
    int rangeArr[1000];
    int size = 0;
    for(int i = 0; i < n; i++)
        for(int j = arr[i][0]; j <= arr[i][1]; j++) {
            rangeArr[size] = j;
            size++;
        }
    if(k < size)
        cout<<k<<"th smallest element of the ranged array is "<<rangeArr[k]<<endl;
    else
        cout<<"invalid Index";
    return 0;
}

आउटपुट

9th smallest element of the ranged array is 13

  1. C++ में BST में k-वां सबसे छोटा तत्व खोजें (BST में ऑर्डर स्टैटिस्टिक्स) C++ में BST में k-वां सबसे छोटा तत्व खोजें (BST में ऑर्डर स्टैटिस्टिक्स)

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री और एक मान K इनपुट के रूप में है, हमें ट्री में K-वां सबसे छोटा तत्व ढूंढना है।तो, यदि इनपुट इस तरह हैk = 3, तो आउटपुट 15 होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −एक फ़ंक्शन find_kth_smallest() परिभाषित करें, यह रूट, काउंट, k लेगा,यदि रूट NULL है, त

  1. - C++ प्रोग्राम: O(n) जटिलता के साथ दूसरा सबसे छोटा तत्व खोजना

    यह C++ प्रोग्राम एक ऐरे में दूसरा सबसे छोटा (Second Smallest) तत्व O(n) समय जटिलता में खोजता है। यह सिंगल पास में दो वेरिएबल्स (सबसे छोटा और दूसरा सबसे छोटा) को मेंटेन करता है। एल्गोरिदम शुरुआत 1. फंक्शन SecondSmallest(): आर्गुमेंट्स: ऐरे पॉइंटर a, तत्वों की संख्या n बॉडी: - s1 (स

  1. - C++ प्रोग्राम: सरणी के पार्टीशन विधि से kवां सबसे छोटा तत्व खोजें

    एल्गोरिदमCreatePartition() फ़ंक्शन बनाएं जिसमें सरणी a, निचली सीमा l और ऊपरी सीमा h हो। in := l और pi := h सेट करें। l से h तक लूप चलाएं, यदि a[i] < a[pi] तो a[i] और a[in] को स्वैप करें और in बढ़ाएं। अंत में a[pi] और a[in] को स्वैप करें और in लौटाएं। Partition() फ़ंक्शन में: यदि low k-1 तो Partitio