给你一个整数数组 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
AC代码:
class Solution {
public boolean threeConsecutiveOdds(int[] arr) {
boolean ans = false;
int flag = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
flag++;
if (flag == 3) {
ans = true;
}
} else {
flag = 0;
}
}
return ans;
}
}
难度简单191
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3] 输出: 6
示例 2:
输入: [1,2,3,4] 输出: 24
注意:
- 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
- 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。
AC代码:
class Solution {
public:
int maximumProduct(vector<int>& nums) {
sort(nums.begin(), nums.end());
int ans = nums[nums.size() - 1] * nums[nums.size() - 2] * nums[nums.size() - 3];
int ans1 = nums[0] * nums[1] * nums[nums.size() - 1];
ans = max(ans, ans1);
return ans;
}
};
两道水题。没啥好说的。