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

C++ में टीमों की संख्या गिनना


मान लीजिए n सैनिक एक पंक्ति में खड़े हैं। प्रत्येक सैनिक को एक अद्वितीय रेटिंग मान दिया गया है। हमें उनमें से 3 सैनिकों की एक टीम बनानी है, निम्न नियमों के अनुसार:

इंडेक्स (i, j, k) वाले 3 सैनिक चुनें जैसे कि रेटिंग (rating[i], rating[j], rating[k]) हो।

एक टीम वैध होगी यदि (rating[i] < rating[j] < rating[k]) या (rating[i] > rating[j] > rating[k]) हो।

हमें उन टीमों की संख्या ज्ञात करनी है जिन्हें हम बना सकते हैं। (सैनिक कई टीमों का हिस्सा हो सकते हैं)।

उदाहरण के लिए, यदि इनपुट rating = [2,5,3,4,1] है, तो आउटपुट 3 होगा, क्योंकि हम (2,3,4), (5,4,1), (5,3,1) जैसी तीन टीमें बना सकते हैं।

हल करने की विधि

हम निम्न चरणों का पालन करेंगे:

  • ret = 0, n = सरणी का आकार।
  • तीन नेस्टेड लूप चलाएं i, j, k के लिए जहां i < j < k।
  • यदि v[i] < v[j] और v[j] < v[k] हो, या v[i] > v[j] और v[j] > v[k] हो, तो ret बढ़ाएं।
  • ret लौटाएं।

उदाहरण

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

#include <bits/stdc++.h> using namespace std; class Solution { public:    int numTeams(vector<int>& v) {       int ret = 0;       int n = v.size();       for (int i = 0; i < n; i++) {          for (int j = i + 1; j < n; j++) {             for (int k = j + 1; k < n; k++) {                if (v[i] < v[j] && v[j] < v[k])                   ret++;                else if (v[i] > v[j] && v[j] > v[k])                   ret++;             }          }       }       return ret;    } }; main(){    Solution ob;    vector<int> v = {2,5,3,4,1};    cout << (ob.numTeams(v)); }

इनपुट

{2,5,3,4,1}

आउटपुट

3

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. - C++ में नाइस सबएरे की संख्या गिनें

    मान लीजिए हमारे पास इंटीजर्स का एक ऐरे nums और एक इंटीजर k है। एक सबएरे को नाइस सबएरे के रूप में जाना जाता है यदि उसमें k ऑड नंबर हैं। हमें नाइस सब-एरे की संख्या ढूंढनी है। यदि ऐरे [1,1,2,1,1] है, और k = 3, तो आउटपुट 2 होगा, क्योंकि सबएरे [1,1,2,1], और [1,2,1,1] हैं।इसे हल करने के लिए, हम निम्नलिखित