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-数组中数值和下标相等的元素-二分查找

PHP获取数组下标的问题

php向数组添加含有下标的元素

js 怎么随机将数组里的所有元素取出,保证每次取出的数值下标是不一样的。

python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值

js中如何获取数组中最大数值的下标值