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

C++ में क्रमित करने के लिए अधिकतम विखंडू


मान लीजिए कि हमने एक ऐरे एरर दिया है जो कि [0, 1, ..., arr.length - 1] का क्रमचय है, हमें ऐरे को कुछ संख्या में "चंक्स" में विभाजित करना होगा। "या विभाजन, और व्यक्तिगत रूप से प्रत्येक विभाजन को क्रमबद्ध करें। तो उन्हें संयोजित करने के बाद, परिणाम क्रमबद्ध सरणी होगी। तो यदि सरणी [1,0,2,3,4] की तरह है, तो आउटपुट 4 होगा, क्योंकि हम [1, 0] और [2,3,4] जैसे दो विभाजनों में विभाजित हो सकते हैं, लेकिन यह कर सकता है यह भी सच हो कि [1, 0], [2], [3], [4]। तो यह अधिकतम संभव विखंडू है, इसलिए आउटपुट 4 है।

हम कितने टुकड़े बना सकते थे?

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

  • Ans :=0, minVal :=inf, n :=arr का आकार, और maxVal :=-inf
  • मैं के लिए 0 से n की सीमा में
    • maxVal :=अधिकतम गिरफ्तारी[i] और maxVal
    • यदि maxVal =i है, तो उत्तर को 1 से बढ़ा दें
  • वापसी उत्तर

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int maxChunksToSorted(vector<int>& arr) {
      int ans = 0;
      int minVal = INT_MAX;
      int n = arr.size();
      int maxVal = INT_MIN;
      for(int i = 0; i < n; i++){
         maxVal = max(arr[i], maxVal);
         if(maxVal == i){
            ans++;
         }
      }
      return ans;
   }
};
main(){
   Solution ob;
   vector<int> v = {1,0,2,3,4};
   cout << (ob.maxChunksToSorted(v));
}

इनपुट

[1,0,2,3,4]

आउटपुट

4

  1. सी ++ में एक लाइन पर मैक्स पॉइंट्स

    मान लीजिए कि हमारे पास 2D प्लेन है। हमें एक ही सीधी रेखा पर रहने वाले बिंदुओं की अधिकतम संख्या ज्ञात करनी है। तो अगर अंक इस तरह हैं - फिर 4 अंक होते हैं इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - n :=अंकों की संख्या, यदि n <3 है, तो n लौटाएं उत्तर :=2 मैं के लिए 1 से n - 1 की सीमा

  1. C++ प्रोग्राम मैक्स हीप को लागू करने के लिए

    एक बाइनरी हीप एक पूर्ण बाइनरी ट्री है जो या तो मिन हीप या मैक्स हीप है। मैक्स बाइनरी हीप में, रूट की कुंजी बाइनरी हीप में मौजूद सभी कुंजियों के बीच अधिकतम होनी चाहिए। यह गुण बाइनरी ट्री में सभी नोड्स के लिए पुनरावर्ती रूप से सत्य होना चाहिए। मिन बाइनरी हीप मिनहीप के समान है। एल्गोरिदम max_heap के ल

  1. पायथन में क्रमबद्ध सरणी बनाने के लिए अधिकतम भाग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक सरणी संख्या है, हमें सरणी को कुछ विभाजनों में विभाजित करना होगा, और उनमें से प्रत्येक को व्यक्तिगत रूप से क्रमबद्ध करना होगा। अब उन्हें संयोजित करने के बाद हमें एक क्रमबद्ध सरणी मिलेगी। हमें अधिकतम संख्या में विभाजन ज्ञात करने होंगे जो हम कर सकते थे? इसलिए, यदि इनपुट [3,2,