. Perubahan Lemonade

PHPz
Lepaskan: 2024-08-16 06:43:06
asal
219 orang telah melayarinya

. Lemonade Change

860. Lemonade Change

Kesukaran:Mudah

Topik:Susunan, Tamak

Di gerai air limau, setiap limau berharga $5. Pelanggan sedang beratur untuk membeli daripada anda dan memesan satu demi satu (mengikut susunan yang ditentukan oleh bil). Setiap pelanggan hanya akan membeli satu limun dan membayar sama ada dengan bil $5, $10 atau $20. Anda mesti memberikan perubahan yang betul kepada setiap pelanggan supaya transaksi bersih ialah pelanggan membayar $5.

Perhatikanbahawa anda tidak mempunyai sebarang perubahan pada mulanya.

Memandangkan bil tatasusunan integer di mana bil[i] ialah bil yang dibayar oleh pelanggan keke, pulangkanbenar jika anda boleh memberikan perubahan yang betul kepada setiap pelanggan, atau palsu sebaliknya.

Contoh 1:

  • Input:bil = [5,5,5,10,20]
  • Output:benar
  • Penjelasan:
    • Daripada 3 pelanggan pertama, kami mengumpul tiga bil $5 mengikut pesanan.
    • Daripada pelanggan keempat, kami mengumpul bil $10 dan memberikan balik $5.
    • Daripada pelanggan kelima, kami memberikan bil $10 dan bil $5.
    • Memandangkan semua pelanggan mendapat perubahan yang betul, kami keluarkan benar.

Contoh 2:

  • Input:bil = [5,5,10,10,20]
  • Output:palsu
  • Penjelasan:
    • Daripada dua pelanggan pertama dalam pesanan, kami mengumpul dua bil $5.
    • Untuk pesanan dua pelanggan seterusnya, kami mengumpul bil $10 dan memberikan balik bil $5.
    • Untuk pelanggan terakhir, kami tidak boleh memberikan semula pertukaran $15 kerana kami hanya mempunyai dua bil $10.
    • Memandangkan bukan setiap pelanggan menerima perubahan yang betul, jawapannya adalah palsu.

Kekangan:

  • 5
  • bil[i] ialah sama ada 5, 10 atau 20.

Penyelesaian:

Kita perlu mensimulasikan proses menyediakan perubahan kepada pelanggan berdasarkan bil yang mereka gunakan untuk membayar. Perkara utama ialah menjejaki bilangan bil $5 dan $10 yang anda miliki, kerana ini diperlukan untuk memberikan perubahan bagi bil yang lebih besar

Mari kita laksanakan penyelesaian ini dalam PHP:860. Lemonade Change

Penjelasan:

  1. Permulaan: Kami bermula dengan $lima dan $sepuluh ditetapkan kepada 0, mewakili kiraan $5 dan $10 bil yang kami ada.

  2. Memproses Setiap Bil:

    • Jika pelanggan membayar dengan bil $5: Kami hanya menambah kiraan bil $5.
    • Jika pelanggan membayar dengan $10 bil: Kami perlu mengembalikan satu $5 bil sebagai perubahan, jadi kami mengurangkan kiraan $5 bil dan menambah kiraan $10 bil. Jika kami tidak mempunyai sebarang bil $5, pulangkan palsu.
    • Jika pelanggan membayar dengan bil $20: Kami mengutamakan pemberian satu bil $10 dan satu bil $5 sebagai perubahan. Jika itu tidak mungkin, kami cuba memberikan tiga bil $5. Jika tiada pilihan tersedia, pulangkan palsu.
  3. Semakan Akhir: Jika kami berjaya memproses semua pelanggan tanpa kehabisan perubahan, kembalikan benar.

Kes Tepi:

  • Fungsi ini harus mengendalikan senario di mana mustahil untuk memberikan perubahan yang betul, seperti apabila anda menerima bil $10 atau $20 terlalu awal tanpa mempunyai bil (s) $5 yang diperlukan.
  • Ia harus cekap mengendalikan saiz input yang besar disebabkan oleh kekangan (sehingga 100,000 pelanggan). Penyelesaiannya berjalan dalam kerumitan masa O(n), menjadikannya optimum untuk masalah ini.

Hubungi Pautan

Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberirepositoribintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna buat saya!

Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:

  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci . Perubahan Lemonade. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!