- Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathspecial-array-ii.rs
33 lines (27 loc) · 960 Bytes
/
special-array-ii.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#![allow(dead_code, unused, unused_variables, non_snake_case)]
fnmain(){}
structSolution;
implSolution{
/// 前缀和
/// 对于prefix_sum. 如果nums[i] 与 nums[i-1]的奇偶性不同,则prefix_sum[i] = 0, 否则为1
/// 因此如果 nums[i] ~ nums[j] 是特殊子数组,则prefix_sum[i] == prefix_sum[j]
pubfnis_array_special(nums:Vec<i32>,queries:Vec<Vec<i32>>) -> Vec<bool>{
letmut prefix_sum = vec![0];
for i in1..nums.len(){
if nums[i] % 2 != nums[i - 1] % 2{
prefix_sum.push(prefix_sum[i - 1]);
}else{
prefix_sum.push(prefix_sum[i - 1] + 1);
}
}
letmut result = vec![];
for i in queries {
if prefix_sum[i[0]asusize] == prefix_sum[i[1]asusize]{
result.push(true);
}else{
result.push(false);
}
}
result
}
}