LeetCode #1550. Three Consecutive Odds
题目
解题方法
遍历数组到倒数第三位,设置一个跳跃计数器jump,依次判断当前位置、下一个位置和再下一个位置的奇偶性,如果都是奇数就返回,如果有不是奇数的就根据情况设置跳跃距离,节省重复的判断过程。
时间复杂度:O(n)
空间复杂度:O(1)
代码
class Solution:
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
i = 0
while i < len(arr) - 2:
jump = 0
if arr[i] % 2:
if arr[i+1] % 2:
if arr[i+2] % 2:
return True
else:
jump += 2
else:
jump += 1
i += 1 + jump
return False