1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-11-14 01:49:41 +01:00
LeetCode/rs/partition-array-for-maximum-sum.rs
Matej Focko f88f860d0d
rs: add «1043. Partition Array for Maximum Sum»
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-02-03 21:30:50 +01:00

21 lines
510 B
Rust

use std::cmp;
impl Solution {
pub fn max_sum_after_partitioning(arr: Vec<i32>, k: i32) -> i32 {
let mut dp: Vec<i32> = vec![0; arr.len() + 1];
for i in 1..=arr.len() {
let mut m = 0;
let mut m_sum = 0;
for j in (1..=k as usize).take_while(|j| i >= *j) {
m = cmp::max(m, arr[i - j]);
m_sum = cmp::max(m_sum, dp[i - j] + (j as i32) * m);
}
dp[i] = m_sum;
}
dp[arr.len()]
}
}