Dari AZSPCS :
Misalkan Anda memiliki setumpuk yang berisi kartu n. Setiap kartu berisi angka dari 1 hingga n, dan setiap nomor muncul tepat pada satu kartu. Anda melihat nomor di kartu atas - katakan saja k - dan kemudian membalik urutan kartu k atas. Anda melanjutkan prosedur ini - membaca nomor atas dan kemudian membalikkan jumlah kartu yang sesuai - sampai kartu teratas adalah 1.
Tulis program tercepat untuk menghitung jumlah pembalikan untuk setumpuk yang diberikan. Perhatikan bahwa jika Anda berpartisipasi dalam kontes Anda tidak diperbolehkan memposting kode Anda (dan dengan demikian saya belum akan memposting kode saya).
code-challenge
fastest-code
Alexandru
sumber
sumber
Jawaban:
JavaScript
Anda memberikannya, seperti:
sumber
Scala: (Ini bukan golf - kan?)
Aplikasi lengkap dengan testcase dan stopwatch, termasuk pengocokan Deck:
hitung: 1000 ukuran: 100 durasi: 1614 msecs mesin: Single Pentium M 2Ghz
sumber
Python, 84 Chars
Tetap main golf ... Saya menggunakan angka 0 hingga n-1. Dengan asumsi array disimpan dalam variabel x, dibutuhkan saya 84 karakter Python.
Namun, kinerjanya sangat buruk karena penyalahgunaan memori.
sumber
C
deck
adalah pointer ke array integer yang mewakili deck.n
adalah jumlah kartu. Jelas keamanan memori adalah tugas si penelepon.Mungkin mendekati algoritma tercepat pada komputer terbaru dan pada bahasa tingkat tinggi. Hanya dengan trik tingkat asm yang bisa dibuat lebih cepat, tetapi tidak dengan mereka.
sumber
Perl 5 , 58 + 2 (-ap) = 60 byte
Cobalah online!
sumber