Your question is Array Partitioning for Odd/Even. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Five9 call-processing components may need to partition an array of numeric call metrics before applying separate processing paths. Given an array of integers, rearrange it in place so that every even number appears before every odd number.
The relative order within the even group and within the odd group does not need to be preserved. Return the modified array. Use constant auxiliary space and aim for linear time.
Implement partition_by_parity(nums), where nums is a list of integers. The function must modify nums in place and return the same list object. A valid result must contain exactly the same values as the input, with no odd value positioned before an even value.
def partition_by_parity(nums):