Minimum Operations to Reduce X to Zero LeetCode solution in Rust

1
use std::cmp::max;
2

3
impl Solution {
4
pub fn min_operations(nums: Vec<i32>, x: i32) -> i32 {
5
let sum: i32 = nums.iter().sum();
6
let mut l = 0;
7
let mut csum = 0;
8
let mut maxlen: i32 = -1;
9
for r in 0..nums.len() {
10
csum += nums[r];
11
while l <= r && csum > sum - x {
12
csum -= nums[l];
13
l += 1;
14
}
15
if csum == sum - x {
16
maxlen = max(maxlen, (r - l + 1) as i32);
17
}
18
}
19
if maxlen == -1 {
20
-1
21
} else {
22
nums.len() as i32 - maxlen
23
}
24
}
25
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0