কম্পিউটার

C++ এ ন্যূনতম সময়ের পার্থক্য


ধরুন আমাদের কাছে "ঘন্টা:মিনিট" বিন্যাসে 24-ঘন্টা ঘড়ির সময় পয়েন্টের একটি তালিকা আছে, আমাদের তালিকার যেকোনো দুটি সময় পয়েন্টের মধ্যে ন্যূনতম মিনিটের পার্থক্য খুঁজে বের করতে হবে। সুতরাং ইনপুট যদি [“12:30”,”15:17”] এর মত হয়, তাহলে এটি 167 রিটার্ন করবে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • 24*60 + 1 আকারের ok নামক একটি অ্যারে সংজ্ঞায়িত করুন, এবং প্রাথমিকভাবে সব মিথ্যা।
  • n :=tp এর আকার
  • আমি 0 থেকে n – 1
      পরিসরে
    • hr :=সময় থেকে ঘণ্টার অংশ
    • মিনিট :=স্ট্রিং এর মিনিট অংশ
    • সময় :=ঘণ্টা * ৬০ + মিনিট
    • যদি ঠিক আছে [সময়] সত্য হয়, তাহলে 0 ফেরত দিন, অন্যথায় ঠিক আছে [সময়] সত্য হিসাবে সেট করুন।
  • শেষ :=0, প্রথম :=inf, ret :=inf, আগের :=-inf
  • আমি 0 থেকে 24*60 রেঞ্জের জন্য
    • যদি ঠিক আছে[i] সত্য হয়, তাহলে
      • শেষ :=i এর সর্বোচ্চ, শেষ
      • প্রথম :=i এবং প্রথমের মিনিট
      • যদি prev-inf না হয়, তাহলে ret :=ret এর মিনিট এবং শেষ - prev
      • আগের :=i
  • সর্বনিম্ন রিটার্ন এবং 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. n পূর্ণসংখ্যা জোড়ায় ন্যূনতম পার্থক্য মান খুঁজে বের করতে C++ প্রোগ্রাম

  2. C++ এ একটি প্রদত্ত 2D অ্যারেতে ন্যূনতম যোগফল সাবম্যাট্রিক্স

  3. C++ এ একটি গাছে সমস্ত আপেল সংগ্রহ করার ন্যূনতম সময়

  4. C++ এ কাজের সময়সূচীর ন্যূনতম অসুবিধা