0

我有一个长度为 X 的数字字符串数组(“32”、“49”、“2”、...),我需要找到该数组中的最大数字并返回位置(数组 [3] 是最大的数字)

有没有像 array[0].isLessThan(array[3]) 这样的库?或类似的东西?

到目前为止的程序:

int max 0

for(i=1; i<X; i++){

if(array(max).isLessThan(array[i]))
     max = i;
}
4

3 回答 3

2

我建议在比较两个值时将值转换为整数。

您将需要跟踪最大值和索引。该解决方案假定所有值都是非负的(因为我将 max 设置为 -1),但您可以轻松地将 max 更改为 int min 或类似的值。

int max = -1;
int index = -1;

for (int i = 0; i < array.Length; i++)
{
    int value = Integer.parse(array[i]);
    if (value > max)
    {
        max = value;
        index = i;
    }
}

此时,您拥有数组中最大值的索引。如果有多个最大值,您可以存储一个索引数组。

于 2013-02-21T02:09:38.480 回答
0

这是我的建议。如果我错了,请纠正我。

int max 0

for(i=0; i<X; i++){

     if(array[i]).isLessThan(array[i+1]))
         max = i+1;
     else
         max = i
}
于 2013-02-21T02:23:39.217 回答
-1

为了学术界的兴趣,一个更复杂的解决方案:):

public static void main(String[] args) {

    String[] anArrayOfStrings={"199999","32", "33", 
"10000","45","99999","72987","0","92"};
    Test test=new Test();
    Test.CX cx=test.new CX();
    java.util.Arrays.sort(anArrayOfStrings,cx) ;
    System.out.println("Item="+anArrayOfStrings[(anArrayOfStrings.length-1)]);
}

class CX<String> implements Comparator{

    @Override
    public int compare(Object arg0, Object arg1) {



        if( Integer.parseInt((java.lang.String) arg0) > 
   Integer.parseInt((java.lang.String) arg1)){

            return 1;

        }else if(Integer.parseInt((java.lang.String) arg0) < 
  Integer.parseInt((java.lang.String) arg1)){
            return -1;
        }

        return 0;
    }


}
于 2013-02-21T03:54:48.877 回答