20250520 finished.
This commit is contained in:
parent
f838767e30
commit
a3d73376bb
|
@ -664,3 +664,5 @@ mod p75_sort_colors;
|
||||||
mod p1931_painting_a_grid_with_three_different_colors;
|
mod p1931_painting_a_grid_with_three_different_colors;
|
||||||
|
|
||||||
mod p3024_type_of_triangle;
|
mod p3024_type_of_triangle;
|
||||||
|
|
||||||
|
mod p3355_zero_array_transformation_i;
|
||||||
|
|
50
src/problem/p3355_zero_array_transformation_i.rs
Normal file
50
src/problem/p3355_zero_array_transformation_i.rs
Normal 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]]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user