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

C++ में किसी संख्या में k ब्रेकप्वाइंट डालने के बाद अधिकतम खंड मान


इस समस्या में, हमें एक स्ट्रिंग दी जाती है जो एक बड़ी संख्या को दर्शाती है और एक पूर्णांक k roar ब्रेकप्वाइंट की संख्या को दर्शाता है। हमारा काम एक प्रोग्राम बनाना है जो एल ब्रेकप्वाइंट को एक संख्या में डालने के बाद अधिकतम सेगमेंट मान प्राप्त करेगा।

यहां, हमें वह अधिकतम संख्या ज्ञात करनी है जो स्ट्रिंग द्वारा दी गई संख्या में k ब्रेकपॉइंट लगाने के बाद उत्पन्न हो सकती है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं

इनपुट - स्ट्रिंग ="45972", के =3

आउटपुट - 97

स्पष्टीकरण -

All possible number is:
45    9    7    2
4    59    7    2
4    5    97    2
4    5    9    72
From all 97 is the largest number.

इस समस्या को हल करने के लिए, हम स्लाइडिंग विंडो का उपयोग करेंगे। यहां, विंडो का आकार (स्ट्रिंग की लंबाई - k) के बराबर होगा यानी इस आकार की अधिकतम संख्या होगी। हम स्लाइडिंग विंडो तकनीक का उपयोग करके दिए गए आकार की सभी संभावित संख्याओं की अधिकतम संख्या की जांच करेंगे।

उदाहरण

K ब्रेकप्वाइंट को एक संख्या में रखने के बाद अधिकतम खंड मान ज्ञात करने का कार्यक्रम -

#include <bits/stdc++.h>
using namespace std;
int findMaxSegmentWithKbreaks(string &s, int k) {
   int window = s.length() - k;
   int MaxNumber = 0;
   for (int i=0; i<window; i++)
   MaxNumber = MaxNumber * 10 + (s[i] - '0');
   int slWindow = pow(10, window-1);
   int value = MaxNumber;
   for (int i = 1; i <= (s.length() - window); i++) {
      value = value - (s[i-1]- '0')*slWindow;
      value = value*10 + (s[i+window-1]- '0');
      MaxNumber = max(MaxNumber, value);
   }
   return MaxNumber;
}
int main() {
   string s = "45972";
   int k = 3;
   cout<<"Maximum segment value after putting "<<k<<" break points in a number = "<<findMaxSegmentWithKbreaks(s, k);
   return 0;
}

आउटपुट

Maximum segment value after putting 3 breakpoints in a number = 97

  1. अधिकतम औसत मान के साथ C++ पथ

    इस समस्या में 2 डी मैट्रिक्स को देखते हुए, और हमें अधिकतम औसत मान वाले पथ खोजने की आवश्यकता है। पथ के लिए, हमारा स्रोत सबसे ऊपरी बायां कक्ष है, और गंतव्य सबसे निचला दायां कक्ष है, उदाहरण के लिए - Input : Matrix = [1, 2, 3 4, 5, 6 7, 8, 9] Output : 5.8 Path with maximum average is, 1 -> 4 -> 7

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया जाता है। अब हमें उस पथ को खोजने की आवश्यकता है जिसमें अधिकतम संख्या में मोड़ हों। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिए इनपुट - आउटपुट - 6 अब इस दृष्टिकोण में, हम पेड़ से गुजरें

  1. अधिकतम संख्या जिसे C++ में N सेगमेंट का उपयोग करके सेवन सेगमेंट डिस्प्ले पर प्रदर्शित किया जा सकता है

    यह देखते हुए कि कार्य सात खंड प्रदर्शन की चींटी संख्या पर N खंड का उपयोग करके प्रदर्शित की जा सकने वाली अधिकतम संख्या ज्ञात करना है। आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है - इनपुट -एन=5 आउटपुट - 71 स्पष्टीकरण − सबसे बड़ी संख्या सात खंडों के प्रदर्शन पर निम्नानुसार प्रदर्शि