3个连续奇数,3个连续奇数的和是75

首页 > 大全 > 作者:YD1662022-12-16 21:50:57

3个连续奇数,3个连续奇数的和是75(1)

在leetcode(https://leetcode-cn.com/)上看到一道有趣的算法题:

给你一个整数数组 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] 。

提示:

这样的题你会怎么用Java实现呢?

分享一下我的解题思路:

public boolean threeConsecutiveOdds(int[] arr) { int length=arr.length; if(length<3){ return false; } int left=0; int right =length-1; int leftNum=0; int rightNum=0; while(left<=right){ if(left==right){ if(isOddNumber(arr[left])){ if(leftNum rightNum 1>=3){ return true; } } } else{ if(isOddNumber(arr[left])){ leftNum =1; if(leftNum==3){ return true; } } else{ leftNum=0; } if(isOddNumber(arr[right])){ rightNum =1; if(rightNum==3){ return true; } } else{ rightNum=0; } if(right-left==1&&leftNum rightNum>=3){ return true; } } left ; right--; } return false; } private boolean isOddNumber(int num){ return num%2!=0; }

结果:

输入:[1,1,1]
输出:true

leetcode上对该答案的分析如下:

32 / 32 个通过测试用例

状态:通过

执行用时: 0 ms, 在所有 Java 提交中击败了100.00%的用户

内存消耗: 38.1 MB, 在所有 Java 提交中击败了63.17%的用户

执行消耗内存分布图表

3个连续奇数,3个连续奇数的和是75(2)

大家有更好的解题思路吗?欢迎在评论区作答哈~

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.