logo CodeStepByStep logo

remove_bad_pairs

Language/Type: PHP arrays

Write a function named remove_bad_pairs that accepts as a parameter an array of numbers, and removes any adjacent pair of numbers in the array where the left element of the pair is larger than the right element of the pair. Every pair's left element is an even-numbered index in the array, and every pair's right element is an odd index in the array. For example, suppose a variable named $arr stores the following element values:

[3, 7, 9.5, 2, 5, 5, 8.25, 5, 6, 3, 4, 7, 3, 1]

We can think of this array as a sequence of pairs:

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

The pairs 9-2, 8-5, 6-3, and 3-1 are "bad" because the left element is larger than the right one, so these pairs should be removed. So the call of remove_bad_pairs($arr) would change the array to store:

[3, 7, 5, 5, 4, 7]

If the array has an odd length, the last element is not part of a pair and is also considered "bad;" it should therefore be removed by your function.

If an empty array is passed in, the array should still be empty at the end of the call.

Constraints:

  • Do not use any other arrays to help solve this problem, though you can create as many simple variables as you like.

A note about references in PHP: In order to write a function passes a parameter as reference (thus modifying its state), you'll need to prepend "&" to the variable declaration in the function header. For example, a function foo that modifies the state of an array parameter may be defined as:

function foo(&$arr) { ... }
Function: Write a PHP function as described, not a complete program.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.