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

C++ में न्यूनतम समय का अंतर

मान लीजिए कि हमारे पास "घंटे:मिनट" प्रारूप में 24 घंटे के घड़ी के समय बिंदुओं की एक सूची है, हमें सूची में किसी भी दो समय बिंदुओं के बीच न्यूनतम मिनट का अंतर खोजना होगा। तो अगर इनपुट ["12:30",,"15:17"] जैसा है, तो यह 167 लौटाएगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • 24*60 + 1 आकार के ओके नामक एक सरणी को परिभाषित करें, और प्रारंभ में सभी गलत हैं।
  • n :=tp का आकार
  • मैं के लिए 0 से n - 1 की सीमा में
    • घंटा :=समय से घंटा भाग
    • मिनट :=स्ट्रिंग का मिनट हिस्सा
    • समय :=घंटा * 60 + मिनट
    • यदि ठीक है [समय] सत्य है, तो 0 लौटाएं, अन्यथा ठीक [समय] को सत्य के रूप में सेट करें।
  • अंतिम :=0, प्रथम :=inf, ret :=inf, पिछला :=-inf
  • मेरे लिए 0 से 24*60 की सीमा में
    • अगर ठीक है[i] सच है, तो
      • अंतिम:=अधिकतम मैं, अंतिम
      • पहला :=मैं और पहले का मिनट
      • यदि पिछला –inf नहीं है, तो रिट :=मिनट का रिट और अंतिम – पिछला
      • पिछला :=मैं
  • रिटर्न न्‍यूनतम रिटर्न और 24*60+प्रथम-आखिरी।

आइए बेहतर समझने के लिए निम्नलिखित कार्यान्वयन देखें &mnus;

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int findMinDifference(vector<string>& tp) {
      vector <bool> ok(24 * 60 + 1, false);
      int n = tp.size();
      for(int i = 0; i < n; i++){
         int hr = stoi(tp[i].substr(0, 2));
         int min = stoi(tp[i].substr(3, 2));
         int time = hr * 60 + min;
         if(ok[time]) return 0;
         ok[time] = true;
      }
      int last = 0;
      int first = INT_MAX;
      int ret = INT_MAX;
      int prev = INT_MIN;
      for(int i = 0; i <= 24 * 60; i++){
         if(ok[i]){
            last = max(i, last);
            first = min(i, first);
            if(prev != INT_MIN) ret = min(ret, last - prev);
            prev = i;
         }
      }
      return min(ret, 24 * 60 + first - last);
   }
};
main(){
   vector<string> v = {"12:30","15:17"};
   Solution ob;
   cout << (ob.findMinDifference(v));
}

इनपुट

["12:30","15:17"]

आउटपुट

167

  1. C++ में दिए गए 2D सरणी में न्यूनतम योग सबमैट्रिक्स

    हमें मैट्रिक्स बनाने वाले पूर्णांक तत्वों की 2-डी सरणी दी गई है। कार्य इस प्रकार गठित मैट्रिक्स से सबमैट्रिक्स को खींचकर न्यूनतम योग की गणना करना है। आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें - इन − इंट मैट्रिक्स [आकार] [आकार] ={{2, 3, -1, 5}, {-2, 9, -1, 6}, {5, 6, 9, -9}, { -6, 1, 1, 1} }

  1. सी++ में एक पेड़ में सभी सेबों को इकट्ठा करने का न्यूनतम समय

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष पेड़ है जिसमें n शीर्ष हैं और इनकी संख्या 0 से n-1 तक है, जिसके शीर्षों में कुछ सेब हैं। हम पेड़ के एक किनारे पर चलने में 1 सेकंड खर्च करते हैं। पेड़ में सभी सेबों को शीर्ष 0 से शुरू करने और इस शीर्ष पर वापस आने के लिए हमें सेकंड में न्यूनतम समय निकालना होगा। यह

  1. C++ में जॉब शेड्यूल की न्यूनतम कठिनाई

    मान लीजिए कि हम d दिनों में कार्यों की एक सूची शेड्यूल करना चाहते हैं। कार्य निर्भर हैं इसलिए i-th कार्य पर काम करने के लिए, हमें सभी कार्यों को पूरा करना होगा जहां 0 <=j