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

C++ में सरणी पैचिंग


मान लीजिए हमारे पास एक सरणी nums और एक संख्या है। हम सरणी में तत्व जोड़ सकते हैं, जैसे कि रेंज [1, n] (दोनों समावेशी) में कोई भी संख्या सरणी में कुछ तत्वों के योग द्वारा बनाई जा सकती है। हमें आवश्यक पैच की न्यूनतम संख्या ढूंढनी है। तो जब सरणी [1,4] जैसी है और दी गई संख्या n = 7 है, तो आउटपुट 1 होगा, क्योंकि प्रारंभ में nums [1], [4] और [1,4] = 5 हैं, अब यदि हम सरणी में 2 जोड़ते हैं, तो nums [1], [2], [4], [1,2], [1,4],[2,4], [1,2,4] होंगे, इसलिए योग मान क्रमशः 1, 2, 4, 3, 5, 6, 7 होंगे।

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

  • req := 1, i := 0, ret := 0

  • जब req <= n, करें -

    • यदि i < nums का आकार और nums[i] <= req, तो,

      • req = req + nums[i]

      • i को 1 से बढ़ाएं

    • अन्यथा

      • req = req + req

      • ret को 1 से बढ़ाएं

  • ret लौटाएं

उदाहरण

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

#include <bits/stdc++.h> using namespace std; class Solution {    public:    int minPatches(vector<int>& nums, int n) {       long long int req = 1;       int i = 0;       int ret = 0;       while(req <= n){          if(i < nums.size() && nums[i] <= req){             req += nums[i];             i++;          } else {             req += req;             ret++;          }       }       return ret;    } }; main(){    Solution ob;    vector<int> v = {1,4};    cout << (ob.minPatches(v, 7)); }

इनपुट

{1,4}

आउटपुट

1

  1. - C++ में Array क्लास

    C++ में Array क्लास पर्याप्त कुशल है और यह अपना आकार भी जानती है।ऐरे पर ऑपरेशन करने के लिए उपयोग किए जाने वाले फंक्शन्सsize() = ऐरे का आकार लौटाने के लिए यानी ऐरे के एलिमेंट्स की संख्या लौटाता है।max_size() = ऐरे के अधिकतम एलिमेंट्स की संख्या लौटाने के लिए।get(), at(), operator[] = ऐरे एलिमेंट्स तक

  1. - C++ में स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि C में कोई स्ट्रिंग्स नहीं थीं। हमें कैरेक्टर सरणी का उपयोग करके स्ट्रिंग्स बनानी पड़ती थीं। इसलिए कुछ स्ट्रिंग्स की सरणी बनाने के लिए, हमें कैरेक्टर्स की 2-आयामी सरणी बनानी पड़ती थी। प्रत्येक पंक्

  1. - C++ में सॉर्टिंग

    इस सेक्शन में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिदम कैसे निष्पादित करें। एक सॉर्टेड ऐरे एक ऐरे है जिसमें प्रत्येक एलिमेंट किसी क्रम में सॉर्टेड होते हैं जैसे न्यूमेरिकल, अल्फाबेटिकल आदि। एक न्यूमेरिकल ऐरे को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे बबल सॉर्ट, इन्सर्शन सॉर्ट, सिलेक्शन सॉर्ट, मर्ज स