20.8.16 周賽 5185. 存在連續三個奇數的陣列 簡單
阿新 • • 發佈:2020-08-16
題目
給你一個整數陣列 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
思路
- 遍歷陣列,每次連續判斷三個數,分四種情況,一定要按這個順序判斷
- 三個數都是奇數,返回結果
- 第三個數不是奇數,跳過這三個數
- 第二個數不是奇數,跳過前兩個數
- 第一個數不是奇數,跳過前一個數,即正常遍歷
- 因為arr.length<=1,所以需要特判
程式碼
class Solution { public: bool threeConsecutiveOdds(vector<int>& arr) { if(arr.size() < 3) return false; for(int i = 0; i < arr.size()-2; i++){ if(arr[i]%2 && arr[i+1]%2 && arr[i+2]%2) return true; if(!(arr[i+2]%2)){ i+=2; continue; } else if(!(arr[i+1]%2)){ i+=1; continue; } } return false; } };