Maximum Erasure Value LeetCode solution in Rust
1/// @author: Leon2/// https://leetcode.com/problems/maximum-erasure-value/3/// Time Complexity: O(`len_n`)4/// Space Complexity: O(`RANGE`)5impl Solution {6pub fn maximum_unique_subarray(nums: Vec<i32>) -> i32 {7const RANGE: usize = 10e4 as usize + 7;8let len_n: usize = nums.len();9let mut freqs: Vec<u16> = vec![0; RANGE];10let mut lo: usize = 0;11let mut most: i32 = 0;12let mut sum: i32 = 0;13for hi in 0..len_n {14sum += nums[hi];15freqs[nums[hi] as usize] += 1;16while lo < hi && freqs[nums[hi] as usize] > 1 {17sum -= nums[lo];18freqs[nums[lo] as usize] -= 1;19lo += 1;20}21most = std::cmp::max(most, sum);22}23most24}25}