Python BasesFacile

Trouver le produit scalaire minimum de deux vecteurs

Guide détaillé et implémentation de Python pour le problème « Trouver le produit scalaire minimum de deux vecteurs ».

Énoncé du problème

Facile

Écrivez une fonction min_scalar_product(v1, v2) qui prend deux listes d'entiers de longueur égale et renvoie le produit scalaire (scalaire) minimum possible. Vous pouvez réorganiser les éléments des deux vecteurs dans n'importe quel ordre avant de calculer le produit scalaire. Le produit scalaire est sum(v1[i] * v2[i]) pour tout i. Pour minimiser, associez le plus grand de l’un au plus petit de l’autre.

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

Exemples

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?
Pensez à utiliser des structures de données spécifiques aux tableaux, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.