1impl Solution {2pub fn predict_the_winner(nums: Vec<i32>) -> bool {3fn dfs(l: usize, r: usize, nums: &Vec<i32>, table: &mut Vec<Vec<i32>>) -> i32 {4if table[l][r] != -1 {5return table[l][r];6}7if l == r {8return nums[l];9}10let left = nums[l] - dfs(l + 1, r, nums, table);11let right = nums[r] - dfs(l, r - 1, nums, table);12table[l][r] = left.max(right);13table[l][r]14}1516let n = nums.len();17let mut table = vec![vec![-1; n]; n];18dfs(0, n - 1, &nums, &mut table) >= 019}20}