Python GrundlagenEinfach

Ermitteln des minimalen Skalarprodukts zweier Vektoren

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

Problemstellung

Einfach

Schreiben Sie eine Funktion min_scalar_product(v1, v2), die zwei Listen mit ganzen Zahlen gleicher Länge verwendet und das kleinstmögliche Skalarprodukt (Punktprodukt) zurückgibt. Sie können Elemente in beiden Vektoren in beliebiger Reihenfolge neu anordnen, bevor Sie das Skalarprodukt berechnen. Das Skalarprodukt ist sum(v1[i] * v2[i]) für alle i. Um dies zu minimieren, kombinieren Sie das größte mit dem kleinsten des anderen.

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
-25
Explanation

Sort v1 ascending: [-5,1,3]. Sort v2 descending: [4,1,-2]. Dot product: (-5)*4 + 1*1 + 3*(-2) = -20+1-6 = -25.

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

Sort v1 ascending: [1,2,3]. Sort v2 descending: [6,5,4]. Dot: 1*6+2*5+3*4 = 6+10+12 = 32? Wait: minimum is 1*6+2*5+3*4=32. Alternative: 1*4+2*5+3*6=32. Actually min is 1*6+2*5+3*4=32.

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

Both vectors are [1,1]. 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.