LeetCode 3917: Count Indices With Opposite Parity (Counting)
English
We count indices where index parity and value parity are different. Let a be mismatches at even indices, b be mismatches at odd indices. Each valid pair needs one from each side, so answer is a * b.
class Solution {
public long countIndices(int[] nums) {
long even = 0, odd = 0;
for (int i = 0; i < nums.length; i++) {
if ((i & 1) != (nums[i] & 1)) {
if ((i & 1) == 0) even++;
else odd++;
}
}
return even * odd;
}
}
func countIndices(nums []int) int64 {
var even, odd int64
for i, x := range nums {
if (i&1) != (x&1) {
if (i & 1) == 0 {
even++
} else {
odd++
}
}
}
return even * odd
}
class Solution {
public:
long long countIndices(vector& nums) {
long long even = 0, odd = 0;
for (int i = 0; i < (int)nums.size(); ++i) {
if ((i & 1) != (nums[i] & 1)) {
if ((i & 1) == 0) ++even;
else ++odd;
}
}
return even * odd;
}
};
class Solution:
def countIndices(self, nums: List[int]) -> int:
even = odd = 0
for i, x in enumerate(nums):
if (i & 1) != (x & 1):
if i & 1 == 0:
even += 1
else:
odd += 1
return even * odd
var countIndices = function(nums) {
let even = 0, odd = 0;
for (let i = 0; i < nums.length; i++) {
if ((i & 1) !== (nums[i] & 1)) {
if ((i & 1) === 0) even++;
else odd++;
}
}
return even * odd;
};
中文
统计“下标奇偶性”和“数值奇偶性”不一致的位置。设偶数下标不一致数量为 a,奇数下标不一致数量为 b。每个有效配对必须一边取一个,所以答案是 a * b。
class Solution {
public long countIndices(int[] nums) {
long even = 0, odd = 0;
for (int i = 0; i < nums.length; i++) {
if ((i & 1) != (nums[i] & 1)) {
if ((i & 1) == 0) even++;
else odd++;
}
}
return even * odd;
}
}
func countIndices(nums []int) int64 {
var even, odd int64
for i, x := range nums {
if (i&1) != (x&1) {
if (i & 1) == 0 {
even++
} else {
odd++
}
}
}
return even * odd
}
class Solution {
public:
long long countIndices(vector& nums) {
long long even = 0, odd = 0;
for (int i = 0; i < (int)nums.size(); ++i) {
if ((i & 1) != (nums[i] & 1)) {
if ((i & 1) == 0) ++even;
else ++odd;
}
}
return even * odd;
}
};
class Solution:
def countIndices(self, nums: List[int]) -> int:
even = odd = 0
for i, x in enumerate(nums):
if (i & 1) != (x & 1):
if i & 1 == 0:
even += 1
else:
odd += 1
return even * odd
var countIndices = function(nums) {
let even = 0, odd = 0;
for (let i = 0; i < nums.length; i++) {
if ((i & 1) !== (nums[i] & 1)) {
if ((i & 1) === 0) even++;
else odd++;
}
}
return even * odd;
};