Back to challenges
Easy 0 solved 0% acceptance

Dot Product of Two Vectors

Multiply two vectors element by element and add the results: the core operation of every neuron.

What you'll learn

  • Multiply vectors element by element and sum
  • Understand the core operation of a neuron
  • Work with number arrays

Problem

Every neuron starts with the same calculation: multiply each input by its weight and add everything up. That is the dot product of two vectors:

a · b = a₁×b₁ + a₂×b₂ + … + aₙ×bₙ

Implement dot_product(a, b).

Input

a, b: Two lists of numbers with the same length.

Output

Return the dot product as a decimal number.

Constraints

1 ≤ length of a = length of b ≤ 1,000

-1,000 ≤ each value ≤ 1,000

Examples

Example 1
Input:
a = [1.0, 2.0, 3.0]
b = [4.0, 5.0, 6.0]

Expected output:
expected = 32.0
Input:
std::vector<double> a = {1.0, 2.0, 3.0};
std::vector<double> b = {4.0, 5.0, 6.0};

Expected output:
double expected = 32.0;
Input:
double[] a = new double[] {1.0, 2.0, 3.0};
double[] b = new double[] {4.0, 5.0, 6.0};

Expected output:
double expected = 32.0;

Explanation

1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32.

Example 2
Input:
a = [0.5, -1.5]
b = [2.0, 4.0]

Expected output:
expected = -5.0
Input:
std::vector<double> a = {0.5, -1.5};
std::vector<double> b = {2.0, 4.0};

Expected output:
double expected = -5.0;
Input:
double[] a = new double[] {0.5, -1.5};
double[] b = new double[] {2.0, 4.0};

Expected output:
double expected = -5.0;

Explanation

0.5×2 + (-1.5)×4 = 1 - 6 = -5.

How to approach it

Try on your own first, then open one hint at a time.

Hint 1

Multiply matching positions from the two lists and combine the results into one total.

Hint 2

A single pass is enough because each pair contributes independently to the final value.

Hint 3

Make sure the lists have the same length, and keep the accumulator in a numeric type that preserves decimals if needed.

Expected complexity

O(n) time, O(1) extra space

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.