Dada una matriz de enteros aque contiene n enteros y un solo entero x; eliminar la menor cantidad de elementos apara hacer la suma de aigual a x. Si no se apueden formar combinaciones de xlatas, devuelve un valor falso.
Como se señaló en un comentario, este es el conjunto máximo con una suma de x , disculpe mi cerebro matemático menor. Olvidé muchos términos desde la universidad.
Ejemplos (Verdad):
f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4]
f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2]
f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2]
f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4]
f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2] (Sin alterar)
f([], 0) = [] (Caso de suma cero sin cambios)
Ejemplos (Falsy, cualquier valor consistente que no sea de matriz):
Imposible hacer caso: f([-2,4,6,-8], 3) = falsy (E.G. -1)
Caso de suma cero: f([], non-zero number) = falsy (E.G. -1)
- Nota: cualquier valor como
[-1]no puede ser válido para falsedad, ya que es una salida de verdad potencial.
Reglas:
- La entrada puede tomarse en forma de matriz, o como una lista de argumentos, siendo el último o el primero
x. - La salida puede ser cualquier lista delimitada de enteros. EG
1\n2\n3\no[1,2,3]. - Cualquier valor puede usarse como un indicador falso, que no sea una matriz de enteros.
- Su código debe maximizar el tamaño de la matriz final, el orden no importa.
- EG Para
f([3,2,3],5)ambos[2,3]y[3,2]son igualmente válidos. - Por ejemplo
f([1,1,2],2), solo puede regresar[1,1]cuando[2]sea más corto.
- EG Para
- Tanto la suma de
acomo el valor dexserán menores2^32-1y mayores que-2^32-1. - Este es el código de golf , el menor recuento de bytes gana.
- Si hay varios subconjuntos del mismo tamaño que sean válidos, es no aceptable para la producción de todos ellos. Debe elegir uno único y generarlo.
Avíseme si esto se ha publicado, no pude encontrarlo.
Publicaciones que encontré así : relacionadas pero cerradas , ...