编写一个方法,当传递一个整数数组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;
}}
这是正确的还是正确的方法?
答案 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;
}