Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm: Ermitteln Sie die Anzahl der sichtbaren Boxen, nachdem Sie eine Box in eine andere Box platziert haben

C++-Programm: Ermitteln Sie die Anzahl der sichtbaren Boxen, nachdem Sie eine Box in eine andere Box platziert haben

王林
王林nach vorne
2023-09-11 23:37:021295Durchsuche

C++-Programm: Ermitteln Sie die Anzahl der sichtbaren Boxen, nachdem Sie eine Box in eine andere Box platziert haben

Um ein Problem zu lösen, erhalten wir ein Array mit den Abmessungen der Box. Jetzt haben wir eine Bedingung: Wenn die Größe der großen Kiste mindestens doppelt so groß ist wie die der kleinen Kiste, können wir die kleine Kiste in die große Kiste legen. Nun müssen wir beispielsweise ermitteln, wie viele sichtbare Boxen es gibt.

Input : arr[] = { 1, 3, 4, 5 }
Output : 3
Put a box of size 1 in the box of size 3.

Input : arr[] = { 4, 2, 1, 8 }
Output : 1

Der Weg, die Lösung zu finden

Bei diesem Problem besteht unser Ansatz darin, das Array nach und nach zu sortieren. Wir schieben nun das Element in die Warteschlange. Im weiteren Verlauf prüfen wir, ob das aktuelle Element größer oder gleich der doppelten Größe des Elements am Anfang der Warteschlange ist. Wenn dies der Fall ist, wird das vorherige Element angezeigt. Zum Schluss schieben wir das aktuelle Element in die Warteschlange. Unsere Antwort wird die Größe der Warteschlange am Ende sein.

Beispiel

#include <bits/stdc++.h>
using namespace std;
int main(){
    int arr[] = { 1, 2, 3, 4, 5, 6 }; // given array containing the size of our boxes
    int n = sizeof(arr) / sizeof(arr[0]); // size of our array
    queue<int> q;
    sort(arr, arr + n); // sorting our array
    q.push(arr[0]); // pushing the smallest element in the front
    for (int i = 1; i < n; i++) { // traversing the array
        int curr = q.front(); // current element
        if (arr[i] >= 2 * curr) // if the size of the current box is greater than twice
                               // of the box in front so we pop the front
            q.pop();

        q.push(arr[i]); // pushing the current element in the queue
    }
    cout << q.size() << "\n"; // our answer
    return 0;
}

Ausgabe

3

Fazit

In diesem Tutorial haben wir das Problem gelöst, die Anzahl der sichtbaren Boxen zu ermitteln, nachdem wir eine Box in eine andere Box gelegt haben. Wir haben auch das C++-Programm für dieses Problem und die vollständige (generische) Methode zur Lösung gelernt. Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python und anderen Sprachen schreiben. Wir hoffen, dass Sie dieses Tutorial hilfreich fanden.

Das obige ist der detaillierte Inhalt vonC++-Programm: Ermitteln Sie die Anzahl der sichtbaren Boxen, nachdem Sie eine Box in eine andere Box platziert haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen