Heim > Backend-Entwicklung > C++ > Maximieren Sie die Differenz zwischen zwei Teilmengen negativer Zahlen in einer Menge, implementiert in C

Maximieren Sie die Differenz zwischen zwei Teilmengen negativer Zahlen in einer Menge, implementiert in C

WBOY
Freigeben: 2023-08-25 14:49:13
nach vorne
943 Leute haben es durchsucht

Maximieren Sie die Differenz zwischen zwei Teilmengen negativer Zahlen in einer Menge, implementiert in C

Wir haben ein Array bestehend aus positiven und negativen Zahlen. Die Aufgabe besteht darin, die maximale Differenz zwischen einer Teilmenge positiver Zahlen und einer Teilmenge negativer Zahlen im Array zu ermitteln. Da wir Teilmengen positiver und negativer Zahlen haben, wird die Differenz (Summe positiver Zahlen) – (Summe negativer Zahlen) immer maximal sein. Dies liegt daran, dass durch Subtrahieren negativer Zahlen diese addiert werden. Das Umwandeln aller negativen Zahlen in positive Zahlen und das Hinzufügen aller Elemente des Arrays führt zum gewünschten Ergebnis. Sehen wir uns einige Beispiele an, um zu verstehen: −

Input − Arr[] = { -2, 0, -3, 8, 10, 12, -4 }

Output − Maximale Differenz zwischen zwei Teilmengen − 39

Erklärung − Die Summe der positiven Teilmenge {0, 8,10,12} beträgt 30

Die Summe der negativen Teilmenge {-2, -3, -4} beträgt -9

Die maximale Differenz beträgt 30 - (-9) = 39

Input − Arr[] = { -5, -15, -3, -2, 10, 20, 15 }

Output − Maximum zwischen den beiden Teilmengen Differenz − 70

Erklärung − Die Summe der positiven Teilmenge {10, 20, 15} beträgt 45

Die Summe der negativen Teilmenge {-5, -15, -3, -2} beträgt -25

Maximale Differenz wird 45 - (-25) = 70 sein

Die Methode des folgenden Programms ist wie folgt

  • Wir verwenden ein ganzzahliges Array Arr[], das aus positiven und negativen Zahlen besteht

  • Funktion subsetDifference( int arr[ ],int n ) wird verwendet, um die maximale Differenz zwischen einer Teilmenge negativer und positiver Zahlen zu ermitteln. Es akzeptiert zwei Parameter, einer ist das Array selbst und der andere ist seine Größe n.

  • Verwenden Sie die Variable sum=0, um die Summe aller Elemente des Arrays zu speichern.

  • Beginnen Sie von links und verwenden Sie eine for-Schleife, um jedes Element des Arrays zu durchlaufen (i=0;i

  • Wenn das aktuelle Element eine negative Zahl (

  • Addiere jedes Element zur Summe.

  • Gibt die Summe als größtmögliche Teilmengendifferenz zurück.

Beispiel

Demonstration

#include <stdio.h>
int subsetDifference(int arr[], int n){
   int sum = 0;
   for (int i = 0; i < n; i++){
      if(arr[i]<0)
         arr[i]=arr[i]*-1;
      sum += arr[i];
   }
   return sum;
}
// Driver Code
int main(){
   int arr[] = { -1, 3, 5, 17, -32, 12 };
   int n = 6;
   printf("Maximized difference between subsets : %d", subsetDifference(arr, n));
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert: −

Maximized difference between two subsets: 70
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMaximieren Sie die Differenz zwischen zwei Teilmengen negativer Zahlen in einer Menge, implementiert in C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage