Table des matières
Examinons différents scénarios d'entrée et de sortie pour cette situation −
La méthode utilisée dans le programme suivant est la suivante
Exemple
Output
Maison développement back-end C++ Réorganisez un tableau pour que arr devienne arr] et n'utilisez que l'espace supplémentaire O(1), implémenté en C++

Réorganisez un tableau pour que arr devienne arr] et n'utilisez que l'espace supplémentaire O(1), implémenté en C++

Aug 28, 2023 am 11:53 AM
数组 (array) réarranger o() espace

Réorganisez un tableau pour que arr devienne arr] et nutilisez que lespace supplémentaire O(1), implémenté en C++

Nous obtenons un tableau de type entier positif, disons, arr[] d'une taille donnée, de telle sorte que la valeur de l'élément dans le tableau doit être supérieure à 0 mais inférieure à la taille du tableau. La tâche est de réorganiser Un tableau qui transforme uniquement arr[i] en arr[arr[i]] dans l'espace O(1) donné et imprime le résultat final.

Examinons différents scénarios d'entrée et de sortie pour cette situation −

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

output− Tableau avant tri : 0 3 2 1 5 4 Réorganisez le tableau pour que arr[i] devienne arr[arr[i]], avec O(1) espace supplémentaire : 0 1 2 3 4 5

Explication− On nous donne un tableau entier de taille 6, et tout les éléments du tableau ont des valeurs inférieures à 6. Maintenant, nous allons réorganiser le tableau de sorte que arr[arr[0] vaut 0, arr[arr[1]] vaut 1, arr[arr [2]] vaut 2, arr[arr[3]] vaut 3, arr[ arr[4]] vaut 4, arr[arr[5]] vaut 5. Par conséquent, le tableau final après réarrangement est 0 1 2 3 4 5.

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

output− Tableau avant permutation : 1 0 Réorganisez le tableau de sorte que arr[i] devienne arr[arr[i]], où O(1) l'espace supplémentaire est : 0 1

Explication - Nous obtenons un entier de taille 2 et tous les éléments du tableau ont des valeurs ​​inférieur à un tableau de 2. Maintenant, nous allons réorganiser le tableau pour que arr[arr[0] soit 1 et arr[arr[1]] soit 0. Par conséquent, le tableau final après réarrangement est 0 1.

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

Output−Tableau avant tri : 1 0 2 3 Réorganisez le tableau pour que arr[i] devienne arr[arr[i]] avec O(1) espace supplémentaire : 0 1 2 3

Explication - On nous donne un tableau d'entiers de taille 4 et le tableau Tous les éléments in ont une valeur inférieure à 4. Maintenant, nous allons réorganiser le tableau de sorte que arr[arr[0] vaut 0, arr[arr[1]] vaut 1, arr[arr[2] ]] vaut 2 et arr[arr[3]] vaut 3. Par conséquent, le tableau final après réarrangement est 0 1 2 3.

La méthode utilisée dans le programme suivant est la suivante

  • Saisissez un tableau d'éléments entiers, calculez la taille du tableau

  • Imprimez le tableau avant l'arrangement et appelez la fonction Réarrangement (arr, taille)

  • Réarrangement interne de la fonction (arr, taille)

    • Démarrez la boucle FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. À l'intérieur de la boucle, définissez temp sur arr[arr[i]] % size et arr[i] += temp * size.

    • Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à la taille. Dans la boucle, définissez arr[i] = arr[i] / size

  • pour imprimer le résultat.

Exemple

#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;
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En langage C, tableau post-incrément et front-incrément En langage C, tableau post-incrément et front-incrément Aug 30, 2023 pm 04:57 PM

Question : Utilisez le programme C pour expliquer les concepts de post-incrémentation et de pré-incrémentation des tableaux. Opérateur d'incrément de solution (++) - Il existe deux types d'opérateurs d'incrément utilisés pour augmenter la valeur d'une variable de 1 : pré-incrément et post-incrément. Dans l'incrément ajouté au début, l'opérateur d'incrément est placé avant l'opérande, et la valeur est d'abord incrémentée, puis l'opération est effectuée. Par exemple : z=++a;a=a+1z=a L'opérateur d'incrémentation est placé après l'opérande dans l'opération de post-incrémentation, et la valeur augmentera une fois l'opération terminée. Par exemple : z=a++;z=aa=a+1 Considérons un exemple d'accès à un élément spécifique dans un emplacement mémoire en utilisant le pré-incrémentation et le post-incrémentation. Déclarez un tableau de taille 5 et effectuez l'initialisation au moment de la compilation. Essayez ensuite d'attribuer la valeur de pré-incrémentation à la variable « a ». a=++arr[1]

En Java, comment ajouter de nouveaux éléments à un tableau ? En Java, comment ajouter de nouveaux éléments à un tableau ? Jan 03, 2024 pm 03:30 PM

L'ajout de nouveaux éléments à un tableau est une opération courante en Java et peut être réalisée à l'aide de diverses méthodes. Cet article présentera plusieurs méthodes courantes d'ajout d'éléments à un tableau et fournira des exemples de code correspondants. 1. Une manière courante d'utiliser un nouveau tableau consiste à créer un nouveau tableau, à copier les éléments du tableau d'origine dans le nouveau tableau et à ajouter de nouveaux éléments à la fin du nouveau tableau. Les étapes spécifiques sont les suivantes : Créez un nouveau tableau dont la taille est 1 plus grande que le tableau d'origine. C'est parce qu'un nouvel élément est ajouté. Copiez les éléments du tableau d'origine dans le nouveau tableau. Ajouter à la fin du nouveau tableau

Réorganisez un tableau pour que arr devienne arr] et n'utilisez que l'espace supplémentaire O(1), implémenté en C++ Réorganisez un tableau pour que arr devienne arr] et n'utilisez que l'espace supplémentaire O(1), implémenté en C++ Aug 28, 2023 am 11:53 AM

Nous obtenons un tableau de type entier positif, disons arr[] d'une taille donnée, de telle sorte que la valeur de l'élément dans le tableau doit être supérieure à 0 mais inférieure à la taille du tableau. La tâche consiste à réorganiser un tableau uniquement en changeant arr[i] en arr[arr[i]] dans l'espace O(1) donné et à imprimer le résultat final. Examinons différents scénarios d'entrée et de sortie pour cette situation − Entrée − intarr[] = {032154} Sortie − Tableau avant arrangement : 032154 Réorganisez le tableau de sorte que arr[i] devienne arr[arr[i]], et ait O( 1) espace supplémentaire : 012345 Explication - On nous donne un tableau d'entiers de taille 6, et tous les éléments du tableau ont des valeurs inférieures à 6. Maintenant, nous allons réorganiser

Opérations de base et utilisation des tableaux en PHP Opérations de base et utilisation des tableaux en PHP Jun 28, 2023 pm 08:02 PM

Opérations de base et utilisation des tableaux en PHP 1. Présentation Le tableau est un type de données très important en PHP. Il peut être utilisé pour stocker plusieurs valeurs, et ces valeurs sont accessibles via des index ou des clés. Les tableaux ont des opérations et des méthodes d'utilisation riches en PHP. Cet article présentera en détail les opérations de base et les méthodes d'utilisation des tableaux en PHP. 2. Créer des tableaux En PHP, vous pouvez créer des tableaux de deux manières : des tableaux dénombrables et des tableaux associatifs. Création d'un tableau dénombrable Un tableau dénombrable est un tableau organisé dans l'ordre et indexé numériquement.

Comment implémenter la pile en Java à l'aide de tableaux et de génériques ? Comment implémenter la pile en Java à l'aide de tableaux et de génériques ? Sep 05, 2023 pm 09:25 PM

Java implémente la pile en utilisant des tableaux et des génériques. Cela crée une structure de données polyvalente et réutilisable qui fonctionne selon le principe du dernier entré, premier sorti (LIFO). Suivant ce principe, des éléments sont ajoutés et supprimés par le haut. En utilisant des tableaux comme base, il garantit une allocation et un accès efficaces à la mémoire. De plus, en incorporant des génériques, la pile est capable d'accueillir des éléments de différents types, améliorant ainsi sa polyvalence. L'implémentation implique la définition d'une classe Stack contenant des paramètres de type génériques. Il comprend des méthodes de base telles que push(), pop(), peek() et isEmpty(). La gestion des cas extrêmes, tels que les débordements et les sous-débordements de pile, est également essentielle pour garantir une fonctionnalité transparente. Cette implémentation permet aux développeurs de créer des programmes qui s'adaptent

Des tableaux en C/C++ ? Des tableaux en C/C++ ? Sep 20, 2023 pm 08:25 PM

Un tableau est une collection séquentielle d’éléments du même type. Les tableaux sont utilisés pour stocker des collections de données, mais il est souvent plus utile de considérer les tableaux comme des collections de variables du même type. Au lieu de déclarer une seule variable telle que numéro0, numéro1, ... et numéro99, vous pouvez déclarer une variable tableau (par exemple nombre) et la représenter en utilisant des nombres[0], des nombres[1] et ..., des nombres[99] chaque variable. Des éléments spécifiques du tableau sont accessibles via l'indexation. Tous les tableaux sont constitués d'emplacements de mémoire contigus. L'adresse la plus basse correspond au premier élément et l'adresse la plus élevée correspond au dernier élément. Déclarer un tableauDéclarer un tableau nécessite de spécifier le type d'éléments et le nombre d'éléments requis. Un tableau est le suivant -ty

Réorganiser un tableau de sorte que les éléments en position paire soient plus grands que les éléments en position impaire (C++) Réorganiser un tableau de sorte que les éléments en position paire soient plus grands que les éléments en position impaire (C++) Aug 30, 2023 pm 06:17 PM

Nous obtenons un tableau de type entier contenant des nombres positifs et négatifs, par exemple arr[] de n'importe quelle taille donnée. La tâche consiste à réorganiser le tableau de telle manière que tous les éléments aux positions ou indices pairs soient plus grands que les éléments aux positions ou indices impairs et à imprimer le résultat. Examinons différents scénarios d'entrée et de sortie pour cela - input −intarr[]={2,1,4,3,6,5,8,7} output − tableau avant arrangement : 21436587 Réorganiser le tableau de manière à ce que les positions paires soient plus grandes que la position impaire : 12345678 Explication - Nous obtenons un tableau d'entiers de taille 8 contenant des facteurs positifs et négatifs. Maintenant, nous réorganisons le tableau de sorte que tous les éléments en position paire soient plus grands que les éléments en position impaire,

Une plongée approfondie dans les capacités et fonctionnalités des objets intégrés de JavaScript Une plongée approfondie dans les capacités et fonctionnalités des objets intégrés de JavaScript Jan 10, 2024 pm 05:23 PM

Analyse approfondie des fonctions et des caractéristiques des objets intégrés JS. JavaScript est un langage de programmation basé sur les objets. Il fournit de nombreux objets intégrés avec diverses fonctions et caractéristiques riches. Dans cet article, nous fournirons une analyse approfondie de certains objets intégrés couramment utilisés et donnerons des exemples de code correspondants. Objet Math L'objet Math fournit certaines méthodes d'opérations mathématiques de base, telles que l'exponentiation, la racine carrée, le logarithme, etc. Voici quelques exemples de méthodes d'objet Math couramment utilisées : //Trouver la valeur absolue Math.abs(-10

See all articles