use std::collections::HashMap; fn rec (i: i32, j: i32) -> i32{ let n = 4; let w = [ [2,3], [1,2], [3,4], [2,2] ]; let res; if(i == n) { res = 0; } else if (j < w[i as usize][0]) { res = rec(i + 1, j); } else { res = std::cmp::max(rec(i + 1, j), rec(i + 1, j - w[i as usize][0]) + w[i as usize][1]); } return res; } fn main() { let W = 5; let res = rec(0, W); println!("{}", res); }
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.52s
Running `target/debug/basic`
7
hashmapではなく、多次元配列にする必要あり