Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculating the maximum difference between two adjacent numbers in an array

Recently I've been assigned a task which asks to me to "calculate the maximum difference between two adjacent numbers in the array that is passed to it". I'm fairly new to Java (I have only done VB in the past) and since this topic was not well explained to me, I'm not quite sure how to go about it.

Here is some additional information about the task itself:

The function has to pass the following test. The function maxDiff should calculate the maximum difference between two adjacent numbers in the array that is passed to it.

@Test
public void assessmentTest() {
 int [] numbers = {12, 8, 34, 10, 59};
 assertEquals(49, maxDiff(numbers));
 int [] numbers2 = {-50, 100, 20, -40};
 assertEquals(150, maxDiff(numbers2));
}
like image 834
user3080698 Avatar asked Dec 29 '25 05:12

user3080698


1 Answers

You must assure to take the absolute difference, don't forget it. That's why I used the Math.abs() function.

public static int maxDiff(int[] numbers) {
      int diff = Math.abs(numbers[1] - numbers[0]);
      for(int i = 1; i < numbers.length-1; i++)
          if(Math.abs(numbers[i+1]-numbers[i]) > diff)
              diff = Math.abs(numbers[i+1] - numbers[i]);
      return diff;
}
like image 188
Paulo Avatar answered Dec 30 '25 18:12

Paulo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!