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

C++ में बेस्ट साइटसीइंग पेयर (Best Sightseeing Pair)


मान लीजिए हमारे पास धनात्मक पूर्णांकों का एक ऐरे A है, जहां A[i] i-वें दर्शनीय स्थल का मान दर्शाता है, और दो दर्शनीय स्थल i और j की दूरी j - i है। अब एक जोड़ी (i < j) का स्कोर इस सूत्र का पालन करता है: (A[i] + A[j] + i - j)। हमें दर्शनीय स्थलों की एक जोड़ी का अधिकतम स्कोर खोजना है।

उदाहरण के लिए, यदि इनपुट [8,1,5,2,6] है, तो आउटपुट 11 होगा, क्योंकि i = 0, j = 2, A[0] + A[2] + 0 - 2 = 8 + 5 + 0 - 2 = 11।

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

  1. ret := 0, maxVal := 0, n := A का आकार सेट करें

  2. i को 0 से n-1 तक लूप चलाएं

  3. ret := max(ret, maxVal + A[i] - i) अपडेट करें

  4. maxVal := max(A[i] + i, maxVal) अपडेट करें

  5. ret लौटाएं

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

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

class Solution { 
public: 
    int maxScoreSightseeingPair(vector<int>& A) { 
        int ret = 0; 
        int maxVal = 0; 
        int n = A.size(); 
        for(int i = 0; i < n; i++){ 
            ret = max(ret, maxVal + A[i] - i); 
            maxVal = max(A[i] + i, maxVal); 
        } 
        return ret; 
    } 
}; 

int main(){ 
    vector<int> v1 = {8, 1, 5, 2, 6}; 
    Solution ob; 
    cout << (ob.maxScoreSightseeingPair(v1)); 
    return 0; 
}

इनपुट

[8,1,5,2,6]

आउटपुट

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

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

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

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

  1. - C++ सर्वश्रेष्ठ प्रोग्रामिंग भाषा क्यों है?

    C++ को एक बहुत शक्तिशाली भाषा के रूप में जाना जाता है। C++ आपको कंप्यूटर संसाधनों का उपयोग कैसे करें, इस पर बहुत नियंत्रण देता है, इसलिए सही हाथों में, इसकी गति और संसाधनों को सस्ते में उपयोग करने की क्षमता अन्य भाषाओं को पार करने में सक्षम होनी चाहिए। C++ के प्रदर्शन के कारण, इसका उपयोग अक्सर गेम इ