zoukankan      html  css  js  c++  java
  • leetcode35. 搜索插入位置 🌟

    题目:

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

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

    示例 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

    来源:力扣(LeetCode)
    解答:

    class Solution:
        def searchInsert(self, nums: List[int], target: int) -> int:
            def binarySearch(nums, target):
                low = 0
                high = len(nums) - 1
                while low <= high:
                    cur = int((low + high) / 2)
                    if nums[cur] == target:
                        return cur, None
                    elif nums[cur] > target:
                        high = cur - 1
                    elif nums[cur] < target:
                        low = cur + 1
                return -1, low
            
            target, low = binarySearch(nums, target)
            return low if target == -1 else target
    View Code
    def binarySearch(nums, target, low, high):
        if low > high:
            return low
        cur = (low + high) // 2
        if nums[cur] == target:
            return cur
        elif nums[cur] > target:
            return binarySearch(nums, target, low, cur - 1)
        else:
            return binarySearch(nums, target, cur + 1, high)
    
    return binarySearch(nums, target, 0, len(nums) - 1)
    View Code
    class Solution:
        def searchInsert(self, nums: List[int], target: int) -> int:
            for i, num in enumerate(nums):
                if num >= target:
                    return i
            
            return len(nums)
    View Code
  • 相关阅读:
    实验的方法与计算机技术
    写夏的几首很好的诗
    IBM 大型机培训课程分析
    php代码优化系列(一)数据库读取
    三种遍历树的方法
    J2ME手机编程的启示
    mysql 优化系列(一) Mysql数据库引擎性能测试
    Apache 日志的配置
    至少还有你...
    个人写的一个javascript 框架
  • 原文地址:https://www.cnblogs.com/catyuang/p/11130551.html
Copyright © 2011-2022 走看看