Skip to content

Commit 0c88982

Browse files
committed
src/bin/special-array-ii.rs
1 parent 8aa48e4 commit 0c88982

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/bin/special-array-ii.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#![allow(dead_code, unused, unused_variables, non_snake_case)]
2+
3+
fn main() {}
4+
5+
struct Solution;
6+
7+
impl Solution {
8+
/// 前缀和
9+
/// 对于prefix_sum. 如果nums[i] 与 nums[i-1]的奇偶性不同,则prefix_sum[i] = 0, 否则为1
10+
/// 因此如果 nums[i] ~ nums[j] 是特殊子数组,则prefix_sum[i] == prefix_sum[j]
11+
pub fn is_array_special(nums: Vec<i32>, queries: Vec<Vec<i32>>) -> Vec<bool> {
12+
let mut prefix_sum = vec![0];
13+
14+
for i in 1..nums.len() {
15+
if nums[i] % 2 != nums[i - 1] % 2 {
16+
prefix_sum.push(prefix_sum[i - 1]);
17+
} else {
18+
prefix_sum.push(prefix_sum[i - 1] + 1);
19+
}
20+
}
21+
22+
let mut result = vec![];
23+
for i in queries {
24+
if prefix_sum[i[0] as usize] == prefix_sum[i[1] as usize] {
25+
result.push(true);
26+
} else {
27+
result.push(false);
28+
}
29+
}
30+
31+
result
32+
}
33+
}

0 commit comments

Comments
 (0)