最长的连续序列BACKWARDS

时间:2015-02-26 20:18:18

标签: java arrays

所以我有一个方法可以通过数组向前搜索并找到最长的连续序列。现在我正在尝试创建一个方法,通过数组搜索BACKWARDS并找到最长的连续序列。

因此,例如,如果数组输入为{5,56,5,4,3},则longestForward应返回5,56;并且最长的后退者应该返回3,4,5,56。

转发方法运行正常,但我无法尝试使向后方法工作。

//Input array
int[] a= new int[]{5, 56, 5, 4, 9};
//Call method longestForward
longestForward(a, a.length);
longestBackward(a, a.length);}


 public static void longestForward(int a[], int size){
   int maxstart = 0;
   int max = 1;
   int start = 0;
   for (int i = 1; i < size; i++){
     if (a[i] > a[i - 1]){
       if (i - start + 1 > max){
         max = i - start + 1;
         maxstart = start;}} 
     else{
       start = i;}}
   System.out.println(max);
   for (int i = 0; i < max; i++){
     System.out.print(a[maxstart + i] + ", ");}
   System.out.println("");}


  public static void longestBackward(int[] a){

int start = 1;
int maxstart = 1;
int size = 0;
int max = 0;

for (int i = a.length - 1; i > 0; i--){
 if (a[i] > a[i - 1]){ 
   start++; 
   if (start > maxstart){
     maxstart = start;
     size = i + (start - 1); 
     max= i - 1;}}
  else{
   start = 1;}}
System.out.println("");
System.out.println(max);
for (int i = max ; i >= 0; i--){
    System.out.print(a[i] + ", ");}}

0 个答案:

没有答案