1550. 存在连续三个奇数的数组
大约 2 分钟
---
1550. 存在连续三个奇数的数组
- 标签:数组
- 难度:简单
题目链接
题目大意
描述:给定一个整数数组 。
要求:判断数组中是否存在连续三个元素都是奇数。
说明:
- 。
示例:
- 示例 1:
输入:arr = [2,6,4,1]
输出:false
解释:不存在连续三个元素都是奇数的情况。- 示例 2:
输入:arr = [1,2,34,3,4,5,7,23,12]
输出:true
解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。解题思路
思路 1:一次遍历
1. 核心思想
维护一个连续奇数计数器 。遍历数组,如果是奇数则 ,否则重置为 。如果 ,返回 True。
2. 具体步骤
第 1 步:。
第 2 步:遍历每个 :
- 如果 :,如果 ,返回
True。 - 否则 。
第 3 步:返回 False。
3. 举例说明
以 为例:
- :偶数,。
- :偶数,。
- :偶数,。
- :奇数,。
返回 False。
以 为例:
- :奇数,。
- :偶数,。
- :偶数,。
- :奇数,。
- :偶数,。
- :奇数,。
- :奇数,。
- :奇数,。返回
True。
思路 1:代码
class Solution:
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
cnt = 0
for x in arr:
if x & 1:
cnt += 1
if cnt == 3:
return True
else:
cnt = 0
return False思路 1:复杂度分析
- 时间复杂度:。
- 空间复杂度:。