面试题 08.03. 魔术索引

记录我的第一次java写题,开始跟着项目学java。
第一种,直接遍历。

class Solution {
    public int findMagicIndex(int[] nums) {
        int len= nums.length;
        for(int i=0;i<len;i++)
        {
            if(nums[i]==i)
                return i;
        }
        return -1;
    }
}

第二种,利用二分的思想,首先用二分的方法查找找不到往左边继续找,如果左边找完找不到,二分的方法继续往右边找。

class Solution {
    public int findMagicIndex(int[] nums) {
        int len= nums.length;
        int left=0,right=len-1;
        return GetRes(nums,left,right);
    }
    public int GetRes(int[] nums,int left,int right)
    {
        if(left>right)
            return -1;
        int mid=(left+right)/2;
        int trans = GetRes(nums,left,mid-1);
        if(trans!=-1)
            return trans;
        else if(nums[mid]==mid)
            return mid;
        return GetRes(nums,mid+1,right);

    }
}

THE END
分享
二维码
< <上一篇

)">
下一篇>>