码迷,mamicode.com
首页 > 其他好文 > 详细

搜索插入位置

时间:2019-11-26 17:40:29      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:problem   tps   sed   open   turn   假设   顺序   img   display   

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5
输出: 2
示例 2:

输入: [1,3,5,6], 2
输出: 1
示例 3:

输入: [1,3,5,6], 7
输出: 4
示例 4:

输入: [1,3,5,6], 0
输出: 0

解答:

技术图片
/**
     * 二分法
     * 
     * @param nums
     * @param target
     * @return
     */
    public int searchInsert(int[] nums,int target){
        /*左侧指针*/
        int lo=0;
        /*右侧指针*/
        int hi=nums.length-1;
        /*当左侧指针小于等于右侧指针时遍历*/
        while (lo<=hi){
            /*计算中间节点*/
            int mid=(lo+hi)/2;
            /*当中间节点大于目标值时,右侧节点移到中间节点的左边一位*/
            if(nums[mid]>target){
                hi=mid-1;
                /*当中间节点小于目标值时,左侧节点移到中间节点的右边一位*/
            }else if(nums[mid]<target){
                lo=mid+1;
            }else{
                /*找到了返回目标值当前所在位置*/
                return mid;
            }
        }
        /*返回左侧节点,即是要插入的位置*/
        return lo;
    }
View Code

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position

搜索插入位置

标签:problem   tps   sed   open   turn   假设   顺序   img   display   

原文地址:https://www.cnblogs.com/wuyouwei/p/11937034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!