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

C++ में सॉर्टेड सरणी में गुणनफल k से कम वाले जोड़े गिनना


हमें पूर्णांक प्रकार के तत्वों की एक सॉर्टेड सरणी और एक पूर्णांक चर k दिया गया है। कार्य है सरणी से जोड़े बनाना और उनके गुणनफल की गणना करके जांचना कि वह k से कम है या नहीं।

इनपुट - int arr[] = {2,7,1,0,8}, k = 10

आउटपुट - सॉर्टेड सरणी में गुणनफल k से कम वाले जोड़ों की संख्या: 7

उपयोग किया गया दृष्टिकोण (नाइव)

  • सरणी इनपुट करें और आकार ज्ञात करें।
  • count वेरिएबल लें।
  • दो नेस्टेड लूप: i = 0 से size-1, j = i+1 से size-1।
  • गुणनफल = arr[i] * arr[j] जांचें यदि product < k तो काउंट बढ़ाएं।

कुशल दृष्टिकोण (टू पॉइंटर)

चूंकि सरणी सॉर्टेड है, हम टू पॉइंटर तकनीक का उपयोग कर सकते हैं:

  • left = 0, right = size-1
  • जब तक left < right:
    • यदि arr[left] * arr[right] < k:
      • count += (right - left)
      • left++
    • अन्यथा right--

समय जटिलता: O(n) सॉर्टेड सरणी के लिए।

उदाहरण (नाइव दृष्टिकोण)

#include <iostream> 
using namespace std; 

int pair_product(int arr[], int size, int k) { 
    int count = 0; 
    for (int i = 0; i < size; i++) { 
        for (int j = i+1; j < size; j++) { 
            int product = arr[i] * arr[j]; 
            if (product < k) count++; 
        } 
    } 
    return count; 
} 

int main() { 
    int arr[] = {5,8,2,1,3}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int k = 10; 
    cout << "Count of pairs in a sorted array whose product is less than k are: " << pair_product(arr, size, k); 
    return 0; 
}

आउटपुट

Count of pairs in a sorted array whose product is less than k are: 5

उदाहरण (कुशल दृष्टिकोण)

#include <iostream> 
using namespace std; 

int pair_product(int arr[], int size, int k) { 
    int left = 0, right = size - 1; 
    int count = 0; 
    while (left < right) { 
        int product = arr[left] * arr[right]; 
        if (product < k) { 
            count += (right - left); 
            left++; 
        } else { 
            right--; 
        } 
    } 
    return count; 
} 

int main() { 
    int arr[] = {1,2,3,4,5}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int k = 10; 
    cout << "Count of pairs in a sorted array whose product is less than k are: " << pair_product(arr, size, k); 
    return 0; 
}

आउटपुट

Count of pairs in a sorted array whose product is less than k are: 7

  1. - C++ में सॉर्टेड बाइनरी ऐरे में 1s गिनें

    इस ट्यूटोरियल में, हम सॉर्टेड बाइनरी ऐरे में 1s खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें केवल 1 और 0 वाला एक ऐरे प्रदान किया जाएगा। हमारा कार्य ऐरे में मौजूद 1s की संख्या गिनना है।उदाहरण#include <bits/stdc++.h> using namespace std; //1 की गिनती लौटाना int countOnes(bool arr[], i

  1. - सॉर्टेड ऐरे में वह तत्व खोजें जिसकी फ्रीक्वेंसी n/2 से अधिक या बराबर हो C++ में

    मान लीजिए हमारे पास आकार n का एक ऐरे है। यह ऐरे सॉर्टेड है। एक तत्व ऐसा है जिसकी फ्रीक्वेंसी n/2 से अधिक या बराबर है, जहां n ऐरे में तत्वों की संख्या है। तो यदि ऐरे [3, 4, 5, 5, 5] जैसा है, तो आउटपुट 5 होगा। यदि हम इस प्रकार के ऐरे को ध्यान से देखें, तो हम आसानी से देख सकते हैं कि जिस संख्या की फ्री

  1. - C++ में सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती

    एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं। विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं। निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मा