0
点赞
收藏
分享

微信扫一扫

二分查找及leetcode题

二分查找及leetcode题

leetcode题目

题目一

题目:

题目


给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

样例:

样例一

输入:

输入


nums = [-1,0,3,5,9,12], target = 9

输出:

输出


4
样例二

输入:

输入


nums = [-1,0,3,5,9,12], target = 2

输出:

输出


-1

思路:

因为是有序数组,通过数组中间元素与目标值进行比较,若相等则找到,小于则只可能在右边数组,大于则只可能在左边数组,直到数组为空。

坑点:

题目是找原数组元素下标,参数变化不应该是数组,而是数组下标。

代码:

javascript


/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
//在nums[start,end)数组找值为target的下标
var search1=function(nums,target,start,end){ //数组[start,end)
    while(end>start){ //数组长度不为空
        mid=parseInt((start+end)/2); //中间元素下标
        if(nums[mid]==target)
            return mid;
        if(nums[mid]>target)
            end=mid;
        if(nums[mid]<target)
            start=mid+1;
    }
    return -1; //数组为空返回-1
}
var search = function(nums, target) {
    return search1(nums,target,0,nums.length);
};
举报

相关推荐

0 条评论