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

C++ में Max Chunks To Make Sorted


मान लीजिए हमें एक सरणी arr दी गई है जो [0, 1, ..., arr.length - 1] का एक क्रमचय (permutation) है, हमें सरणी को कुछ संख्या में "चंक्स" या विभाजन में विभाजित करना है, और प्रत्येक विभाजन को व्यक्तिगत रूप से क्रमबद्ध करना है। इसलिए उन्हें जोड़ने के बाद, परिणाम क्रमबद्ध सरणी होगी। इसलिए यदि सरणी [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
  • i को 0 से n तक की रेंज में
    • maxVal := arr[i] और maxVal का अधिकतम
    • यदि maxVal = i, तो ans को 1 से बढ़ाएं
  • ans लौटाएं

उदाहरण

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

#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. C++ में एक रेखा पर अधिकतम बिंदु C++ में एक रेखा पर अधिकतम बिंदु

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

  1. - C++ प्रोग्राम: मैक्स हीप इम्प्लीमेंटेशन

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

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

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