算法练习100天-第2天

类别:数组

题目: 1550. 存在连续三个奇数的数组

我的解题思路:

循环数组、定义变量count记录连续出现奇数个数

  • 当前为奇数,那么++count
  • 当前不为奇数,那么将count置为0
class Solution {
    public boolean threeConsecutiveOdds(int[] arr) {
       int count =0;
       for(int i =0;i<arr.length;i++){
           if(arr[i] %2 == 1 ){
               count++;
           }else{
               count =0;
           }
           if(count == 3){
            return true;
           }
       }
        return false;
    }
}

官方解题:

class Solution {
    public boolean threeConsecutiveOdds(int[] arr) {
        int n = arr.length;
        for (int i = 0; i <= n - 3; ++i) {
            if ((arr[i] & 1) != 0 && (arr[i + 1] & 1) != 0 && (arr[i + 2] & 1) != 0) {
                return true;
            }
        }
        return false;
    }
}

差异点

1.我的解题:通过每一次循环判断元素是否为奇数,是就+1,不是就清零,不够简洁
2.官方解题:直接比较3个连续元素,直接判断这三个元素是否都是奇数,是直接返回

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。