मान लें कि हमारे पास एक सरणी A है, और अन्य दो पूर्णांक K और M हैं। हमें सरणी को M संख्या से कई बार जोड़ने के बाद Kth न्यूनतम तत्व खोजना होगा। मान लीजिए कि एरे ए =[3, 1, 2], के =4 और एम =3 की तरह है, तो ए को 3 बार जोड़ने के बाद, यह [3, 1, 2, 3, 1, 2, 3, 1 होगा। , 2], चौथा सबसे छोटा तत्व यहां 2 है।
इस समस्या को हल करने के लिए, हम एरे को सॉर्ट करेंगे, फिर एरे के इंडेक्स ((के – 1)/एम) पर मौजूद वैल्यू को वापस करेंगे।
उदाहरण
#include<iostream> #include<algorithm> using namespace std; int findKSmallestNumber(int A[], int N, int M, int K) { sort(A, A + N); return (A[((K - 1) / M)]); } int main() { int A[] = { 3, 1, 2 }; int M = 3, K = 4; int N = sizeof(A) / sizeof(A[0]); cout << K << "th smallest number after concatenating " << M << " times, is: "<<findKSmallestNumber(A, N, M, K); }
आउटपुट
4th smallest number after concatenating 3 times, is: 2