其他分享
首页 > 其他分享> > 剑指 Offer II 068. 查找插入位置

剑指 Offer II 068. 查找插入位置

作者:互联网

题目

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

请必须使用时间复杂度为 O(log n) 的算法。

示例

输入: nums = [1,3,5,6], target = 5
输出: 2

输入: nums = [1,3,5,6], target = 2
输出: 1

输入: nums = [1,3,5,6], target = 7
输出: 4

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

输入: nums = [1], target = 0
输出: 0

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

方法1:二分查找

Java实现
class Solution {
    public int searchInsert(int[] nums, int target) {
        int n = nums.length;
        int l = 0, r = n - 1;
        while (l < r) {
            int mid = l + r >> 1;
            if (nums[mid] > target) {
                r = mid - 1;
            } else if (nums[mid] < target) {
                l = mid + 1;
            } else {
                return mid;
            }
        }
        return nums[l] < target ? l + 1 : l;
    }
}

在这里插入图片描述

标签:输出,target,nums,int,068,Offer,mid,II,输入
来源: https://blog.csdn.net/qq_42467009/article/details/123612383