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

C++ में लोगों को बचाने के लिए नावें (Boats to Save People)


मान लीजिए हमारे पास people नामक एक ऐरे है। अब i-वें व्यक्ति का वजन people[i] है, और प्रत्येक नाव अधिकतम वजन limit ले जा सकती है। यदि प्रत्येक नाव एक ही समय में अधिकतम 2 लोगों को ले जा सकती है, बशर्ते उन लोगों के वजन का योग अधिकतम limit हो। हमें हर दिए गए व्यक्ति को ले जाने के लिए न्यूनतम नावों की संख्या खोजनी है।

उदाहरण के लिए, यदि इनपुट [3,2,1,2] है और limit 3 है, तो हमें तीन नावों की आवश्यकता होगी: [(1,2), (2), (3)]।

समाधान दृष्टिकोण

  1. people ऐरे को सॉर्ट करें

  2. i := 0, j := n-1, ret := 0

  3. जब तक i ≤ j:

  4. यदि people[i] + people[j] ≤ limit तो i++, j--, अन्यथा j--

  5. ret++

  6. ret लौटाएं

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

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

class Solution { 
public: 
    int numRescueBoats(vector<int>& people, int limit) { 
        sort(people.begin(), people.end()); 
        int i = 0; 
        int j = people.size() - 1; 
        int ret = 0; 
        while(i <= j){ 
            if(people[i] + people[j] <= limit){ 
                i++; j--; 
            }else{ 
                j--; 
            } 
            ret++; 
        } 
        return ret; 
    } 
}; 

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

इनपुट

[3,2,1,2] 3

आउटपुट

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

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

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

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

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

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