Skip to main content

knapsack_01_items

Function knapsack_01_items 

Source
pub fn knapsack_01_items(
    weights: &[usize],
    values: &[i64],
    capacity: usize,
) -> (i64, Vec<usize>)
Expand description

0/1 xalta + qaysi buyumlar tanlanganini qaytaradi.

Buning uchun to’liq 2D jadval kerak (O(n·W) xotira), chunki orqaga qarab yurib tanlovni tiklaymiz.

Qaytadi: (maksimal_qiymat, tanlangan_buyum_indekslari).

§Misol

use rust_algorithms::dp::knapsack_01_items;

let (qiymat, buyumlar) = knapsack_01_items(&[1, 3, 4, 5], &[1, 4, 5, 7], 7);
assert_eq!(qiymat, 9);
assert_eq!(buyumlar, vec![1, 2]); // og'irliklari 3 va 4