在Java Array中寻找高原

时间:2014-04-02 20:48:51

标签: java loops

我很难在阵列中找到一个高原。我正在寻找的是最长的相等值序列的长度和位置,其中两侧的数字较小。现在我知道可能有两个或更多有效长度相同,理想情况下我希望以更高的值打印高原。

我创建了一个数组[40]和一个随机对象。为了填充数组,一旦我填充它,我知道我将需要一个循环来检查索引。但那就是混乱的地方。我尝试使用for循环找到平台,但我的结果只会增加索引中存储的值。 任何正确方向的点我都会非常感激。

import java.util.Random;
public class Plateau {
public static void main(String[]args)
{
    int[] array1 = new int[40];
    Random genrator = new Random();

    for (int i = 0; i < array1.length; i++)
    {
        array1[i] = genrator.nextInt(21 - 1);
    }
    for(int i = 0; i < array1.length; i++)
    {
        System.out.print(array1[i] + " ");
    }
    System.out.println("\n");

    for (int i = 0; i < array1.length; i++)
    {
        if (array1[i] < array1[i] + 1)
        {

            System.out.println(array1[i] + " ");
        }

    }



}

}

1 个答案:

答案 0 :(得分:0)

在伪代码中:

V value=first value
P position=1
L length=0
Scan the values from position Q=2
  Compare current value C to V
  If C is less than V
    if this sequence Q-P is longer than L 
      save length as L
      save P as location R
    update V and P to current value
  If C is greater than V
    update V and P to current value

我没有伪代码的编译器所以它可能不完全正确,但它应该是一个开始。