欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode算法题(数组相关)(七)——存在连续三个奇数的数组

程序员文章站 2022-03-15 21:04:39
...

问题:

给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

输入:arr = [2,6,4,1]
输出:false
解释:不存在连续三个元素都是奇数的情况。
输入:arr = [1,2,34,3,4,5,7,23,12]
输出:true
解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。

算法:

LeetCode算法题(数组相关)(七)——存在连续三个奇数的数组

这个应该算比较简单的问题了,我们可以在循环数组的同时,判断是否有连续的三个奇数。连续的问题我们可以通过记录奇数的下标,我们定义一个变量count=0,如果上一个奇数和本次循环的奇数下标相减为1,那么就count++;如果相减不为1,那么就count=1。如果count=3了,返回true。

实现:

class Solution {
    public boolean threeConsecutiveOdds(int[] arr) {
        int index=-1,cnt = 0,len = arr.length;
        for(int i = 0;i<len;i++){
            
            if(arr[i]%2!=0){
                if(index==-1){
                    cnt++;
                }
                else if(i-index==1)
                    cnt++;
                else
                    cnt=1;
                index = i;
            }
            if(cnt == 3)
                return true;
        }
        return false;
    }
}

 

相关标签: leetcode刷题之路