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

मान्य त्रिभुज ट्रिपलेट की संख्या गिनने का प्रोग्राम C++ में


मान लीजिए हमारे पास संख्याओं की एक सरणी है, हमें सरणी से चुने गए उन ट्रिपलेट की संख्या ढूंढनी है जो त्रिभुज बना सकते हैं यदि हम उन्हें त्रिभुज की भुजा लंबाई के रूप में लें। इसलिए यदि इनपुट [2,2,3,4] जैसा है, तो परिणाम 3 होगा क्योंकि तीन ट्रिपलेट [2,3,4] पहले 2 का उपयोग करके, [2,3,4] दूसरे 2 का उपयोग करके, और [2,2,3] हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • ret := 0, n := nums का आकार, nums को सॉर्ट करें

  • i को n-1 से 0 तक घटाते हुए

    • right := i-1, left := 0

    • जब तक left < right

      • sum := nums[left] + nums[right]

      • यदि sum > nums[i], तो ret को right-left से बढ़ाएं, right को 1 से घटाएं, अन्यथा left को 1 से बढ़ाएं

  • ret लौटाएं

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

उदाहरण

#include <bits/stdc++.h> using namespace std; class Solution {    public:    int triangleNumber(vector<int>& nums) {       int ret = 0;       int n = nums.size();       sort(nums.begin(), nums.end());       for(int i = n - 1; i >= 0; i--){          int right = i - 1;          int left = 0;          while(left < right){             int sum = nums[left] + nums[right];             if(sum > nums[i]){                ret += right - left;                right--;             }else left++;          }       }       return ret;    } }; main(){    vector<int> v = {2,2,3,4};    Solution ob;    cout << (ob.triangleNumber(v)); }

इनपुट

[2,2,3,4]

आउटपुट

3

  1. आकार d के डोडेकागन बनाने के तरीकों की संख्या गिनने के लिए C++ प्रोग्राम आकार d के डोडेकागन बनाने के तरीकों की संख्या गिनने के लिए C++ प्रोग्राम

    मान लीजिए हमारे पास एक संख्या d है। मान लें कि भुजा लंबाई 1 के अनंत वर्गाकार टाइल्स और नियमित त्रिकोणीय टाइल्स हैं। हमें उन तरीकों की संख्या ढूंढनी है जिनसे हम इन टाइल्स का उपयोग करके भुजा d के साथ नियमित डोडेकागन (12-भुज बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम को 998244353 मॉड्यूलो

  1. C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। अब एक ऑपरेशन पर विचार करें जहां हम एक सेल लेते हैं और उसे और उसके सभी पड़ोसी सेल्स (ऊपर, नीचे, बाएं, दाएं) को फ्लिप करते हैं। हमें ऑपरेशनों की न्यूनतम संख्या ढूंढनी है जैसे कि मैट्रिक्स में केवल 0 हों। यदि कोई समाधान नहीं है, तो -1 वापस करें। तो, यदि इनप

  1. - C++ प्रोग्राम: सरणी में इनवर्जन गिनें

    परिचयइनवर्जन काउंट का अर्थ है सरणी को सॉर्ट करने के लिए आवश्यक स्वैप की संख्या। यदि सरणी सॉर्टेड है तो इनवर्जन काउंट = 0। यदि सरणी रिवर्स ऑर्डर में सॉर्टेड है तो इनवर्जन काउंट = अधिकतम।एल्गोरिदम a[j] तो काउंट 1 बढ़ाएं। अंत में काउंट लौटाएं।उदाहरण कोड#include <iostream> using namespace std; in