LeetCode_35——搜索插入位置

题目

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

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

题解(个人)

思路

除了最普通的target元素直接插入,由于题目中已规定无重复升序数组,因此其他可以分为两种插入类型:

  1. 如果target>nums[i],则在索引位置为i+1处插入元素
  2. 如果target<nums[0],则索引位置直接返回0

代码

class Solution {
    public int searchInsert(int[] nums, int target) {
        int num=0;
        for (int i = 0; i < nums.length; i++) {
            if(nums[i]==target){
                return num=i;
            }else if(target>nums[i]){
                num++;
            }
        }
        return num;
    }
}

题解(官方)

思路

二分法

代码

class Solution {
    public int searchInsert(int[] nums, int target) {

    }
}
原文地址:https://www.cnblogs.com/echola/p/15574790.html