在java数组中查找更多数字

时间:2013-10-19 18:36:12

标签: java arrays return-value

问题是:

  1. 在数组中找到更多数字
  2. 返回包含更大值而非索引值的索引号。
  3. 代码

    public class temp02 {
    
     public static void consoledisplay(int [] array){
      for (int a = 0; a < array.length; a++)
       System.out.println("Value of array index "+a+" is "+array[a]);
      System.out.println("");
     }
    
     public static int [] higherNumbers(int[] array, int numbers){
      // needed codes here
      return array;
     }
    
     public static void main (String[] args) {
      int [] x = new int[10];
      x[0] = 55;
      x[1] = 27;
      x[2] = 23;
      x[3] = 22;
      x[4] = 55;
      x[5] = 56;
      x[6] = 33;
      x[7] = 21;
      x[8] = 21;
      x[9] = 99;
    
      consoledisplay(x);
    
      x = higherNumbers(x,4);
      consoledisplay(x);
     }
    }
    

    当前输出

    数组索引0的值是55
    数组索引1的值是27
    数组索引2的值是23
    数组索引3的值为22
    数组索引4的值是55
    数组索引5的值是56
    数组索引6的值是33
    数组索引7的值是21
    数组索引8的值是21
    数组索引9的值是99

    数组索引0的值是55
    数组索引1的值是27
    数组索引2的值是23
    数组索引3的值为22
    数组索引4的值是55
    数组索引5的值是56
    数组索引6的值是33
    数组索引7的值是21
    数组索引8的值是21
    数组索引9的值是99

    目标输出

    数组索引0的值是55
    数组索引1的值是27
    数组索引2的值是23
    数组索引3的值为22
    数组索引4的值是55
    数组索引5的值是56
    数组索引6的值是33
    数组索引7的值是21
    数组索引8的值是21
    数组索引9的值是99

    数组索引0的值为9
    数组索引1的值为5
    数组索引2的值为0
    数组索引3的值是4

3 个答案:

答案 0 :(得分:0)

int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > arr[max])
                max = i;
        }
        return max;

答案 1 :(得分:0)

试试这个

public static int[] higherNumbers(int[] array, int numbers) {
    int tempArr[] = Arrays.copyOf(array, array.length);
    Arrays.sort(tempArr);
    int retArr[] = new int[numbers];
    int j = 0;
    for (int i = array.length - numbers; i < array.length; i++) {
        for (int x = 0; x < array.length; x++) {
            if (array[x] == tempArr[i]) {
                retArr[j] = x;
                break;
            }
        }
        j++;
    }
    return retArr;
}

答案 2 :(得分:0)

使用以下代码,它将起作用

public static int[] higherNumbers(int[] array, int numbers) {
    int tempArr[] = Arrays.copyOf(array, array.length);
    Arrays.sort(tempArr);
    int retArr[] = new int[numbers];
    int j = 0;
    for (int i = array.length - numbers; i < array.length; i++) {
        for (int x = 0; x < array.length; x++) {
            if (array[x] == tempArr[i]) {
                if(checkIndex(retArr,x)){
                continue;
                }else{
                    retArr[j] = x;
                break;
                }
            }
        }
        j++;
    }
    return retArr;
}

private static boolean checkIndex(int[] indexArr, int index){
    boolean status = false;
    for(int i=0; i<indexArr.length; i++){
        if(index == indexArr[i]){
            status = true;
            break;
        }
    }
    return status;
}