## The challenge

Write a function that takes a shuffled list of unique numbers from `1` to `n` with one element missing (which can be any number including `n`). Return this missing number.

Note: huge lists will be tested.

Examples:

 ``````1 2 3 `````` ``````[1, 3, 4] => 2 [1, 2, 3] => 4 [4, 2, 3] => 1 ``````

## The solution in Python code

Option 1:

 ``````1 2 3 `````` ``````def find_missing_number(a): n = len(a) + 1 return n * (n + 1) // 2 - sum(a) ``````

Option 2:

 ``````1 2 `````` ``````def find_missing_number(nums): return sum(range(1,len(nums)+2))-sum(nums) ``````

Option 3:

 ``````1 2 3 4 5 `````` ``````def find_missing_number(numbers): if numbers == []:return 1 diff = list(set(range(1, len(numbers)+1))- set(numbers)) if diff == []:return max(numbers)+1 return diff ``````

## Test cases to validate our solution

 ``````1 2 3 4 `````` ``````test.assert_equals(find_missing_number([2, 3, 4]), 1) test.assert_equals(find_missing_number([1, 3, 4]), 2) test.assert_equals(find_missing_number([1, 2, 4]), 3) test.assert_equals(find_missing_number([1, 2, 3]), 4) ``````