Python GrundlagenSchwer

Ermitteln des maximalen Skalarprodukts zweier Vektoren

Detaillierte Anleitung und Python-Implementierung für das Problem „Ermitteln des maximalen Skalarprodukts zweier Vektoren“.

Problemstellung

Schwer

Schreiben Sie eine Funktion max_scalar_product(v1, v2), die zwei Listen mit ganzen Zahlen gleicher Länge verwendet und das maximal mögliche Skalarprodukt (Punktprodukt) zurückgibt. Sie können Elemente in beiden Vektoren in beliebiger Reihenfolge neu anordnen, bevor Sie das Skalarprodukt berechnen. Sortieren Sie zur Maximierung beide Vektoren in derselben Reihenfolge und koppeln Sie entsprechende Elemente.

Einschränkungen
  • 1 <= len(v1) == len(v2) <= 10^4
  • -10^5 <= v1[i], v2[i] <= 10^5

Beispiele

Example 1
Input
v1 = [1, 3, -5], v2 = [-2, 4, 1]
Output
23
Explanation

Sort both ascending: v1=[-5,1,3], v2=[-2,1,4]. Dot: (-5)*(-2)+1*1+3*4 = 10+1+12 = 23.

Example 2
Input
v1 = [1, 2, 3], v2 = [4, 5, 6]
Output
32
Explanation

Sort both ascending: [1,2,3] and [4,5,6]. Dot: 1*4+2*5+3*6 = 4+10+18 = 32.

Example 3
Input
v1 = [1, 1], v2 = [1, 1]
Output
2
Explanation

Any arrangement gives 1*1 + 1*1 = 2.

Need a Hint?
Erwägen Sie die Verwendung von Array-spezifischen Datenstrukturen wie Sets oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Im Editor öffnen
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.