pub fn activity_selection(activities: &[Activity]) -> Vec<usize>Expand description
Tadbirlarni tanlash: bitta zalda maksimal nechta tadbir o’tkazish mumkin?
Ochko’z qoida: eng erta tugaydigan tadbirni tanlang. Nima uchun bu ishlaydi? Chunki erta tugagan tadbir keyingilar uchun eng ko’p joy qoldiradi.
- Time: O(n log n) (tartiblash), Space: O(n).
Qaytadi: tanlangan tadbirlarning asl indekslari.
§Misol
use rust_algorithms::greedy::{activity_selection, Activity};
let tadbirlar = vec![
Activity::new(1, 4),
Activity::new(3, 5),
Activity::new(0, 6),
Activity::new(5, 7),
Activity::new(8, 9),
Activity::new(5, 9),
];
let tanlangan = activity_selection(&tadbirlar);
assert_eq!(tanlangan, vec![0, 3, 4]); // (1,4), (5,7), (8,9)