इस समस्या में, हमें 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