Problema:

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:

def solution(A)

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.

Solución:


def solution(A):
    a_len = len(A)
    complete = (a_len + 1) * (a_len + 2) // 2
    incomplete = sum(A)
    return complete - incomplete

Este problema nos dice que hay una lista de N números enteros de rango [1..(N + 1)], que dignifica que falta un numero, por ejemplo si el input es: [1, 2, 4], el output seria 3, por que es una lista que va de 1 a 4 pero nos falta el 3, en mi solución lo que hago es:

  • Guardo en una variable la longitud de el input
  • Guardo en una variable la suma de todos los números del 1 al 4 (1+2+3+4=10)
  • Guardo en una variable la suma de todos los números del input (1+2+4=7)
  • Retorno la diferencia entre mis dos variables anteriores (10-7=3)

Aquí esta el repo con todas mis soluciones de codility: https://github.com/OmarIbannez/codility-lessons

It's only fair to share...Share on Facebook15Tweet about this on TwitterShare on Google+1Share on LinkedIn0Share on Reddit0Pin on Pinterest0Email this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *

Comment moderation is enabled. Your comment may take some time to appear.