# 20200520 """ 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 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 """ """ 审题:排序数组,无重复元素 算法一: 特例处理:如果数组为空,返回0 因为索引和值都需要,用enumerate遍历 如果找到了,就返回其索引 如果找不到: 找到第一个小于的值,返回其索引【可以和上面合一起写】 找不到,则放在最后 复杂度分析: 时间复杂度:O(N) 空间复杂度:O(1) 算法二:用二分法 复杂度分析: 时间复杂度:O(logN) 空间复杂度:O(1) """ class Solution(object): def searchInsert(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ # 特例处理:如果数组为空,返回0 if not nums: return 0 for idx,num in enumerate(nums): if num >= target: return idx return len(nums) s = Solution() print(s.searchInsert([], 5)) print(s.searchInsert([1,3,5,6], 5)) print(s.searchInsert([1,3,5,6], 2)) print(s.searchInsert([1,3,5,6], 7)) print(s.searchInsert([1,3,5,6], 0))
Leetcode35索引插入位置
最新推荐文章于 2024-05-29 09:28:18 发布