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

C++ में ओवरलैप को हटाने के लिए हटाए जाने वाले अंतरालों की न्यूनतम संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास अंतराल का एक सेट है; हमें शेष अंतरालों को गैर-अतिव्यापी बनाने के लिए हटाए जाने वाले अंतरालों की न्यूनतम संख्या ज्ञात करनी होगी। इसलिए यदि अंतराल [[8,10],[3,5], [6,9]] हैं, तो आउटपुट 1 होगा, क्योंकि हमें अन्य सभी को गैर-अतिव्यापी बनाने के लिए [6,9] को हटाना होगा। ।

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

  • n :=सरणी का आकार
  • अगर n 0 है, तो 0 लौटाएं
  • गिनती :=1
  • अंतराल के अंत समय के आधार पर सरणी को क्रमबद्ध करें
  • समाप्ति:=पहले अंतराल की समाप्ति तिथि
  • मैं के लिए 1 से n - 1 की सीमा में
    • यदि गिरफ्तारी का प्रारंभ समय[i]>=अंत, तो
      • समाप्ति:=गिरफ्तारी का समाप्ति समय[i]
      • गणना में 1 की वृद्धि करें
  • वापसी n - गिनती

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   static bool cmp(vector <int>& a, vector <int>& b){
      return a[1] < b[1];
   }
   int eraseOverlapIntervals(vector<vector<int>>& arr) {
      int n = arr.size();
      if(!n)return 0;
         int cnt = 1;
         sort(arr.begin(), arr.end(), cmp);
         int end = arr[0][1];
         for(int i = 1; i < n; i++){
            if(arr[i][0] >= end){
               end = arr[i][1];
               cnt++;
         }
      }
      return n - cnt;
   }
};
main(){
   vector<vector<int>>
   v = {{8,10},{3,5},{6,9}};
   Solution ob;
   cout << (ob.eraseOverlapIntervals(v));
}

इनपुट

{{8,10},{3,5},{6,9}}

आउटपुट

1

  1. C++ में nth Hermite संख्या ज्ञात कीजिए

    इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य nth Hermite संख्या खोजने के लिए एक प्रोग्राम बनाना है। हर्माइट नंबर 0 तर्क होने पर एक संख्या हर्मिट संख्या का मान है। Nth hermite Number is HN = (-2) * (N - 1) * H(N-2) The base values are H0 = 1 and H0 = 0. हर्मिट अनुक्रम है - 1, 0,

  1. C++ में संख्या d जोड़ने के बाद न्यूनतम संभव अंकों का योग ज्ञात कीजिए

    इस समस्या में, हमें दो संख्याएँ n और d दी गई हैं। हमारा कार्य संख्या d जोड़ने के बाद न्यूनतम संभव अंकों का योग ज्ञात करना है। समस्या का विवरण - हमें n में d का kवां गुणज जोड़कर अंकों के योग को कम करना होगा। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट n = 5230, d = 54 आउटपुट 1 स्पष्टीकरण The

  1. सी ++ में प्रतिद्वंद्वी को पकड़ने के लिए आवश्यक न्यूनतम चरणों को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास [u, v] के रूप में पेड़ के किनारों की एक सूची है, यह इंगित करता है कि u और v के बीच एक अप्रत्यक्ष किनारा है। और हमारे पास दो मान x और y भी हैं। यदि हम नोड x पर हैं, और हमारा प्रतिद्वंद्वी नोड y पर है। पहले दौर में, हम आगे बढ़ते हैं, फिर अगले दौर में प्रतिद्वंद्वी चलता है और इसी