1475. Harga Akhir Dengan Diskaun Istimewa di Kedai
Kesukaran: Mudah
Topik: Tatasusunan, Tindanan, Tindanan Monotonic
Anda diberi harga tatasusunan integer di mana harga[i] ialah harga item ike di kedai.
Ada diskaun istimewa untuk barangan di kedai. Jika anda membeli item ith, maka anda akan menerima diskaun bersamaan dengan harga[j] dengan j ialah indeks minimum supaya j > i dan harga[j] <= harga[i]. Jika tidak, anda tidak akan menerima sebarang diskaun sama sekali.
Kembalikan jawapan tatasusunan integer dengan jawapan[i] ialah harga akhir yang anda akan bayar untuk item ike kedai, dengan mengambil kira diskaun istimewa.
Contoh 1:
Contoh 2:
Contoh 3:
Kekangan:
Petunjuk:
Penyelesaian:
Kita perlu memohon diskaun istimewa berdasarkan syarat ada barang kemudian dengan harga kurang atau sama dengan harga semasa, kita boleh menggunakan pendekatan brute-force. Kami akan mengulangi tatasusunan harga dan, untuk setiap item, cari item pertama dengan harga yang lebih rendah atau sama selepasnya. Ini boleh dicapai dengan gelung bersarang. Kami boleh menggunakan timbunan untuk menjejaki harga item dengan cekap dan menggunakan diskaun istimewa.
Pendekatan Timbunan:
Kes Tepi: Jika tiada item yang mempunyai harga yang lebih kecil kemudian dalam tatasusunan, tiada diskaun digunakan.
Mari laksanakan penyelesaian ini dalam PHP: 1475. Harga Akhir Dengan Diskaun Istimewa di Kedai
Penjelasan:
Permulaan:
- Buat tatasusunan $hasil dengan saiz yang sama seperti $prices dan mulakannya kepada 0.
Gelung Luar:
- Gelung setiap harga pada indeks $i untuk mengira harga akhir selepas diskaun.
Gelung Dalam:
- Untuk setiap harga $i, lelaran melalui harga berikutnya $j (di mana $j > $i).
- Semak sama ada $prices[$j] kurang daripada atau sama dengan $prices[$i]. Jika benar, tetapkan $discount = $prices[$j] dan keluar dari gelung dalam.
Pengiraan Harga Akhir:
- Tolak diskaun yang ditemui daripada $prices[$i] dan simpan hasilnya dalam $result[$i].
Keputusan Pulangan:
- Selepas memproses semua harga, kembalikan tatasusunan hasil akhir.
Kerumitan:
Pendekatan ini akan berfungsi dalam kekangan masalah (1 <= prices.length <= 500), walaupun ia bukan penyelesaian yang paling optimum.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Harga Akhir Dengan Diskaun Istimewa di Kedai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!