我正在做這個家庭作業,它要求寫一個名為longestEqualSequence的方法,確定相等的數字的最長序列。例如,在[6, 7, 4, 4, 4, 7, 1, 3, 3, 4, 1, 4, 3, 4, 2, 9, 1, 8, 2, 7]中,最長的序列是長度為3的:4, 4, 4.當我運行下面的代碼時,我的輸出是 "最長的序列是長度:3" 我想同時列印最長的序列是[4, 4, 4]。我怎樣才能把這個序列和它的長度一起列印出來呢?
import java.util.Arrays;
public class Q3 {
public static void main(String[] args) {
int[] y = { 6, 7, 4, 4, 4, 4, 7, 1, 3, 3, 4, 1, 4, 3, 4, 2, 9, 1, 8, 2, 7 };
System.out.println(Arrays.toString(y))。
System.out.println("最長的序列是長度。" longestEqualSequence(y))。
}
public static int longestEqualSequence(int[] array) {
int currentSequence = 1;
int maxSequence = 1;
for (int i = 1; i < array.length; i ) {
if (array[i] == array[i - 1] ) {
currentSequence ;
} else {
if (currentSequence > maxSequence) {
maxSequence = currentSequence。
}
currentSequence = 1;
}
}
if (currentSequence > maxSequence)
return currentSequence;
else[/span
return maxSequence;
}
uj5u.com熱心網友回復:
使用一個sequence_number變數,當currentSequence大于maxSequence時將其設定。
if(currentSequence > maxSequence){
maxSequence = currentSequence;
sequence_number = array[i-1]
}
然后,列印sequence_number變數maxSequence的次數。
uj5u.com熱心網友回復:
你可以添加一個current value變數:
public static int[] longestEqualSequence(int<] array){
int currentSequence = 1;
int maxSequence = 1;
int currentValue = array[0] 。
for (int i = 1; i < array.length; i ) {
if (array[i] == array[i - 1] ) {
currentSequence ;
} else {
if (currentSequence > maxSequence) {
maxSequence = currentSequence;
currentValue = array[i - 1]。
}
currentSequence = 1;
}
}
int[] sequence = new int[currentSequence > maxSequence ? currentSequence : maxSequence]。
Arrays.fill(sequence, currentValue)。
return序列。
}
然后:
int[] y = { 6, 7, 4, 4, 4, 7, 1, 3, 3, 4, 1, 4, 3, 4, 2, 9, 1, 8, 2, 7 };
int[] sequence = longestEqualSequence(y)。
System.out.println("sequence=" Arrays.toString(sequence) ", size=" sequence.length)。
輸出:
sequence=[4, 4, 4, 4] , size=4
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/308362.html
標籤:
