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

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 に答える