1. 程式人生 > >Codility經典演算法題之九:MissingInteger

Codility經典演算法題之九:MissingInteger

Task description:

This is a demo task.

Write a function:

class Solution { public int solution(int[] A); }

that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A.

For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5.

Given A = [1, 2, 3], the function should return 4.

Given A = [−1, −3], the function should return 1.

Assume that:

  • N is an integer within the range [1..100,000];
  • each element of array A is an integer within the range [−1,000,000..1,000,000].

Complexity:

  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Solution:

def solution(p):
    maxv = max(p)
    if maxv <= 0 :
        return 1
    else:
        for i in range(1,maxv+1):
            if i not in p:
                return i
        return maxv+1