Question: * You are given a map indicating the elevation of * a small area like a desk. A ball is placed on the desk. *

* You are given a map indicating the elevation of

* a small area like a desk. A ball is placed on the desk.

* The ball will roll downhill going north south east or west.

*

* The ball always starts at position 1,1

*

* It will always choose the path of steepest descent.

* It will eventually come to rest when it is at a position

* where all neighboring positions are higher/equal.

* Return the elevation of that position.

*

* You can assume that map will be such that the ball

* will always come to rest without moving through an edge

*

* You can assume there will always be one steepest

* position for the ball to go to

*

* For example, in an array like this:

* 9999

* 9549

* 9999 yields 4

* The ball would start in 1,1 (5) rolls to 4 and stops

*

* 99999999999

* 98711111199

* 96999999999

* 95444444399

* 99999999999 yields 4

* The ball starts at 8, follows steepest decent to 6

* Then at the first 4 there is no lower position so it

* stops

*

* @param map map indicating elevation

* @return height where the ball stops

public void testBallRestElevation() {

int[][] array1 = {

{9,9,9,9,9,9},

{9,8,5,4,9,9},

{9,7,9,9,9,9},

{9,7,5,2,2,9},

{9,9,9,9,9,9}};

assertEquals(4,MapAnd2DArrayHomework.ballRestElevation(array1));

int[][] array3 = {

{9,9,9,9,9,9},

{9,8,9,4,1,9},

{9,7,9,9,2,9},

{9,6,5,4,3,9},

{0,9,9,9,9,9}};

assertEquals(1,MapAnd2DArrayHomework.ballRestElevation(array3));

int[][] array2 = {

{9,9,9,9,9,9},

{9,8,6,4,9,9},

{9,5,9,9,9,9},

{9,5,5,2,2,9},

{9,9,9,9,9,9}};

assertEquals(5,MapAnd2DArrayHomework.ballRestElevation(array2));

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!