在Java中,如何循环直到前两个元素等于数组的最后两个元素?
我正在尝试做一个调整,但要使前两个元素与后两个元素相等。我正在努力找出一种方法来计算摆动子序列,只要最终输出总是最后两个元素等于前两个元素 到目前为止,代码是在Java中,如何循环直到前两个元素等于数组的最后两个元素?,java,arrays,dynamic-programming,greedy,Java,Arrays,Dynamic Programming,Greedy,我正在尝试做一个调整,但要使前两个元素与后两个元素相等。我正在努力找出一种方法来计算摆动子序列,只要最终输出总是最后两个元素等于前两个元素 到目前为止,代码是 public static int calculation(int[] A, int n){ if( A.length == 0 ){ return 0; } int[] up = new int[A.length]; int[] down = new int[A.leng
public static int calculation(int[] A, int n){
if( A.length == 0 ){
return 0;
}
int[] up = new int[A.length];
int[] down = new int[A.length];
up[0] = 1;
down[0] = 1;
for(int i = 1 ; i < A.length; i++){
do{
if( A[i] > A[i-1] ){ //wiggles up, element before it must be a down position
up[i] = down[i-1]+1;
down[i] = down[i-1];
}else if( A[i] < A[i-1]){ //wiggles down, element before it must be a up position
down[i] = up[i-1]+1;
up[i] = up[i-1];
}else{ //does not change anything so both up[i] and down[i] stay the same
down[i] = down[i-1];
up[i] = up[i-1];
}
//else if - think of what to return if true
//or else if to return if false ????
} while (A[0] != A[A.length-1]); //attempt at while statement
}
return Math.max(down[A.length-1],up[A.length-1])/2; //returning the amount of pairs in array
}
公共静态整数计算(int[]A,int n){
如果(A.length==0){
返回0;
}
int[]向上=新的int[A.长度];
int[]向下=新的int[A.长度];
up[0]=1;
向下[0]=1;
for(int i=1;iA[i-1]){//向上摆动,则它前面的元素必须是向下位置
向上[i]=向下[i-1]+1;
向下[i]=向下[i-1];
}否则,如果(A[i]
我想做一段时间,整数数组的前两个元素等于循环中的最后两个元素,但不知道如何做前两个和最后两个元素,而不仅仅是第一个和最后一个,而且这似乎无论如何都不起作用,但无法从逻辑上解释原因
正如您所知,我是一个完全的初学者,这是一个我被赋予的任务,我真的很难在Java中完成。任何建议都将不胜感激
注意:输入是数组int[]A,int n是序列A中的整数数