找到第一个相邻对

时间:2017-12-08 07:16:23

标签: java arrays

尝试在我的代码中找到第一个相邻的对。相邻意味着连续两个相同。如果找到,则应该打印出找到的第一对的索引。在这种情况下,44将是我的代码中第一个实际相邻的对。因此它应该返回10的索引。这是我目前正在使用的数组。

  int[] arr = {88, 88, 88, 63, 29, 77, 77, 77, 77, 50, 44, 44, 8, 0, 99, 99};

1 个答案:

答案 0 :(得分:0)

我陷入困境(某种程度) - 所以这是一个部分解决方案。

boolean pair = false;
        int index = 0;
        for (int i = 1; i < arr.length - 2; i++) {
            if (arr[i] == arr[i + 1] && arr[i + 1] != arr[i + 2] && arr[i] != arr[i - 1]) {
                pair = true;
                index = i;
                break;
            }
    }

基本上从索引1开始循环(需要检查前一个元素),然后以-2结束(因为我们正在检查两个)。

注意:

您需要编写很多*边缘案例,例如:

  • 如果只有0,1或2个元素
  • 如果前两个是唯一一对
  • 如果最后两个是唯一一对

*我可能会有更多错过,如果您愿意,请随时更新答案