java - 检测数组中的3个连续奇数或偶数
问题描述
当我在编码 bat 上练习Java问题时,我遇到了以下问题陈述:-
问题:-
给定一个整数数组,如果该数组包含 3 个相邻的偶数或 3 个奇数,则返回 true。
例子:-
modThree([2, 1, 3, 5]) → true
modThree([2, 1, 2, 5]) → false
modThree([2, 4, 2, 5]) → true
我的解决方案:-
public boolean modThree(int[] nums) {
for(int i=0; i<nums.length-2; i++){
if((nums[i] % 2 == 0 && nums[i+1] % 2 == 0 && nums[i+2] % 2 == 0) || (nums[i] % 2 == 1 && nums[i+1] % 2 == 1 && nums[i+2] % 2 == 1)){
return true;
}
}
return false;
}
虽然我的解决方案有效,但我的解决方案看起来有点长(尤其是 if 语句条件)。所以,我正在寻找一种代码行数更少的解决方案。你能帮我解决这个问题吗?
解决方案
这三个modulo
值必须相等,不一定是 0 或 1(尽管% 2
使 0 和 1 成为唯一可能的结果)。因此,您可以将if
语句替换为:
if(nums[i]%2 == nums[i+1]%2 && nums[i]%2 == nums[i+2]%2) {
...
}
推荐阅读
- ffmpeg - 未知数量照片的ffmpeg-python交叉淡入淡出过渡
- powershell - 如何通过 Powershell 删除对所有用户 OneDrive 的所有者访问权限?
- python - objects.filter 以获取字符串是否包含在一个或其他字段中
- java - 使用 JPA 将坐标数组列表中的数据存储为 spring-boot 中的多边形
- c++ - 得到一个'?在使用 `std::cout` 打印特殊(扩展)ASCII 字符时在输出中
- c# - WPF:如何在 DataGridCheckBoxColumn 中添加 Checked 和 Unchecked 事件?
- sql - SQL 的总和而不是列表结果
- python - 在python + selenium中上传没有输入的图像
- react-native - 在展会上阅读短信
- gem5 - gem5 syscall emulation hello world 在没有运行任何指令的情况下陷入无限事件循环