动机是一个神奇的东西。 每天留出一两个小时,并养成在那个时间编码的习惯。 几个星期后,它将成为常态。
每天五分钟,看懂一道简单、中等难度的算法题,尽可能将复杂的题讲清楚。
疯狂学习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]))