Java 数组一行中有三个数字

Java 数组一行中有三个数字,java,arrays,Java,Arrays,如果数组中至少有三个数字按升序排列,如何返回true;如果没有,如何返回false public static boolean tripleUp(int[] array) { int count = 0; for (int i = 0; i < array.length - 1; i++) { if(array[i] < array[i + 1] && array[i + 1] == array[i] + 1){

如果数组中至少有三个数字按升序排列,如何返回true;如果没有,如何返回false

public static boolean tripleUp(int[] array) {
    int count = 0;
    for (int i = 0; i < array.length - 1; i++) {
        if(array[i] < array[i + 1] && array[i + 1] == array[i] + 1){
            count++;
            if(count < 2){
                return false;
            }
        }
    }
    return true;
}

tripleUp([1, 4, 5, 6, 2]) → true
tripleUp([1, 2, 3]) → true
tripleUp([1, 2, 4]) → false
公共静态布尔三元组(int[]数组){
整数计数=0;
for(int i=0;i
有人能帮我吗?

这个怎么样

static boolean inSeq(int[] arr, int n)
{
  if(arr == null || arr.length < n) return false;

  if(n <= 1) return true;

  for(int i=1, j=0; i <= arr.length; i++)
  {
    if(i == arr.length || arr[i] == arr[i-1]+1)
    {
      if(i - j == n) return true;
    }
    else
    {
      j = i;
    }
  }
  return false;
}
输出:

[1, 4, 5, 6, 2] : true
[1, 2, 3] : true
[1, 2, 4] : false

很简单

public static boolean tripleUp(int[] array)
{
    for (int i = 0; i < array.length - 2; ++i) {
        if (array[i+1] == array[i] + 1 && array[i+2] == array[i] + 2) {
            return true;
        }
    }
    return false;
}
公共静态布尔三元组(int[]数组)
{
对于(int i=0;i
在第一次测试中将5改为3,在最后一次测试中将2改为3,看看会发生什么。@Joakim Danielson感谢您的关注。现在修好了。使用索引的偏移量比使用计数更好。
public static boolean tripleUp(int[] array)
{
    for (int i = 0; i < array.length - 2; ++i) {
        if (array[i+1] == array[i] + 1 && array[i+2] == array[i] + 2) {
            return true;
        }
    }
    return false;
}