You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Java数组中是否存在相邻的元素1和3?代码优化咨询

解决数组中"1紧邻右侧是3"的判断问题

嘿,我看你现在的代码只能判断数组里有没有1,但要实现你要的「存在1且右侧紧邻是3」的逻辑,得调整一下思路哦!

首先得明确核心需求:我们要找数组中相邻的一对元素,第一个是1,第二个是3。这里要注意两个关键细节:

  • 数组长度小于2时,直接返回false——因为连两个相邻元素都不存在
  • 遍历的时候只能到倒数第二个元素,不然i+1会触发数组越界异常

下面是修改后的代码,我加了注释帮你理解:

public boolean unlucky1(int[] nums) {
    // 边界处理:数组长度不足2,直接返回false
    if (nums.length < 2) {
        return false;
    }
    
    // 遍历到倒数第二个元素就停止,避免i+1超出数组范围
    for (int i = 0; i < nums.length - 1; i++) {
        // 检查当前元素是1,且下一个元素是3
        if (nums[i] == 1 && nums[i+1] == 3) {
            return true; // 找到符合条件的相邻对,立即返回true
        }
    }
    
    // 遍历完整个数组都没找到,返回false
    return false;
}

我们来验证你给出的三个示例:

  • unlucky1([1, 3, 4, 5]):i=0时匹配条件,返回true ✔️
  • unlucky1([2, 1, 3, 4, 5]):i=1时匹配条件,返回true ✔️
  • unlucky1([1, 1, 1]):所有相邻对都不满足,返回false ✔️

这个写法的优势是提前终止——只要找到第一个符合条件的相邻对就立刻返回,不用遍历整个数组,性能更优。如果想用更简洁的Java 8流写法,也可以试试,但循环写法对新手来说更直观易懂。

内容的提问来源于stack exchange,提问作者gs650x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:24:32