LeetCode刷题(58)~存在连续三个奇数的数组【第202场周赛:题目一】

题目描述

给你一个整数数组 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

解答 By 海轰

提交代码(暴力解法)

bool threeConsecutiveOdds(vector<int>& arr) {
         int len=arr.size();
        for(int i=0;i<len-2;++i)
        {
            if(arr[i]%2==1&&arr[i+1]%2==1&&arr[i+2]%2==1)
                return true;
        }
        return false;
    }

运行结果
LeetCode刷题(58)~存在连续三个奇数的数组【第202场周赛:题目一】_第1张图片
提交代码(计数法)

bool threeConsecutiveOdds(vector<int>& arr) {
        int count=0;
        for(int i=0;i<arr.size();++i)
        {
            count= (arr[i]&1==1)? count+1:0;
            if(count==3)
            return true;
        }
        return false;
    }

运行结果
LeetCode刷题(58)~存在连续三个奇数的数组【第202场周赛:题目一】_第2张图片

题目来源

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/three-consecutive-odds

你可能感兴趣的:(算法,leetcode)