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

C++ में कुकीज़ असाइन करें


समस्या विवरण

मान लीजिए हम बच्चों को कुकीज़ वितरित करने का प्रयास कर रहे हैं। लेकिन, हमें प्रत्येक बच्चे को अधिकतम एक कुकी देनी चाहिए। अब प्रत्येक बच्चे i का एक लालच कारक gi होता है, जो कुकी का न्यूनतम आकार है जिससे बच्चा संतुष्ट होगा; और प्रत्येक कुकी j का आकार sj होता है। जब sj >= gi, तो हम कुकी j को बच्चे i को असाइन कर सकते हैं, और बच्चा i संतुष्ट होगा। हमारा लक्ष्य संतुष्ट बच्चों की संख्या को अधिकतम करना और अधिकतम संख्या को आउटपुट करना है।

उदाहरण

यदि इनपुट है: [1,2], [1,2,3], तो आउटपुट होगा 2, क्योंकि 2 बच्चे और 3 कुकीज़ हैं। 2 बच्चों के लालच कारक 1, 2 हैं। अब हमारे पास 3 कुकीज़ हैं और उनके आकार सभी बच्चों को संतुष्ट करने के लिए पर्याप्त बड़े हैं, इसलिए आउटपुट 2 है।

हल करने का दृष्टिकोण

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

  • सरणी g को सॉर्ट करें
  • सरणी s को सॉर्ट करें
  • i := 0, j = 0
  • जब (i < g का आकार और j < s का आकार):
    • यदि g[i] <= s[j], तो i को 1 से बढ़ाएं
    • j को 1 से बढ़ाएं
  • i लौटाएं

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int i = 0, j = 0;
        while (i < g.size() && j < s.size()) {
            if (g[i] <= s[j])
                i++;
            j++;
        }
        return i;
    }
};

int main() {
    Solution ob;
    vector<int> v = {1,2}, v1 = {1,2,3};
    cout << (ob.findContentChildren(v, v1));
    return 0;
}

इनपुट

{1,2}, {1,2,3}

आउटपुट

2
  1. - C++ में एनकैप्सुलेशन (Encapsulation)

    एनकैप्सुलेशन क्या है? डेटा और उस डेटा को मैनिपुलेट करने वाले मेथड्स को एक ही घटक (क्लास) में बांधना और बाहरी हस्तक्षेप से बचाना। डेटा छिपाने (data hiding) की ओर ले जाता है। C++ में कार्यान्वयन क्लासेस (उपयोगकर्ता-परिभाषित डेटा प्रकार) का उपयोग करके। क्लास डेटा सदस्यों और मेथड्स को एक साथ बांधती है

  1. - C++ में आइडेंटिफायर

    C++ आइडेंटिफायर एक नाम है जिसका उपयोग वेरिएबल, फ़ंक्शन, क्लास, मॉड्यूल, या किसी अन्य उपयोगकर्ता-परिभाषित आइटम की पहचान के लिए किया जाता है। एक आइडेंटिफायर A से Z या a से z तक के अक्षर या अंडरस्कोर (_) से शुरू होता है जिसके बाद शून्य या अधिक अक्षर, अंडरस्कोर, और अंक (0 से 9) आ सकते हैं। C++ आइडेंटिफ

  1. - लिनक्स पर C++ के लिए सर्वश्रेष्ठ IDE कौन सा है?

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। लिनक्स पर C++ के लिए कोई एक सर्वश्रेष्ठ IDE नहीं है; आपको अपने टूल को