1 题目描述
给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。
2 示例描述
2.1 示例1
输入:arr = [2,6,4,1]
输出:false
解释:不存在连续三个元素都是奇数的情况。
2.2 示例2
输入:arr = [1,2,34,3,4,5,7,23,12]
输出:true
解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。
3 解题提示
1 <= arr.length <= 1000
1 <= arr[i] <= 1000
4 解题思路
取巧做法:奇数 * 奇数 * 奇数 = 奇数 。
5 源码详解(C++)
class Solution {
public:
bool threeConsecutiveOdds(vector<int>& arr) {
if ( arr.size() < 3 )
{
return false ;
}
for ( int i = 0 ; i < arr.size() - 2 ; i ++ )
{
if ( ( arr[i] * arr[i + 1] * arr[i + 2] ) % 2 == 1 )
{
return true ;
}
}
return false ;
}
};