Find the missing element in a given permutation.

Task description

A zero-indexed array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing.

Your goal is to find that missing element.

Write a function:

int solution(int A[], int N);

that, given a zero-indexed array A, returns the value of the missing element.

For example, given array A such that:


  A[0] = 2
  A[1] = 3
  A[2] = 1
  A[3] = 5

the function should return 4, as it is the missing element.

Assume that:

  • N is an integer within the range [0..100,000];

  • the elements of A are all distinct;

  • each element of array A is an integer within the range [1..(N + 1)].

Complexity:

  • expected worst-case time complexity is O(N);

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

Elements of input arrays can be modified.


Solution C:61

int solution(int A[], int N)
{
    int i = 0;
    for( i = 0; i < N; i++ )
    {
        // set next value to negtive
        int next = abs(A[i])-1;
        if (next < N )
        {
            A[next] = -A[next];
        }
    }
    
    for( i = 0; i < N; i++ )
    {
        if( A[i] > 0 )
        {
            break;
        }
    }
    return i+1;
}


你可能感兴趣的:(element,Missing,algo)