zoukankan      html  css  js  c++  java
  • 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);
        }
        
    }
    
  • 相关阅读:
    Python
    Python
    Python
    Python
    python
    python
    Python
    pure css做的pc登陆界面
    MvcAdmin功能介绍
    pure css做的手机版博客园(我自己博客)
  • 原文地址:https://www.cnblogs.com/yjxyy/p/10846886.html
Copyright © 2011-2022 走看看