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

C++ में चार अंकों से बनने वाला अधिकतम संभव समय (24 घंटे प्रारूप)


4 अंक दिए गए हैं। उनसे 24-घंटे प्रारूप (HH:MM) में बनने वाला अधिकतम वैध समय खोजें।

लालची दृष्टिकोण: घंटे का दहाई अंक (0-2), इकाई अंक (0-3 यदि दहाई 2 है, अन्यथा 0-9), मिनट का दहाई (0-5), इकाई (0-9)।

उदाहरण: {0,0,0,9} → "09:00"।

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

map getFrequencyMap(int arr[], int n) {
    map hashMap;
    for (int i = 0; i < n; i++) hashMap[arr[i]]++;
    return hashMap;
}

bool hasDigit(map* hashMap, int digit) {
    if ((*hashMap)[digit]) { (*hashMap)[digit]--; return true; }
    return false;
}

string getMaxtime_value(int arr[], int n) {
    map hashMap = getFrequencyMap(arr, n);
    string time_value = "";
    bool flag = false;
    // घंटे का दहाई अंक (2,1,0)
    for (int i = 2; i >= 0; i--) {
        if (hasDigit(&hashMap, i)) { flag = true; time_value += char(i + '0'); break; }
    }
    if (!flag) return "-1";
    flag = false;
    // घंटे का इकाई अंक
    if (time_value[0] == '2') {
        for (int i = 3; i >= 0; i--) if (hasDigit(&hashMap, i)) { flag = true; time_value += char(i + '0'); break; }
    } else {
        for (int i = 9; i >= 0; i--) if (hasDigit(&hashMap, i)) { flag = true; time_value += char(i + '0'); break; }
    }
    if (!flag) return "-1";
    time_value += ":";
    // मिनट का दहाई (5 से 0)
    flag = false;
    for (int i = 5; i >= 0; i--) if (hasDigit(&hashMap, i)) { flag = true; time_value += char(i + '0'); break; }
    if (!flag) return "-1";
    // मिनट का इकाई (9 से 0)
    flag = false;
    for (int i = 9; i >= 0; i--) if (hasDigit(&hashMap, i)) { flag = true; time_value += char(i + '0'); break; }
    if (!flag) return "-1";
    return time_value;
}

int main() {
    int arr[] = {0, 0, 0, 9};
    int n = sizeof(arr) / sizeof(int);
    cout << getMaxtime_value(arr, n);
    return 0;
}

आउटपुट

09:00
  1. ग्राफ से घटाए जा सकने वाले अधिकतम स्कोर की मात्रा ज्ञात करने का C++ प्रोग्राम ग्राफ से घटाए जा सकने वाले अधिकतम स्कोर की मात्रा ज्ञात करने का C++ प्रोग्राम

    मान लीजिए n वर्टेक्स और m एज वाला एक भारित, निदेश रहित ग्राफ दिया गया है। ग्राफ का स्कोर ग्राफ में सभी एज भारों का योग है। एज भार ऋणात्मक हो सकते हैं, और यदि उन्हें हटा दिया जाए तो ग्राफ का स्कोर बढ़ जाता है। हमें ग्राफ को संबद्ध रखते हुए एज हटाकर ग्राफ के स्कोर को न्यूनतम करना है। हमें घटाए जा सकन

  1. C++ में अधिकतम दर्पण जो प्रकाश को नीचे से दाएं स्थानांतरित कर सकते हैं C++ में अधिकतम दर्पण जो प्रकाश को नीचे से दाएं स्थानांतरित कर सकते हैं

    हमें एक वर्ग मैट्रिक्स दिया गया है जिसमें केवल 0 और 1 हैं। 0 खाली स्थान दर्शाता है और 1 बाधा दर्शाता है। हमें खाली सेल पर रखे जा सकने वाले दर्पणों की संख्या ढूंढनी होगी ताकि ये दर्पण प्रकाश को नीचे से दाएं स्थानांतरित कर सकें। यह तब संभव है जब, दर्पण इंडेक्स [i,j] पर रखा गया हो और उस विशेष पंक्ति (i

  1. - C++ में वे फ़ंक्शन जिन्हें ओवरलोड नहीं किया जा सकता

    फंक्शन ओवरलोडिंग नियम C++ में, हम फ़ंक्शन्स को ओवरलोड कर सकते हैं। लेकिन कभी-कभी ओवरलोडिंग नहीं की जाती। इस सेक्शन में, हम उन विभिन्न मामलों को देखेंगे जिनमें हम फ़ंक्शन्स को ओवरलोड नहीं कर सकते। 1. केवल रिटर्न टाइप अलग होने पर जब फ़ंक्शन सिग्नेचर्स समान हों, केवल रिटर्न टाइप अलग हो, तो हम फ़ंक्शन