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

सी ++ में सूची मान समान बनाना


मान लीजिए कि हमारे पास पूर्णांकों की एक सूची है जिसे अंक कहते हैं। अब मान लीजिए एक ऑपरेशन जहां हम सूची में पूर्णांकों के कुछ उपसमुच्चय का चयन करते हैं और उन सभी को एक से बढ़ाते हैं। सूची में सभी मानों को एक दूसरे के बराबर बनाने के लिए हमें आवश्यक संचालन की न्यूनतम संख्या ज्ञात करनी होगी।

इसलिए, अगर इनपुट [1,3,5] जैसा है, तो आउटपुट 4 होगा।

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

  • यदि अंकों का आकार 1 के समान है, तो -

    • वापसी 0

  • रिट:=0

  • मैक्सवैल :=-इन्फ

  • minVal :=inf

  • इनिशियलाइज़ i :=0 के लिए, जब i <अंकों का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -

    • maxVal :=अधिकतम अधिकतम वैल और अंक[i]

    • minVal :=न्यूनतम minVal और nums[i]

  • वापसी maxVal - minVal

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(vector<int> &nums) {
      if (nums.size() == 1)
      return 0;
      int ret = 0;
      int maxVal = INT_MIN;
      int minVal = INT_MAX;
      for (int i = 0; i < nums.size(); i++) {
         maxVal = max(maxVal, nums[i]);
         minVal = min(minVal, nums[i]);
      }
      return maxVal - minVal;
   }
};
main() {
   Solution ob;
   vector<int> v = {1,3,5};
   cout << (ob.solve(v));
}

इनपुट

{1,3,5}

आउटपुट

4

  1. सी ++ में एक लिंक्ड सूची को समतल करना

    इस समस्या में, हमें दो पॉइंटर नोड्स वाली लिंक्ड लिस्ट दी जाती है, दाएं और नीचे। दायां नोड मुख्य लिंक्ड सूची सूचक है। डाउन नोड उस नोड से शुरू होने वाली सेकेंडरी लिंक्ड लिस्ट के लिए है। सभी लिंक की गई सूचियां क्रमबद्ध हैं। हमारा काम एक लिंक की गई सूची को समतल करने के लिए एक प्रोग्राम बनाना ह

  1. सी ++ में समान योग और एक्सओआर

    इस समस्या में, हमें एक पूर्णांक n दिया गया है। हमारा कार्य i =0 से n तक पूर्णांकों की संख्या ज्ञात करने के लिए एक प्रोग्राम बनाना है, जहाँ योग XOR के बराबर है अर्थात (n+i) =(n^i)। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: एन =4 आउटपुट: 4 स्पष्टीकरण: 0 से n तक के सभी मानों को ध्यान में

  1. C++ में समान वृक्ष विभाजन

    मान लीजिए कि हमारे पास n नोड्स के साथ एक बाइनरी ट्री है, तो हमारा काम यह जांचना है कि क्या ट्री को दो पेड़ों में विभाजित करना संभव है, जिनका मूल पेड़ के ठीक एक किनारे को हटाने के बाद बराबर योग है। तो, अगर इनपुट पसंद है तब आउटपुट सही होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक