edición general
alyotr

alyotr

En menéame desde agosto de 2007

5,98 Karma
652K Ranking
Enviadas
Publicadas
Comentarios
Notas

140 Preguntas que Google te puede hacer en una entrevista de trabajo. [EN] [112]

  1. #83 Aunque calcules c y d en el mismo bucle, estas realizando dos multiplicaciones en cada paso... Por lo tanto el numero de operaciones es 2n, independientemente de que lo hagas en un bucle o en dos...
  1. #83 Si lo hace(en forma de no multiplicar el elemento i, que para eso pone No divisions are allowed.), mira, te hago un mini-seguiemiento, pero si lo vas haciendo tu entero veras que si sale:

    Lo que hay que hacer es esto bi = a1*a2*...*an/ai.

    Yo al terminar de "ir en la recursividad" tengo en m a1*a2*...*an, y al volver de reursividad
    a bn le asigno a1*a2*...*an-1
    .
    .
    .
    a b5 le asigno a1*a2*...*a4
    a b4 le asigno a1*a2*...*a3

    etc.

    Sobre lo que dices sobre la memoria, yo del enunciado lo que entiendo es que no quieren que andes copiando/duplicando el array, no que tenga que ser economico en memoria, de hecho no se como se podria hacer con un bucle y que la complejidad sea O(n).
    Si sabes como o tienes la idea comentala, que esta curioso el problema este.
  1. #80 #81

    i lo uso para recorrer el array, m para ir guardando la multiplicacion (y asi a la vuelta de recursividad asignarlo a b).

    La llamada inicial al procedimiento seria:

    trabajarengoogle (a, b, 1, 1);

    #81 Pues si, con pascal aprendi... :-P

menéame