39.数组中数值和下标相等的元素
Posted yjxyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了39.数组中数值和下标相等的元素相关的知识,希望对你有一定的参考价值。
题目描述:
??假设一个单调递增的数组里的每个元素都是整数且是唯一的,请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如,在数组{-3,-1,1,3,5}中数字3和它的下标相同。
思路分析:
??由于是排序的且递增的数组的查找问题,那么我们考虑使用二叉查找法。假设我们某一步抵达了某个数字,且这个数字等于其在数组中的下标,那么我们就找到了答案。如果这个数字不等于其下标,那么我们判断,如果这个数字大于其下标,根据递增数组的性质,这个数字后面的数都大于其相应的下标,所以下一阶段我们在左段进行查找。如果这个数字小于其坐标,那么根据递增数组的性质,这个数字前面的数都小于其对应的下标,所以下一阶段在后半段进行查找。
代码:
public class Test{
public int GetNumberSameAsIndex(int[]nums){
if(nums.length==0||nums==null)
return -1;
int res=find(nums,0,nums.length-1);
return res;
}
public int find(int []nums,int start,int end){
int mid=(start+end)/2;
int midnum=nums[mid];
if(start<=end){
if(midnum==mid){
return mid;
}else if(midnum>mid){
end=mid-1;
}else{
start=mid+1;
}
}
return find(nums,start,end);
}
}
以上是关于39.数组中数值和下标相等的元素的主要内容,如果未能解决你的问题,请参考以下文章
剑指offer-面试题53_3-数组中数值和下标相等的元素-二分查找
js 怎么随机将数组里的所有元素取出,保证每次取出的数值下标是不一样的。
python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值