इस ट्यूटोरियल में, हम चार अंकों से बनने वाले अधिकतम संभव समय को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें 4 अंकों वाली एक सरणी प्रदान की जाएगी। हमारा काम अधिकतम समय (24 घंटे के प्रारूप) का पता लगाना है जो उन चार अंकों का उपयोग करके बनाया जा सकता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; //returning updated frequency map map<int, int> getFrequencyMap(int arr[], int n) { map<int, int> hashMap; for (int i = 0; i < n; i++) { hashMap[arr[i]]++; } return hashMap; } //checking if the digit is present in frequency map bool hasDigit(map<int, int>* hashMap, int digit) { if ((*hashMap)[digit]) { (*hashMap)[digit]--; return true; } return false; } //returning maximum time in 24 hour format string getMaxtime_value(int arr[], int n) { map<int, int> hashMap = getFrequencyMap(arr, n); int i; bool flag; string time_value = ""; flag = false; for (i = 2; i >= 0; i--) { if (hasDigit(&hashMap, i)) { flag = true; time_value += (char)i + 48; break; } } if (!flag) return "-1"; flag = false; if (time_value[0] == '2') { for (i = 3; i >= 0; i--) { if (hasDigit(&hashMap, i)) { flag = true; time_value += (char)i + 48; break; } } } else { for (i = 9; i >= 0; i--) { if (hasDigit(&hashMap, i)) { flag = true; time_value += (char)i + 48; break; } } } if (!flag) return "-1"; time_value += ":"; flag = false; for (i = 5; i >= 0; i--) { if (hasDigit(&hashMap, i)) { flag = true; time_value += (char)i + 48; break; } } if (!flag) return "-1"; flag = false; for (i = 9; i >= 0; i--) { if (hasDigit(&hashMap, i)) { flag = true; time_value += (char)i + 48; 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