find the maximum difference
between two numbers in an array
[ for loop | Math.max | Math.min ]

Find the maximum difference between two numbers in an array

Write a function that takes an array of numbers and returns the maximum difference between any two of its numbers, such that the larger number appears after the smaller number.


Example ...

Enter an array ...

[4, 2, 6, 5, 3] array

The function returns 4 because 6 - 2 = 4 returns the maximum difference between any two of its numbers, such that the larger number appears after the smaller number.

Larger number appears before any smaller number.

[9, 4, 2, 6, 5, 3] array

The function returns 4 because 6 - 2 = 4 returns the maximum difference between any two of its numbers.

Number 9 is not used because the maximum difference is derived from the smallest number and the largest number that appears after it.

Arrays are used to store multiple values in a single variable.

Each value is called an element, and each element has a numeric position in the array, known as its index.

Arrays are zero-indexed, meaning the first element is at index 0, the second at index 1, and so on.

Arrays can contain any data type, including numbers, strings, and objects.

const arr1 = [2, 4, 6]; array

arr1[0]; element at index 0 → 2

arr1[1]; element at index 1 → 4

arr1[2]; element at index 2 → 6

arr1[3]; element at index 3 → undefined index not found


Numbers are used to represent both integer and floating-point values.

Numbers are most commonly expressed in literal forms like 255 or 3.14159 ↴

let num1 = 5; → number

let num2 = 2.5; → number

let num3 = num1 + num2;

console.log(num3); returns ↴

7.5 → number


Find the maximum difference between two numbers in an array using ↴

for loop → executes a block of code a number of times.

Math.max() static method → returns the largest of the numbers given as input parameters, or -Infinity if there are no parameters.

Math.min() static method → returns the smallest of the numbers given as input parameters, or Infinity if there are no parameters.


for loop repeatedly executes a block of code until a specified condition evaluates to false.

The loop runs a block of code a set number of times, defined by an initialization, a condition, and an increment.

for (let x = 0; x < 4; x++) {

console.log(x);

}

Loop variable x is initialized to 0

Condition x < 4 is checked before each iteration.

The loop will continue to run as long as x is less than 4

The loop repeatedly executes a block of code 4 times, from 0 to 3

For each iteration of the loop, the current value of x is printed to the console.

After each iteration, x is incremented by 1 x++

When x reaches 4 the condition evaluates to false, terminating the loop.

0

1

2

3 → printed to console


spread syntax ... The spread operator allows an iterable (like an array) to be expanded in places where zero or more arguments are expected.

For example, it allows two or more arrays to be merged into one array.

const arr2 = [1, 2, 3, 4, 5];

const arr3 = [4, 5, 6, 7, 8];

const arr4 = [...arr2, ...arr3];

console.log(arr4); returns ↴

[1, 2, 3, 4, 5, 4, 5, 6, 7, 8]

The spread operator is useful when working with functions that do not accept an array as a single argument.


Math.max() static method returns the largest of the numbers given as input parameters, or -Infinity if there are no parameters.

Directly pass numerical values as arguments.

Math.max(4, 2, 6, 5, 3); returns ↴

6

Use the spread syntax to pass an array of numbers.

const nums1 = [4, 2, 6, 5, 3];

Math.max(...nums1); returns ↴

6


Math.min() static method returns the smallest of the numbers given as input parameters, or Infinity if there are no parameters.

Directly pass numerical values as arguments.

Math.min(4, 2, 6, 5, 3); returns ↴

2

Use the spread syntax to pass an array of numbers.

const nums2 = [4, 2, 6, 5, 3];

Math.min(...nums2); returns ↴

2


Initialize a variable to hold the array find the maximum difference between two numbers.

const array1 = [4, 8, 6, 2, 5, 7, 9, 3]; → user input


Define a function maxDifference to find the maximum difference between two numbers.

function maxDifference(arr) {}

The function takes an array as input arr and returns the maximum number between two numbers found in the array.

Set the initial minimum value to the first element of the array.

let min = arr[0] min

Initialize a variable to hold maximum difference, set to zero.

let maxDiff = 0 maxDiff

Loop through arr starting from the second element.

for (let x = 1; x < arr.length; x++) {}

Check if the array has less than 2 elements.

If the array has fewer than two elements, return 0 and end execution of function.

if (arr.length < 2) return 0

If 2 or more elements in array, calculate the difference between the current element arr[x] and the minimum value min

const diff = arr[x] - min diff

Update maxDiff if the current difference is greater.

maxDiff = Math.max(maxDiff, diff)

Update min to the smallest value encountered so far.

min = Math.min(min, arr[x])

Return the maximum difference found.

return maxDiff


Find the maximum difference between two numbers in an array.

arr = [9, 4, 8, 3, 2] array

let min = arr[0] Initialize min to first element in the array

let maxDiff = 0 Initialize maxDiff to zero

for (let x = 1; x < arr.length; x++) Loop through the array starting from the second element.

diff = arr[x] - min Calculate the difference between the current element and the minimum value

maxDiff = Math.max(maxDiff, diff) Update maxDiff if the current difference is greater.

min = Math.min(min, arr[x]) Update min to the smallest value encountered so far.

First iteration ↴

min = 4 arr[0]

arr[1] = 9

maxDiff = 0

Iteration ↴

x arr[x] - min

0 4 - 9 diff -5 maxDiff 0 min 4

1 8 - 4 diff 4 maxDiff 4 min 4

2 3 - 4 diff -1 maxDiff 4 min 3

3 2 - 3 diff -1 maxDiff 4 min 2

4 maximum difference between two numbers in an array


Call the function with ↴

maxDifference(array1);


Find the maximum difference between two numbers in an array.

const array1 = [4, 8, 6, 2, 5, 7, 9, 3];

function maxDifference(arr) {

let min = arr[0];

let maxDiff = 0;

for (let x = 1; x < arr.length; x++) {

const diff = arr[x] - min;

maxDiff = Math.max(maxDiff, diff);

min = Math.min(min, arr[x]);

}

return maxDiff;

}

call function

maxDifference(array1); returns ↴

7

9 - 2 = 7

Find the maximum difference between two numbers in an array