标签: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; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
标签:problem tps sed open turn 假设 顺序 img display
原文地址:https://www.cnblogs.com/wuyouwei/p/11937034.html