Considere uma matriz x
como [1 5 3 4]
e um número n
, por exemplo 2
. Escreve todas Length- n
subarrays deslizantes: [1 5]
, [5 3]
, [3 4]
. Permita que o minimax da matriz seja definido como o mínimo dos máximos dos blocos deslizantes. Portanto, neste caso, seria o mínimo de 5, 5, 4
, o que é 4
.
Desafio
Dada uma matriz x
e um número inteiro positivo n
, produza o minimax conforme definido acima.
A matriz x
conterá apenas números inteiros positivos. n
sempre será no mínimo 1
e no máximo o comprimento de x
.
A computação pode ser feita por qualquer procedimento, não necessariamente como definido acima.
Código de golfe, menos bytes ganha.
Casos de teste
x
, n
resultado
[1 5 3 4], 2 4
[1 2 3 4 5], 3 3
[1 1 1 1 5], 4 1
[5 42 3 23], 3 42
fonte
2 ⌈/ 1 2 3 4
calcula o máximo de(1 2) (2 3) (3 4)
, então ele retorna2 3 4
.⌊
ser contados como? 1 ou 2?⌊
e⌈
como um único byte cada.CJam (11 bytes)
Demonstração online
fonte
q~ew::e>:e<
, que é também 11 bytesRuby 39 bytes
Onde x é a matriz en é o número pelo qual ela deve ser dividida.
fonte
each_cons
?Pitão, 10 bytes
Explicação:
Recebe entrada no formulário
list newline int
Experimente aqui!
Ou execute um conjunto de testes!
Ou também 10 bytes
Explicação:
Teste aqui
fonte
Oracle SQL 11.2, 261 bytes
Sem golfe
fonte
MATL , 6 bytes
Experimente online!
fonte
Gelatina, 6 bytes
Experimente online!
Como funciona
fonte
JavaScript (ES6),
848372 bytesAgradecimentos a user81655 por ajudar a eliminar 11 bytes
fonte
(x,y,M=Math.max)=>-M(...x.slice(y-1).map((a,i)=>-M(...x.slice(i,i+y))))
Julia, 51 bytes
Nada muito inovador. Esta é uma função que aceita uma matriz e um número inteiro e retorna um número inteiro. Ele apenas usa o algoritmo básico. Seria muito mais curto se,
min
emax
não exigisse, dividir matrizes em argumentos.Obtemos cada sub-matriz sobreposta, obtemos o máximo e o mínimo do resultado.
fonte
Perl 6 , 32 bytes
Uso:
fonte
R,
4135 bytesRequer que o zoo seja instalado.
editar - 6 bytes por
zoo::rollmax
existir!fonte
J, 9 bytes
Semelhante à resposta da APL.
>./\
aplica-se>./
(máximo) aos conjuntos (arg esquerdo) do arg direito. Em seguida,<./
encontra o mínimo disso, pois está limitado[:
.Casos de teste
fonte
Python 3, 55 bytes.
Casos de teste:
fonte
Python 2, 50 bytes
Calcula recursivamente o mínimo de duas coisas: o máximo das primeiras
n
entradas e a função recursiva na lista com o primeiro elemento removido. Para um caso base da lista com menos den
elementos, fornece a lista vazia, que serve como infinito porque o Python 2 coloca as listas como maiores que os números.fonte
JavaScript (ES6), 70 bytes
Usando currying , esta função economiza 2 bytes da resposta anterior.
Demo
fonte
Mathematica, 23 bytes
Caso de teste
fonte
Java 7,
128126124 bytesUngolfed & código de teste:
Experimente aqui.
Resultado:
fonte
Raquete 84 bytes
Ungolfed:
Teste:
Resultado:
fonte
Clojure, 51 bytes
fonte
SmileBASIC, 68 bytes
Nada de especial aqui. As entradas são
X[]
eN
fonte