LeetCode #1550. Three Consecutive Odds

题目

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
posted @ 2020-12-02 16:22  老鼠司令  阅读(71)  评论(0编辑  收藏  举报