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

C++ में सबसे छोटा सबएरे ढूंढें जिसमें सभी एलिमेंट्स उसी क्रम में हों


मान लीजिए हमारे पास आकार m और n के दो ऐरे हैं, कार्य पहले ऐरे में न्यूनतम लंबाई का सबएरे ढूंढना है, जिसमें दूसरे ऐरे के सभी एलिमेंट्स हों। दूसरा ऐरे में एलिमेंट्स बड़े ऐरे में नॉन-कंटीग्यूअस लेकिन क्रम समान होना चाहिए। तो यदि दो ऐरे हैं जैसे A = [2, 2, 4, 5, 8, 9], और B = [2, 5, 9], तो आउटपुट 5 होगा। क्योंकि A का सबसे छोटा सबएरे [2, 4, 5, 8, 9] होगा। यहां [2, 5, 9] जैसे सभी एलिमेंट्स उसी क्रम में हैं। तो आकार 5 है।

हम इसे पहले एलिमेंट की जांच करके हल कर सकते हैं जो दूसरे ऐरे के पहले एलिमेंट से मेल खाता है। जब पहला एलिमेंट मेल खाता है, फिर हम दूसरे ऐरे के बाकी एलिमेंट्स को मुख्य ऐरे में मिलाते हैं, जब सभी एलिमेंट्स मेल खाते हैं, तो जरूरत पड़ने पर लंबाई अपडेट करें। ऐसा करने के बाद सबएरे की न्यूनतम लंबाई वापस करें।

उदाहरण

#include 
using namespace std;

int lengthMinSubarray(int A[], int n, int B[], int m) {
    int res = INT_MAX;
    for (int i = 0; i < n - m + 1; i++) {
        if (A[i] == B[0]) {
            int j = 0, idx = i;
            for (; idx < n; idx++) {
                if (A[idx] == B[j])
                    j++;
                if (j == m)
                    break;
            }
            if (j == m && res > idx - i + 1)
                res = (idx == n) ? idx - i : idx - i + 1;
        }
    }
    return res;
}

int main() {
    int A[] = { 5, 6, 5, 2, 7, 5, 6, 7, 5, 5, 7 };
    int B[] = { 5, 5, 7 };
    int n = sizeof(A)/sizeof(A[0]);
    int m = sizeof(B)/sizeof(B[0]);
    cout << "Minimum length of subarray: " << lengthMinSubarray(A, n, B, m);
}

आउटपुट

Minimum length of subarray: 3

  1. - C++ प्रोग्राम: सबसे छोटी संख्या X ज्ञात करना जिससे X! में कम से कम Y अनुगामी शून्य हों

    हमें एक संख्या Y लेनी है, हम सबसे छोटी संख्या X ज्ञात करेंगे, जैसे कि X! में कम से कम Y अनुगामी शून्य हों। उदाहरण के लिए, यदि Y = 2, तो X का मान = 10 होगा। क्योंकि X! = 3228800। इसमें Y संख्या में शून्य हैं। हम इसे बाइनरी सर्च का उपयोग करके हल कर सकते हैं। N! में अनुगामी शून्यों की संख्या N! में 5

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें A से एक ऐसा तत्व ढूंढना है जिससे सभी तत्व इससे विभाज्य हों। मान लीजिए A = [15, 21, 69, 33, 3, 72, 81] है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हैं। इस समस्या को हल करने के लिए, हम A में सबसे छोटी संख्या लेंगे, फिर जांचेंगे कि क्य

  1. - C++ में ऐरे के सभी एलिमेंट्स को समान बनाने के लिए न्यूनतम डिलीट ऑपरेशन्स

    समस्या कथनn एलिमेंट्स का एक ऐरे दिया गया है जैसे कि एलिमेंट्स रिपीट हो सकते हैं। हम ऐरे से किसी भी संख्या में एलिमेंट्स डिलीट कर सकते हैं। कार्य ऐरे को समान बनाने के लिए डिलीट किए जाने वाले एलिमेंट्स की न्यूनतम संख्या ढूंढना है।arr[] = {10, 8, 10, 7, 10, -1, -4, 12}सभी ऐरे एलिमेंट्स को समान बनाने के