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