20250121 finished.
This commit is contained in:
parent
465899b94f
commit
d705a588f8
|
@ -444,3 +444,5 @@ mod p3287_find_the_maximum_sequence_value_of_array;
|
|||
mod p2266_count_number_of_texts;
|
||||
|
||||
mod p2239_find_closest_number_to_zero;
|
||||
|
||||
mod p2218_maximum_value_of_k_coins_from_piles;
|
||||
|
|
45
src/problem/p2218_maximum_value_of_k_coins_from_piles.rs
Normal file
45
src/problem/p2218_maximum_value_of_k_coins_from_piles.rs
Normal file
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* [2218] Maximum Value of K Coins From Piles
|
||||
*/
|
||||
pub struct Solution {}
|
||||
|
||||
// submission codes start here
|
||||
|
||||
impl Solution {
|
||||
pub fn max_value_of_coins(piles: Vec<Vec<i32>>, k: i32) -> i32 {
|
||||
let k = k as usize;
|
||||
let mut dp = vec![-1; k + 1];
|
||||
dp[0] = 0;
|
||||
|
||||
for pile in piles {
|
||||
for i in (1..=k).rev() {
|
||||
let mut value = 0;
|
||||
|
||||
for t in 1..=pile.len() {
|
||||
value += pile[t - 1];
|
||||
|
||||
if i >= t && dp[i - t] != -1 {
|
||||
dp[i] = dp[i].max(dp[i - t] + value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dp[k]
|
||||
}
|
||||
}
|
||||
|
||||
// submission codes end
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_2218() {
|
||||
assert_eq!(
|
||||
101,
|
||||
Solution::max_value_of_coins(vec![vec![1, 100, 3], vec![7, 8, 9]], 2)
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user