1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-20 01:56:57 +02:00
LeetCode/problems/rs/predict-the-winner.rs
Matej Focko 0d50e8082a
problems(rs): solve “486. Predict the Winner”
Signed-off-by: Matej Focko <me@mfocko.xyz>
2023-07-28 23:52:36 +02:00

22 lines
545 B
Rust

use std::cmp::max;
impl Solution {
pub fn predict_the_winner(nums: Vec<i32>) -> bool {
let mut dp = vec![vec![0; nums.len()]; nums.len()];
// initialize
for (i, &num) in nums.iter().enumerate() {
dp[i][i] = num;
}
// carry on the DP
for d in 1..nums.len() {
for l in 0..nums.len() - d {
let r = l + d;
dp[l][r] = max(nums[l] - dp[l + 1][r], nums[r] - dp[l][r - 1]);
}
}
dp[0][nums.len() - 1] >= 0
}
}