gpt4 book ai didi

java - 找到最长的连续数字序列

转载 作者:行者123 更新时间:2023-11-30 08:59:26 27 4
gpt4 key购买 nike

问题 H(最长自然后继):

如果第二个是自然数序列中第一个的后继(1 和 2 是自然后继),则两个连续整数是自然后继。编写一个程序,读取一个数字 N 后跟 N 个整数,然后打印连续自然后继的最长序列的长度。

例子:

输入 7 2 3 5 6 7 9 10 输出 3 这是我目前的代码,我不知道为什么它不起作用

import java.util.Scanner;

public class Conse {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int[] array = new int[x];
for (int i = 0; i < array.length; i++) {
array[i] = scan.nextInt();
}
System.out.println(array(array));

}

public static int array(int[] array) {
int count = 0, temp = 0;
for (int i = 0; i < array.length; i++) {
count = 0;
for (int j = i, k = i + 1; j < array.length - 1; j++, k++) {
if (Math.abs(array[j] - array[k]) == 1) {
count++;
} else {
if (temp <= count) {
temp = count;
}
break;
}
}
}
return temp + 1;
}

}

最佳答案

为什么有两个循环?怎么样

public static int array(final int[] array) {
int lastNo = -100;
int maxConsecutiveNumbers = 0;
int currentConsecutiveNumbers = 0;

for (int i = 0; i < array.length; i++) {
if (array[i] == lastNo + 1) {
currentConsecutiveNumbers++;
maxConsecutiveNumbers = Math.max(maxConsecutiveNumbers,
currentConsecutiveNumbers);
} else {
currentConsecutiveNumbers = 1;
}
lastNo = array[i];
}
return Math.max(maxConsecutiveNumbers, currentConsecutiveNumbers);
}

关于java - 找到最长的连续数字序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27283305/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com