【5分钟力扣】1550. 存在连续三个奇数的数组

文章目录

    • 一、前言
    • 二、题目
    • 三、解法和思路

一、前言

动机是一个神奇的东西。 每天留出一两个小时,并养成在那个时间编码的习惯。 几个星期后,它将成为常态。

每天五分钟,看懂一道简单、中等难度的算法题,尽可能将复杂的题讲清楚。

疯狂学习python中,2020-09-04更新

【5分钟力扣】1550. 存在连续三个奇数的数组_第1张图片

二、题目

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/three-consecutive-odds
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

三、解法和思路

滑动窗口方法

1、遍历数组,如果当前值为奇数,则res += 1,否则res=0,当res==3时,返回True

# 滑动窗口
class Solution:
    def threeConsecutiveOdds(self, arr: List[int]) -> bool:
        res = 0
        for i in arr:
            if i % 2:
                res += 1
            else:
                res = 0

            if res == 3:
                return True
        return False

if __name__ == '__main__':
    obj = Solution()
    print(obj.threeConsecutiveOdds([1, 2, 34, 3, 4, 5, 7, 23, 12]))

你可能感兴趣的:(金鞍少年的刷题之路)