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

C++ में जांचें कि एरे सॉर्टेड और रोटेटेड है या नहीं

पूर्णांकों का एक एरे दिया गया है, कार्य यह जांचना है कि एरे सॉर्टेड (बढ़ते क्रम में) है और कुछ पोजीशन के बाद रोटेटेड है या नहीं।

उदाहरण के लिए

इनपुट-1:

N = [7, 8, 9, 4, 5, 6]

आउटपुट:

True

व्याख्या: चूंकि दिया गया एरे बढ़ते क्रम में है और तीसरी पोजीशन के बाद एलिमेंट्स रोटेटेड हैं, हम इस मामले में True लौटाएंगे।

इनपुट-2:

N = [1, 5, 7, 6, 2, 3]

आउटपुट:

False

व्याख्या: चूंकि दिया गया एरे न तो बढ़ते क्रम में है और न ही किसी विशिष्ट पोजीशन के साथ रोटेटेड है, आउटपुट False है।

इस समस्या को हल करने का दृष्टिकोण

हमारे पास एलिमेंट्स के साथ एक एरे है जो या तो बढ़ते क्रम में है या अनसॉर्टेड। यदि एरे को सॉर्टेड और रोटेटेड होना है, तो कम से कम एक एलिमेंट ऐसा होगा जैसे कि N[i] > N[i+1]।

इस प्रकार, प्रत्येक N[i] के लिए, हम गिनेंगे कि क्या कोई ऐसा एलिमेंट है जो शर्त को संतुष्ट करता है और तदनुसार True या False लौटाएंगे।

  • एरे एलिमेंट का इनपुट लें।
  • एक बूलियन फ़ंक्शन checkSortedandRotated(int *arr, int n) एक एरे और उसके आकार को इनपुट के रूप में लेता है और यदि एरे सॉर्टेड और रोटेटेड है तो true लौटाता है अन्यथा false।
  • पूरे एरे पर पुनरावृति करें और उन एलिमेंट्स की संख्या गिनें जो (arr[i] > arr[i+1]%n) हैं। यदि गिनती '1' है, तो True लौटाएं, अन्यथा False लौटाएं।
  • आउटपुट लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
bool checkSortedandRotated(int * arr, int n) {
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] > arr[(i + 1) % n])
            count++;
    }
    return (count <= 1);
}
int main() {
    int arr[] = {5,6,7,1,2,3,4};
    int n = sizeof(arr) / sizeof(int);
    if (checkSortedandRotated(arr, n)) {
        cout << "True" << endl;
    } else {
        cout << "False" << endl;
    }
    return 0;
}

उपरोक्त कोड चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

आउटपुट

True

चूंकि दिया गया एरे [5, 6, 7, 1, 2, 3, 4] सॉर्टेड है और तीसरी पोजीशन से रोटेटेड है, हमें इस मामले में आउटपुट 'True' मिलता है।

  1. - C++ में जांचें कि दी गई सरणी युग्मवार सॉर्टेड है या नहीं

    हमारे पास n तत्वों की एक सरणी A है। हमें जांचना है कि सरणी युग्मवार सॉर्टेड (pairwise sorted) है या नहीं। मान लीजिए सरणी {8, 10, 18, 20, 5, 15} जैसी है। यह युग्मवार सॉर्टेड है क्योंकि (8, 10), (18, 20), (5, 15) सॉर्टेड हैं। यदि सरणी में विषम संख्या में तत्व हैं, तो अंतिम को नजरअंदाज कर दिया जाएगा।दृ

  1. - Python में जांचें कि सरणी सॉर्टेड और रोटेटेड है या नहीं

    मान लीजिए हमारे पास nums नामक एक सरणी है, हमें जांचना है कि क्या सरणी मूल रूप से नॉन-डिक्रीजिंग ऑर्डर में सॉर्टेड थी, और फिर कुछ पोजीशन (शून्य भी हो सकता है) से रोटेट की गई थी या नहीं। सरणी में डुप्लिकेट भी हो सकते हैं। इसलिए, यदि इनपुट है: nums = [12,15,2,5,6,9], तो आउटपुट True होगा, क्योंकि यह दो

  1. - पायथन में जांचें कि कोई ऐरे सॉर्टेड और रोटेटेड है या नहीं

    मान लीजिए हमारे पास n अद्वितीय मानों का एक ऐरे है। हमें यह जांचना है कि क्या यह ऐरे सॉर्टेड और एंटी-क्लॉकवाइज रोटेटेड है। यहां कम से कम एक रोटेशन आवश्यक है, इसलिए पूरी तरह से सॉर्टेड ऐरे को सॉर्टेड और रोटेटेड नहीं माना जाता। उदाहरण के लिए, यदि इनपुट nums = [4,5,6,8,1,3] है, तो आउटपुट True होगा क्यो