Inhaltsverzeichnis
Sehen wir uns verschiedene Ein- und Ausgabeszenarien für diese Situation an −
Die im folgenden Programm verwendete Methode lautet wie folgt:
Heim Backend-Entwicklung C++ Ordnen Sie ein Array neu an, sodass „arr' zu „arr' wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist

Ordnen Sie ein Array neu an, sodass „arr' zu „arr' wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist

Aug 28, 2023 am 11:53 AM
数组 (array) 重新排列 (rearrange) o() 空间 (o() space)

Ordnen Sie ein Array neu an, sodass „arr zu „arr wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist

Wir erhalten ein Array vom Typ positiver Ganzzahl, beispielsweise arr[] beliebiger Größe, sodass der Elementwert im Array größer als 0, aber kleiner als die Größe des Arrays sein sollte. Die Aufgabe besteht darin, neu zu ordnen Ein Array, das arr[i] nur im angegebenen O(1)-Raum in arr[arr[i]] umwandelt und das Endergebnis ausgibt.

Sehen wir uns verschiedene Ein- und Ausgabeszenarien für diese Situation an −

input− int arr[] = {0 3 2 1 5 4 }

output− Array vor dem Sortieren: 0 3 2 1 5 4 Ordnen Sie das Array so um, dass arr[i] zu arr[arr[i]] wird, mit O(1) zusätzlichem Platz: 0 1 2 3 4 5

Erklärung− Wir erhalten ein ganzzahliges Array der Größe 6 und alle Elemente im Array haben Werte kleiner als 6. Jetzt werden wir das Array neu anordnen, sodass arr[arr[0] 0 ist, arr[arr[1]] 1 ist, arr[arr [2]] 2 ist, arr[arr[3]] 3 ist, arr[ arr[4]] ist 4, arr[arr[5]] ist 5. Daher ist das endgültige Array nach der Neuanordnung 0 1 2 3 4 5.

input− int arr[] = {1, 0}

output− Array vor der Permutation: 1 0 Ordnen Sie das Array neu an, sodass arr[i] zu arr[arr[i]] wird, wobei O(1) zusätzlicher Platz ist: 0 1

Erklärung – Wir erhalten eine Ganzzahl der Größe 2 und alle Elemente im Array haben Werte ​​weniger als Array von 2. Jetzt werden wir das Array neu anordnen, sodass arr[arr[0] 1 und arr[arr[1]] 0 ist. Daher ist das endgültige Array nach der Neuanordnung 0 1.

Input− int arr[] = {1, 0, 2, 3}

Output−Array vor dem Sortieren: 1 0 2 3 Ordnen Sie das Array so um, dass arr[i] zu arr[arr[i]] wird, mit O(1) zusätzlichem Platz: 0 1 2 3

Erklärung – Wir erhalten ein Array von Ganzzahlen der Größe 4 und das Array Alle Elemente in einen Wert kleiner als 4 haben. Jetzt werden wir das Array neu anordnen, sodass arr[arr[0] 0 ist, arr[arr[1]] 1 ist, arr[arr[2] ]] 2 ist und arr[arr[3]] 3 ist. Daher ist das endgültige Array nach der Neuanordnung 0 1 2 3.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Geben Sie ein Array ganzzahliger Elemente ein, berechnen Sie die Arraygröße

    Interne Neuordnung der Funktion ( arr, size)
  • Beginne eine FOR-Schleife von i nach 0, bis i kleiner als size ist. Setzen Sie innerhalb der Schleife temp auf arr[arr[i]] % size und arr[i] += temp * size.
  • Beginnen Sie mit der FOR-Schleife von i nach 0, bis i kleiner als die Größe ist. Setzen Sie innerhalb der Schleife arr[i] = arr[i] / size
    • , um das Ergebnis zu drucken.

    Beispiel
  • #include <bits/stdc++.h>
    using namespace std;
    void Rearrangement(int arr[], int size){
       for(int i=0; i < size; i++){
          int temp = arr[arr[i]] % size;
          arr[i] += temp * size;
       }
       for(int i = 0; i < size; i++){
          arr[i] = arr[i] / size;
       }
    }
    int main(){
       //input an array
       int arr[] = {0, 3, 2, 1, 5, 4};
       int size = sizeof(arr) / sizeof(arr[0]);
       //print the original Array
       cout<<"Array before Arrangement: ";
       for (int i = 0; i < size; i++){
          cout << arr[i] << " ";
       }
       //calling the function to rearrange the array
       Rearrangement(arr, size);
       //print the array after rearranging the values
       cout<<"\nRearrangement of an array so that arr[i] becomes arr[arr[i]] with O(1) extra space is: ";
       for(int i = 0; i < size; i++){
          cout<< arr[i] << " ";
       }
       return 0;
    }
    Nach dem Login kopieren
  • Ausgabe

    Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
  • Array before Arrangement: 0 3 2 1 5 4
    Rearrangement of an array so that arr[i] becomes arr[arr[i]] with O(1) extra space is: 0 1 2 3 4 5
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonOrdnen Sie ein Array neu an, sodass „arr' zu „arr' wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

In der C-Sprache Array-Post-Inkrement und Front-Inkrement In der C-Sprache Array-Post-Inkrement und Front-Inkrement Aug 30, 2023 pm 04:57 PM

Die Frage verwendet ein C-Programm, um die Konzepte der Post-Inkrementierung und der Vor-Inkrementierung eines Arrays zu erklären. Lösung Inkrementoperator (++) – Es gibt zwei Arten von Inkrementoperatoren, die verwendet werden, um den Wert einer Variablen um 1 zu erhöhen – Vorinkrement und Postinkrement. Beim vorangestellten Inkrementieren wird der Inkrementoperator vor dem Operanden platziert, und der Wert wird zuerst inkrementiert und dann wird die Operation ausgeführt. zB:z=++a;a=a+1z=a Der Inkrementoperator wird nach dem Operanden in der Post-Inkrementierungsoperation platziert, und der Wert erhöht sich, nachdem die Operation abgeschlossen ist. zB:z=a++;z=aa=a+1 Betrachten wir ein Beispiel für den Zugriff auf ein bestimmtes Element an einem Speicherort mithilfe von Pre-Inkrement und Post-Inkrement. Deklarieren Sie ein Array der Größe 5 und führen Sie eine Initialisierung zur Kompilierungszeit durch. Versuchen Sie anschließend, der Variablen „a“ den Vorinkrementwert zuzuweisen. a=++arr[1]

Wie füge ich in Java neue Elemente zu einem Array hinzu? Wie füge ich in Java neue Elemente zu einem Array hinzu? Jan 03, 2024 pm 03:30 PM

Das Hinzufügen neuer Elemente zu einem Array ist ein häufiger Vorgang in Java und kann mit verschiedenen Methoden durchgeführt werden. In diesem Artikel werden mehrere gängige Methoden zum Hinzufügen von Elementen zu einem Array vorgestellt und entsprechende Codebeispiele bereitgestellt. 1. Eine übliche Methode zur Verwendung eines neuen Arrays besteht darin, ein neues Array zu erstellen, die Elemente des ursprünglichen Arrays in das neue Array zu kopieren und am Ende des neuen Arrays neue Elemente hinzuzufügen. Die spezifischen Schritte lauten wie folgt: Erstellen Sie ein neues Array, dessen Größe um 1 größer ist als das ursprüngliche Array. Dies liegt daran, dass ein neues Element hinzugefügt wird. Kopieren Sie die Elemente des ursprünglichen Arrays in das neue Array. Am Ende des neuen Arrays hinzufügen

Ordnen Sie ein Array neu an, sodass „arr' zu „arr' wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist Ordnen Sie ein Array neu an, sodass „arr' zu „arr' wird, und verwenden Sie nur O(1) zusätzlichen Speicherplatz, der in C++ implementiert ist Aug 28, 2023 am 11:53 AM

Wir erhalten ein Array vom Typ einer positiven Ganzzahl, beispielsweise arr[], beliebiger Größe, sodass der Elementwert im Array größer als 0, aber kleiner als die Größe des Arrays sein sollte. Die Aufgabe besteht darin, ein Array nur durch Ändern von arr[i] in arr[arr[i]] im angegebenen O(1)-Raum neu anzuordnen und das Endergebnis auszugeben. Schauen wir uns verschiedene Eingabe- und Ausgabeszenarien für diese Situation an − Eingabe − intarr[] = {032154} Ausgabe − Array vor der Anordnung: 032154 Ordnen Sie das Array neu an, sodass arr[i] zu arr[arr[i]] wird und O( 1) zusätzlicher Platz: 012345 Erläuterung − Wir erhalten ein ganzzahliges Array der Größe 6, und alle Elemente im Array haben Werte kleiner als 6. Jetzt werden wir neu ordnen

Grundlegende Operationen und Verwendung von Arrays in PHP Grundlegende Operationen und Verwendung von Arrays in PHP Jun 28, 2023 pm 08:02 PM

Grundlegende Operationen und Verwendung von Arrays in PHP 1. Übersicht Array ist ein sehr wichtiger Datentyp in PHP. Es kann zum Speichern mehrerer Werte verwendet werden, und auf diese Werte kann über Indizes oder Schlüssel zugegriffen werden. Arrays verfügen über umfangreiche Operationen und Verwendungsmethoden in PHP. In diesem Artikel werden die grundlegenden Operationen und Verwendungsmethoden von Arrays in PHP ausführlich vorgestellt. 2. Arrays erstellen In PHP können Sie Arrays auf zwei Arten erstellen: zählbare Arrays und assoziative Arrays. Erstellen eines zählbaren Arrays Ein zählbares Array ist ein Array, das der Reihe nach angeordnet und numerisch indiziert ist

Arrays in C/C++? Arrays in C/C++? Sep 20, 2023 pm 08:25 PM

Ein Array ist eine sequentielle Sammlung von Elementen desselben Typs. Arrays werden zum Speichern von Datensammlungen verwendet. Häufig ist es jedoch sinnvoller, sich Arrays als Sammlungen von Variablen desselben Typs vorzustellen. Anstatt eine einzelne Variable wie Zahl0, Zahl1, ... und Zahl99 zu deklarieren, können Sie eine Array-Variable (z. B. Zahl) deklarieren und sie mit Zahlen[0], Zahlen[1] und ..., Zahlen[99] darstellen. jede Variable. Auf bestimmte Elemente im Array wird durch Indizierung zugegriffen. Alle Arrays bestehen aus zusammenhängenden Speicherorten. Die niedrigste Adresse entspricht dem ersten Element und die höchste Adresse entspricht dem letzten Element. Ein Array deklarieren Das Deklarieren eines Arrays erfordert die Angabe des Elementtyps und der Anzahl der erforderlichen Elemente. Ein Array sieht wie folgt aus: -ty

Wie implementiert man einen Stack in Java mithilfe von Arrays und Generika? Wie implementiert man einen Stack in Java mithilfe von Arrays und Generika? Sep 05, 2023 pm 09:25 PM

Java implementiert den Stack durch die Verwendung von Arrays und Generika. Dadurch entsteht eine vielseitige und wiederverwendbare Datenstruktur, die nach dem Last-In-First-Out-Prinzip (LIFO) arbeitet. Nach diesem Prinzip werden Elemente von oben hinzugefügt und entfernt. Durch die Verwendung von Arrays als Basis werden eine effiziente Speicherzuweisung und ein effizienter Speicherzugriff gewährleistet. Darüber hinaus ist der Stapel durch die Integration von Generika in der Lage, Elemente unterschiedlicher Art aufzunehmen, wodurch seine Vielseitigkeit erhöht wird. Die Implementierung umfasst die Definition einer Stack-Klasse, die generische Typparameter enthält. Es umfasst grundlegende Methoden wie push(), pop(), peek() und isEmpty(). Auch die Handhabung von Grenzfällen wie Stapelüberläufen und -unterläufen ist für die Gewährleistung einer reibungslosen Funktionalität von entscheidender Bedeutung. Diese Implementierung ermöglicht es Entwicklern, Programme zu erstellen, die diesen Anforderungen gerecht werden

Ordnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++) Ordnen Sie ein Array neu an, sodass Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen (C++) Aug 30, 2023 pm 06:17 PM

Wir erhalten ein Array vom Typ Ganzzahl, das positive und negative Zahlen enthält, beispielsweise arr[] beliebiger Größe. Die Aufgabe besteht darin, das Array so umzuordnen, dass alle Elemente an geraden Positionen oder Indizes größer sein sollten als Elemente an ungeraden Positionen oder Indizes, und das Ergebnis auszugeben. Schauen wir uns hierzu verschiedene Eingabe- und Ausgabeszenarien an: input −intarr[]={2,1,4,3,6,5,8,7} Output − Array vor der Anordnung: 21436587 Ordnen Sie das Array neu an, sodass die Positionen gerade sind Größer als ungerade Position: 12345678 Erläuterung − Wir erhalten ein ganzzahliges Array der Größe 8, das positive und negative Faktoren enthält. Jetzt ordnen wir das Array so um, dass alle Elemente an geraden Positionen größer sind als Elemente an ungeraden Positionen.

Ein tiefer Einblick in die Fähigkeiten und Merkmale der in JavaScript integrierten Objekte Ein tiefer Einblick in die Fähigkeiten und Merkmale der in JavaScript integrierten Objekte Jan 10, 2024 pm 05:23 PM

Eingehende Analyse der Funktionen und Eigenschaften integrierter JS-Objekte. JavaScript ist eine objektbasierte Programmiersprache. Sie bietet viele integrierte Objekte mit verschiedenen umfangreichen Funktionen und Eigenschaften. In diesem Artikel werden wir einige häufig verwendete integrierte Objekte ausführlich analysieren und entsprechende Codebeispiele geben. Math-Objekt Das Math-Objekt bietet einige grundlegende mathematische Operationsmethoden wie Potenzierung, Quadratwurzel, Logarithmus usw. Im Folgenden finden Sie einige häufig verwendete Beispiele für Math-Objektmethoden: //Finden Sie den Absolutwert Math.abs(-10

See all articles