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

C++ में सुंदर व्यवस्था II


मान लीजिए हमारे पास दो पूर्णांक n और k हैं, हमें एक सूची बनानी है जिसमें 1 से n तक के n अलग-अलग धनात्मक पूर्णांक हों और जो निम्नलिखित नियम का पालन करे:

सूची को [a1, a2, a3, ..., an] मानें, फिर सूची [|a1 - a2|, |a2 - a3|, |a3 - a4|, ..., |an-1 - an|] में ठीक k अद्वितीय पूर्णांक हों। यदि कई उत्तर हैं, तो उनमें से कोई भी प्रदर्शित करें।

यदि इनपुट n = 3 और k = 2 है, तो परिणाम [1,3,2] होगा। [1,3,2] में 1 से 3 तक के तीन अलग-अलग धनात्मक पूर्णांक हैं। और [2,1] में ठीक 2 अलग-अलग पूर्णांक 1 और 2 हैं।

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

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

  • एक सरणी ret परिभाषित करें
  • i := 1, j := n के लिए, जब तक i <= j:
    • यदि k > 1:
      • यदि k विषम है, तो i डालें अन्यथा j को ret में डालें
      • यदि k विषम है, तो i को 1 से बढ़ाएं, अन्यथा j को 1 से घटाएं
      • k को 1 से घटाएं
    • अन्यथा i को ret में डालें और i को 1 से बढ़ाएं
  • ret लौटाएं

उदाहरण

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

void print_vector(vector<int> v){ 
    cout << "["; 
    for(int i = 0; i < v.size(); i++){ 
        cout << v[i] << ", "; 
    } 
    cout << "]" << endl; 
} 

class Solution { 
public: 
    vector<int> constructArray(int n, int k) { 
        vector<int> ret; 
        for(int i = 1, j = n; i <= j; ){ 
            if(k > 1){ 
                ret.push_back(k % 2 ? i : j); 
                if(k % 2 == 1){ 
                    i++; 
                } else j--; 
                k--; 
            } else { 
                ret.push_back(i++); 
            } 
        } 
        return ret; 
    } 
}; 

int main(){ 
    Solution ob; 
    print_vector(ob.constructArray(3, 2)); 
}

इनपुट

3 2

आउटपुट

[3, 1, 2, ]

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

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

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

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

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

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