The challenge
Given a two-dimensional array of integers, return the flattened version of the array with all the integers in the sorted (ascending) order.
Example:
Given [[3, 2, 1], [4, 6, 5], [], [9, 7, 8]], your function should return [1, 2, 3, 4, 5, 6, 7, 8, 9].
The solution in Python code
Option 1:
def flatten_and_sort(array):
a = []
for b in array:
for c in b:
a.append(c)
return sorted(a)
Option 2:
def flatten_and_sort(array):
return sorted([j for i in array for j in i])
Option 3:
def flatten_and_sort(array):
return sorted(sum(array, []))
Test cases to validate our solution
import test
from solution import flatten_and_sort
@test.describe("Fixed Tests")
def fixed_tests():
@test.it('Basic Test Cases')
def basic_test_cases():
test.assert_equals(flatten_and_sort([]), [])
test.assert_equals(flatten_and_sort([[], []]), [])
test.assert_equals(flatten_and_sort([[], [1]]), [1])
test.assert_equals(flatten_and_sort([[3, 2, 1], [7, 9, 8], [6, 4, 5]]), [1, 2, 3, 4, 5, 6, 7, 8, 9])
test.assert_equals(flatten_and_sort([[1, 3, 5], [100], [2, 4, 6]]), [1, 2, 3, 4, 5, 6, 100])