我有一个长度为 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;
}
我建议在比较两个值时将值转换为整数。
您将需要跟踪最大值和索引。该解决方案假定所有值都是非负的(因为我将 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;
}
}
此时,您拥有数组中最大值的索引。如果有多个最大值,您可以存储一个索引数组。
这是我的建议。如果我错了,请纠正我。
int max 0
for(i=0; i<X; i++){
if(array[i]).isLessThan(array[i+1]))
max = i+1;
else
max = i
}
为了学术界的兴趣,一个更复杂的解决方案:):
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;
}
}