LeetCode0704-返回数组中指定元素的下标

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-search
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

参考地址:

https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.md

题目重点:确认边界值,边界值的选取直接影响到了最后的结果

class Solution {
    // 题目重点:确认好区间边界值
    public int search(int[] nums, int target) {
        int start =0;
        int end = nums.length-1;
        int medium = start+ (end - start) /2;
        if(target>nums[end] || target < nums[start]) return -1;
        // 高亮部分的边界值直接影响到最后的结果
         while(start<=end){
        if(nums[medium]==target) return medium;
        else if(nums[medium] < target) {
            start= medium+1;
        }else{
            end = medium-1;
        }
        medium = start+ (end - start)/2;
        }
       return -1;
    }     
}

 

类似题目:https://leetcode-cn.com/problems/sqrtx/submissions/ 二分法求平方根

约简单的题目边界值越坑哦

class Solution {
    public int mySqrt(int x) {
        int start =0,end =x,medium=0,ans =0;
        while(start <= end){
            medium=start+(end-start)/2;
            if(Math.pow(medium,2)> x){
                end = medium -1;
            }else if(Math.pow(medium,2)<=x){
                ans=medium;
                start = medium +1;
            }
        }
        return ans;

    }

}

 

posted on 2021-07-01 17:09  cStream  阅读(231)  评论(0)    收藏  举报