我的工作是编写一个名为findLastIndex
的方法,此方法接收一个数组和一个表示数组元素的整数值。 findLastIndex
搜索数组以查找给定元素,并返回最后一次在数组中找到此元素的索引(最接近数组长度的元素的位置)。如果在数组中找不到该元素,则该方法返回-1。
所以我当前的代码如下所示:
public static int findLastIndex(int [] nums, int element){
for(int i = 0; i < nums.length; i++){
if(i == element){
return nums[i];
}
}
return -1;
}
但是我不知道第一次如何不返回,而是让它返回最后一次找到该元素。
答案 0 :(得分:3)
您只需在循环遍历数组时保存(当前)最后一个索引:
public static int findLastIndex(int [] nums, int element){
int lastIndex = -1
for(int i = 0; i < nums.length; i++){
if(nums[i] == element){
lastIndex = i;
}
}
return lastIndex;
}
但是,也许更好的选择是从数组末尾搜索:
public static int findLastIndex(int [] nums, int element){
for(int i = nums.length - 1; i >= 0; i--){
if(nums[i] == element){
return i;
}
}
return -1;
}
答案 1 :(得分:0)
public static int findLastIndex(int [] nums, int element){
int count = 0; //counts the iterations of the enhanced for loop
int index = -1;//stores the index that the element is currently in
for(int x : nums){//enhanced for loop
if(x==element){index=count;}//if element is found in the array it stores the index and will override it if it is found again
count++;//counts iterations
}
return index;//returns the index
}
看到其他人给出了很好的答案......我想尝试一下这个有趣的事情。