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
  • 相关阅读:
    mode
    文件操作
    深浅拷贝
    基础数据类型补充
    再谈编码 decode和encode
    Python练习题 015:一颗自由落地的球
    Python练习题 014:完数
    Python练习题 013:求解a+aa+aaa……
    Python练习题 012:字符统计
    Python练习题 011:成绩打分
  • 原文地址:https://www.cnblogs.com/catyuang/p/11130551.html
Copyright © 2011-2022 走看看