线性搜索查找数组中目标的最后一个索引

时间:2017-05-01 05:30:56

标签: java arrays search

  

编写一个方法,当传递一个整数数组arr和一个整数目标时,   返回数组中目标发生的最后一个索引。如果数组为null或者数组中不存在target,则返回-1。

所以我使用线性搜索来做到这一点。

public static void linearSeach(int [] arr, target){
if( arr == null){
   return -1;
}
count = 0;
for (int i = 0; i< arr.length; i++){
    if( target == arr[i]){
       count ++;
}
}
// I cannot return both count and -1 so here is what I thought I should do
if( count >= 0){
return count;
}
else {
  return -1;
}}

这是正确的还是正确的方法?

2 个答案:

答案 0 :(得分:1)

不,您将返回目标号码在阵列中出现的次数。您应该返回它上次出现的索引:

if (arr != null) {
    for (int i = arr.length - 1; i >= 0; i--){
        if (target == arr[i]) {
            return i;
        }
    }
}
return -1;

答案 1 :(得分:0)

public static void linearSeach(int [] arr, target){
    if( arr != null) {      
        int i = arr.length - 1
        while (i>=0){
            if( target == arr[i]){
                 return i;
            } 
            i= i-1              
        }
    }
    return -1;
}