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

tech2026-03-06  5

文章目录

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

一、前言

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

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

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

二、题目

给你一个整数数组 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]))
最新回复(0)