Skip to main content

activity_selection

Function activity_selection 

Source
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)