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

पासिंग कार जोड़ों की गणना - C++

समस्या विवरण

हमें 0 और 1 वाली एक सरणी दी गई है। 1 = पश्चिम की ओर जाती कार, 0 = पूर्व की ओर जाती कार। पासिंग कार जोड़ा: (0,1) जहाँ 0 का इंडेक्स 1 के इंडेक्स से कम हो।

उदाहरण

इनपुट: arr[] = {1,0,1,0,1}

आउटपुट: 3

व्याख्या: जोड़े: (arr[1],arr[2]), (arr[1],arr[4]), (arr[3],arr[4])

इनपुट: arr[] = {1,0,0,0,0}

आउटपुट: 0

दृष्टिकोण

साधारण: दो नेस्टेड लूप, O(n²)।

कुशल: अंत से पार करें। temp = अब तक मिले 1 की संख्या। जब 0 मिले, count += temp। O(n) समय।

C++ कार्यान्वयन (कुशल)

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

int count_cars(int arr[], int size) {
    int count = 0, temp = 0;
    while (size >= 1) {
        if (arr[size-1] == 1) temp++;
        else count += temp;
        size--;
    }
    return count;
}

int main() {
    int arr[] = {1, 1, 0, 1, 1};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Count: " << count_cars(arr, size);
    return 0;
}

आउटपुट

Count: 2
  1. - C++ में बिटवाइज AND सम संख्या वाले युग्मों की गणना

    हमें एक पूर्णांक सरणी दी गई है और कार्य दिए गए सरणी मानों का उपयोग करके बनने वाले कुल युग्मों की संख्या गिनना है जैसे कि युग्मों पर AND ऑपरेशन का परिणाम एक सम संख्या हो। AND ऑपरेशन के लिए सत्य सारणी ABA AND B 000 100 010 111 इनपुट - int arr[] =

  1. - C++ में सरणी में विभाज्य जोड़ों की गिनती करें

    हमें किसी भी आकार की एक सरणी दी गई है जिसमें पूर्णांक तत्व हैं और कार्य सरणी में जोड़ों की संख्या की गणना करना है जैसे कि एक जोड़ी का एक तत्व जोड़ी के दूसरे तत्व को विभाजित करता है। उदाहरण के लिए इनपुट - int arr[] = {1, 2, 3, 6} आउटपुट - गिनती 4 है व्याख्या - (1,2), (1,3), (1,6) और (3,6) वे जोड़े

  1. - C++ में कार फ्लीट

    मान लीजिए N कारें हैं जो एक लेन वाली सड़क के साथ एक ही गंतव्य की ओर जा रही हैं। गंतव्य target मील दूर है। अब प्रत्येक कार i की एक स्थिर गति मान speed[i] (मील प्रति घंटे में) है, और प्रारंभिक स्थिति सड़क के साथ लक्ष्य की ओर position[i] मील है। एक कार अपने आगे वाली कार को कभी पार नहीं कर सकती, लेकिन