zoukankan      html  css  js  c++  java
  • leetcode 35. Search Insert Position

    Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

    You may assume no duplicates in the array.

    Example 1:

    Input: [1,3,5,6], 5
    Output: 2
    

    Example 2:

    Input: [1,3,5,6], 2
    Output: 1
    

    Example 3:

    Input: [1,3,5,6], 7
    Output: 4
    

    Example 4:

    Input: [1,3,5,6], 0
    Output: 0
    class Solution(object):
        def searchInsert(self, nums, target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: int
            """
            if target < nums[0]:
                return 0
            if target > nums[-1]:
                return len(nums)
            i, j = 0, len(nums)-1
            while i<=j:
                mid = (i+j) >> 1 # /2
                if nums[mid] == target:
                    return mid
                elif nums[mid] > target:
                    j = mid-1
                else:
                    i = mid+1
            return i            
    

    经典二分查找!如果没有找到则nums[j] < target < nums[i]. 因此,返回i

    如果前面不加判断:

    public int searchInsert(int[] nums, int target) {
            if(nums.length == 0) return 0;
            int mid = 0;
            int lo= 0,hi=nums.length-1;
            while(lo<=hi){
                mid = (lo+hi)/2;
                if(nums[mid] == target) return mid;
                else if(target > nums[mid]) lo = mid+1;
                else hi = mid-1;
            }
            return target < nums[mid] ? mid : mid+1;
        }
    
  • 相关阅读:
    Mybatis学习笔记2:第一个Mybatis使用实例
    Mybatis学习笔记1:Mybatis简介
    springcloud Eureka 服务注册与发现
    springcloud rest微服务案例
    springmvc返回json
    springboot 集成mybatisplus
    vue axios使用
    vue前后端交互方式
    day3
    D. Count the Arrays
  • 原文地址:https://www.cnblogs.com/bonelee/p/9108503.html
Copyright © 2011-2022 走看看