给你一个整数数组 arr
,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true
;否则,返回 false
。
示例 1:
输入:arr = [2,6,4,1] 输出:false 解释:不存在连续三个元素都是奇数的情况。
示例 2:
输入:arr = [1,2,34,3,4,5,7,23,12] 输出:true 解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。
提示:
1 <= arr.length <= 1000
1 <= arr[i] <= 1000
方法一:遍历数组
直接遍历数组,统计连续奇数的个数,如果个数达到 3,则返回 true
,否则遍历结束,返回 false
。
时间复杂度 arr
的长度。
class Solution:
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
cnt = 0
for v in arr:
if v & 1:
cnt += 1
else:
cnt = 0
if cnt == 3:
return True
return False
class Solution:
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
for i in range(len(arr) - 2):
if arr[i] % 2 + arr[i + 1] % 2 + arr[i + 2] % 2 == 3:
return True
return False
class Solution {
public boolean threeConsecutiveOdds(int[] arr) {
int cnt = 0;
for (int v : arr) {
if (v % 2 == 1) {
++cnt;
} else {
cnt = 0;
}
if (cnt == 3) {
return true;
}
}
return false;
}
}
class Solution {
public:
bool threeConsecutiveOdds(vector<int>& arr) {
int cnt = 0;
for (int v : arr) {
if (v & 1)
++cnt;
else
cnt = 0;
if (cnt == 3) return true;
}
return false;
}
};
func threeConsecutiveOdds(arr []int) bool {
cnt := 0
for _, v := range arr {
if v%2 == 1 {
cnt++
} else {
cnt = 0
}
if cnt == 3 {
return true
}
}
return false
}
function threeConsecutiveOdds(arr: number[]): boolean {
let cnt = 0;
for (const v of arr) {
if (v & 1) {
++cnt;
} else {
cnt = 0;
}
if (cnt == 3) {
return true;
}
}
return false;
}