20250520 finished.

This commit is contained in:
jackfiled 2025-05-20 15:26:01 +08:00
parent f838767e30
commit a3d73376bb
2 changed files with 52 additions and 0 deletions

View File

@ -664,3 +664,5 @@ mod p75_sort_colors;
mod p1931_painting_a_grid_with_three_different_colors;
mod p3024_type_of_triangle;
mod p3355_zero_array_transformation_i;

View File

@ -0,0 +1,50 @@
/**
* [3355] Zero Array Transformation I
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn is_zero_array(nums: Vec<i32>, queries: Vec<Vec<i32>>) -> bool {
let n = nums.len();
let mut difference_array = vec![0; n + 1];
for query in queries {
let left = query[0] as usize;
let right = query[1] as usize;
difference_array[left] += 1;
difference_array[right + 1] -= 1;
}
let mut prefix_sum = difference_array[0];
for i in 1..=n {
if prefix_sum < nums[i - 1] {
return false;
}
prefix_sum += difference_array[i];
}
true
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_3355() {
assert!(Solution::is_zero_array(vec![1, 0, 1], vec![vec![0, 2]]));
assert!(!Solution::is_zero_array(
vec![4, 3, 2, 1],
vec![vec![1, 3], vec![0, 2]]
));
}
}