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

C++ में सरणी पर ऑपरेशन करके सभी तत्वों को 0 बनाने के लिए न्यूनतम ऑपरेशन

समस्या कथन

आकार N की एक सरणी दी गई है और प्रत्येक तत्व या तो 1 या 0 है। सभी तत्वों को शून्य में बदलने के लिए किए जाने वाले न्यूनतम ऑपरेशन की गणना करें। कोई निम्न ऑपरेशन कर सकता है:

यदि कोई तत्व 1 है, तो आप उसका मान 0 के बराबर बदल सकते हैं, तब:

  • यदि अगला लगातार तत्व 1 है, तो यह स्वचालित रूप से 0 में बदल जाएगा
  • यदि अगला लगातार तत्व पहले से 0 है, तो कुछ नहीं होगा

यदि arr[] = {1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1}, तो सभी तत्वों को शून्य बनाने के लिए 4 ऑपरेशन आवश्यक हैं।

एल्गोरिदम

1. यदि वर्तमान तत्व 1 है तो काउंट बढ़ाएं और अगले 0 को खोजें क्योंकि सभी लगातार 1 स्वचालित रूप से 0 में बदल जाएंगे।
2. अंतिम काउंट लौटाएं

C++ उदाहरण

#include <iostream>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;

int performMinOperation(int *arr, int n) {
    int i, cnt = 0;
    for (i = 0; i < n; ++i) {
        if (arr[i] == 1) {
            int j;
            for (j = i + 1; j < n; ++j) {
                if (arr[j] == 0) break;
            }
            i = j - 1;
            ++cnt;
        }
    }
    return cnt;
}

int main() {
    int arr[] = {1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1};
    cout << "Minimum required operations = " << performMinOperation(arr, SIZE(arr)) << endl;
    return 0;
}

आउटपुट

Minimum required operations = 4
  1. - C++ में सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशन

    मान लीजिए हमारे पास एक सरणी arr और एक अन्य मान k है। हमें सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशंस की संख्या ढूंढनी है। यहां ऑपरेशन मान को बढ़ाना या घटाना है। मान लीजिए सरणी {4, 5, 6} है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं, और 6 को 1 से घटा सकते हैं, तो यह 5 बन जाता है। यहां ऑपरेशंस

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

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

  1. - Python में सभी ऐरे तत्वों को बराबर बनाने के लिए आवश्यक ऑपरेशंस की संख्या

    हमें तत्वों का एक ऐरे दिया गया है, और हमें उन सभी को 1 से बढ़ाकर बराबर बनाना है। हमें प्रत्येक चरण में n - 1 तत्व बढ़ाने की अनुमति है। हमारा लक्ष्य सभी ऐरे तत्वों को बराबर बनाने के लिए आवश्यक कुल ऑपरेशंस की संख्या की गणना करना है। उदाहरण के लिए, यदि आप सूची [1, 2, 3] लेते हैं, तो सभी तत्वों को बराब