Pertimbangkan sebuah array x
seperti [1 5 3 4]
dan angka n
, misalnya 2
. Menulis semua panjang- n
subarrays geser: [1 5]
, [5 3]
, [3 4]
. Biarkan minimax dari array didefinisikan sebagai minimum dari maksimum blok geser. Jadi dalam hal ini akan menjadi minimum 5, 5, 4
, yaitu 4
.
Tantangan
Diberikan array x
dan bilangan bulat positif n
, output minimax seperti didefinisikan di atas.
Array x
hanya akan berisi bilangan bulat positif. n
akan selalu setidaknya 1
dan paling banyak panjangnya x
.
Komputasi dapat dilakukan dengan prosedur apa pun, tidak harus seperti yang didefinisikan di atas.
Golf kode, byte paling sedikit menang.
Uji kasus
x
,, n
hasil
[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
sumber
2 ⌈/ 1 2 3 4
menghitung maksimal(1 2) (2 3) (3 4)
, sehingga kembali2 3 4
.⌊
dihitung? 1 atau 2?⌊
dan⌈
sebagai satu byte setiap.CJam (11 byte)
Demo online
sumber
q~ew::e>:e<
, yang juga 11 byteRuby 39 byte
Di mana x adalah array dan n adalah nomor untuk memotong array dengan.
sumber
each_cons
?Pyth, 10 byte
Penjelasan:
Mengambil input dalam formulir
list newline int
Coba di sini!
Atau jalankan Test Suite!
Atau juga 10 byte
Penjelasan:
Test Suite di sini
sumber
Oracle SQL 11.2, 261 byte
Tidak bermain golf
sumber
MATL , 6 byte
Cobalah online!
sumber
Jelly, 6 byte
Cobalah online!
Bagaimana itu bekerja
sumber
JavaScript (ES6),
848372 byteTerima kasih kepada user81655 untuk membantu mengurangi 11 byte
sumber
(x,y,M=Math.max)=>-M(...x.slice(y-1).map((a,i)=>-M(...x.slice(i,i+y))))
Julia, 51 byte
Tidak ada yang terlalu inovatif. Ini adalah fungsi yang menerima array dan integer dan mengembalikan integer. Itu hanya menggunakan algoritma dasar. Ini akan menjadi jauh lebih singkat jika
min
danmax
tidak memerlukan array array ke argumen.Kami mendapatkan setiap subarray yang tumpang tindih, mengambil maks, dan mengambil min hasilnya.
sumber
Perl 6 , 32 byte
Pemakaian:
sumber
R,
4135 byteMembutuhkan kebun binatang untuk diinstal.
sunting - 6 byte dengan menyadari
zoo::rollmax
ada!sumber
J, 9 byte
Mirip dengan jawaban APL.
>./\
berlaku>./
(maksimum) ke (arg kiri) -subset dari arg kanan. Kemudian,<./
temukan minimumnya, karena ditutup dengan[:
.Uji kasus
sumber
Python 3, 55 byte.
Kasus uji:
sumber
Python 2, 50 byte
Secara rekursif menghitung minimum dua hal: maks dari
n
entri pertama , dan fungsi rekursif pada daftar dengan elemen pertama dihapus. Untuk kasus dasar dari daftar yang memiliki lebih sedikit darin
elemen, berikan daftar kosong, yang berfungsi sebagai tak terhingga karena Python 2 menempatkan daftar lebih besar daripada angka.sumber
JavaScript (ES6), 70 byte
Menggunakan currying , fungsi ini menyimpan 2 byte dari jawaban sebelumnya.
Demo
sumber
Mathematica, 23 byte
Kasus cobaan
sumber
Java 7,
128126124 byteTidak digabungkan & kode uji:
Coba di sini.
Keluaran:
sumber
Racket 84 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
Clojure, 51 byte
sumber
SmileBASIC, 68 byte
Tidak ada yang istimewa di sini. Inputnya adalah
X[]
danN
sumber