2054. Dua Acara Tidak Bertindih Terbaik
Kesukaran: Sederhana
Topik: Tatasusunan, Carian Binari, Pengaturcaraan Dinamik, Isih, Timbunan (Baris Gilir Keutamaan)
Anda diberi 0-diindeks tatasusunan integer 2D acara di mana peristiwa[i] = [StartTimei, endTimei, nilai i]. Acara ith bermula pada StartTimei dan berakhir pada endTimei, dan jika anda menghadiri acara ini, anda akan menerima nilai nilaii . Anda boleh memilih paling banyak dua acara tidak bertindih untuk dihadiri supaya jumlah nilainya dimaksimumkan.
Kembalikan jumlah maksimum ini.
Perhatikan bahawa masa mula dan masa tamat adalah inklusif: iaitu, anda tidak boleh menghadiri dua acara di mana satu daripadanya bermula dan satu lagi berakhir pada masa yang sama. Lebih khusus lagi, jika anda menghadiri acara dengan masa tamat t, acara seterusnya mesti bermula pada atau selepas t 1.
Contoh 1:
Contoh 2:
Contoh 3:
Kekangan:
Petunjuk:
Penyelesaian:
Kita boleh menggunakan pendekatan berikut:
Isih Acara mengikut Masa Tamat:
Carian Perduaan untuk Acara Tidak Bertindih:
Pengaturcaraan Dinamik dengan Penjejakan Maks:
Lelar dan Kira Jumlah Maksimum:
Mari laksanakan penyelesaian ini dalam PHP: 2054. Dua Acara Tidak Bertindih Terbaik
Penjelasan:
Isih:
- Acara diisih mengikut masa tamatnya, yang membolehkan carian cekap bagi acara terakhir yang tidak bertindih.
Carian Binari:
- Untuk setiap acara, carian binari menentukan acara terbaharu yang berakhir sebelum acara semasa bermula.
Penjejakan Maks:
- Kami mengekalkan tatasusunan maxUpTo, yang menyimpan nilai maksimum peristiwa sehingga indeks semasa. Ini mengelakkan pengiraan semula maksimum untuk indeks terdahulu.
Pengiraan Jumlah Maksimum:
- Untuk setiap acara, kira jumlah nilainya dan nilai acara tidak bertindih terbaik. Kemas kini jumlah maksimum global dengan sewajarnya.
Analisis Kerumitan
Penyelesaian ini cekap dan berfungsi dengan baik dalam kekangan.
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 Dua Acara Tidak Bertindih Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!