Maison > développement back-end > C++ > le corps du texte

Programme C++ : rechercher le tableau après avoir supprimé la valeur maximale Programme C++ pour rechercher un tableau après avoir supprimé la valeur maximale

WBOY
Libérer: 2023-09-04 20:01:02
avant
590 Les gens l'ont consulté

C++程序:在删除最大值后找到数组

C++程序用于在删除最大值后找到数组

Supposons que nous ayons un tableau A contenant n éléments et une autre valeur k. Nous voulons effectuer k opérations. Une opération a la forme :

  • Supposons que d est la valeur maximale du tableau

  • Pour chaque index i de 1 à n, remplacez A[i] par d - A[i]

Nous Le la séquence finale doit être trouvée.

Catégorie de questions

Un tableau dans une structure de données est un ensemble fini d'éléments d'un type spécifique. Les tableaux sont utilisés comme Stockez les éléments du même type dans des emplacements mémoire consécutifs. Un tableau est alloué Un nom spécifique et désigné par ce nom dans divers langages de programmation Pour accéder à un élément d'un tableau, un index est requis. Nous utilisons le terme « nom[i] » pour Accédez à un élément spécifique à la position « i » dans le tableau « nom ». diverses structures de données Par exemple, les piles, les files d'attente, les tas et les files d'attente prioritaires peuvent tous être implémentés à l'aide de tableaux. Fonctionne sur Les tableaux incluent les opérations d'insertion, de suppression, de mise à jour, de parcours, de recherche et de tri. accéder Les liens ci-dessous sont destinés à une lecture plus approfondie.

https://www.tutorialspoint.com/data_structures_algorithms/array_data_structure.htm

Donc, si l'entrée de notre problème est A = [5, -1, 4, 2, 0] ; sera est [0, 6, 1, 3, 5] car d est 5.

Étapes

Pour résoudre ce problème, nous suivrons les étapes suivantes :

n := size of A
m := -inf
t := -inf
for initialize i := 0, when i < n, update (increase i by 1), do:
   m := maximum of m and A[i]
for initialize i := 0, when i < n, update (increase i by 1), do:
   A[i] := m - A[i]
   t := maximum of t and A[i]
if k mod 2 is same as 1, then:
   for initialize i := 0, when i < n, update (increase i by 1), do:
      print A[i]
   Otherwise
      for initialize i := 0, when i < n, update (increase i by 1), do:
         A[i] := t - A[i]
         print A[i]
Copier après la connexion

Exemple

Voyons l'implémentation suivante pour une meilleure compréhension −

#include <bits/stdc++.h>
using namespace std;
void solve(vector<int> A, int k){
   int n = A.size();
   int m = -999;
   int t = -999;
   for (int i = 0; i < n; i++)
      m = max(m, A[i]);
   for (int i = 0; i < n; i++)
      A[i] = m - A[i], t = max(t, A[i]);
   if (k % 2 == 1)
      for (int i = 0; i < n; i++)
         cout << A[i] << ", ";
   else
      for (int i = 0; i < n; i++)
         A[i] = t - A[i], cout << A[i] << ", ";
}
int main(){
   vector<int> A = { 5, -1, 4, 2, 0 };
   int k = 19;
   solve(A, k);
}
Copier après la connexion

Input

{ 5, -1, 4, 2, 0 }, 19
Copier après la connexion

Output

0, 6, 1, 3, 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!

source:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal