时间:2020-6-14
题目地址:https://leetcode-cn.com/problems/search-insert-position/
题目难度:Easy
题目描述:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
思路1:直接写的,很复杂
代码段1:通过
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if(len(nums) == 0): return 0
if(nums[0] >= target): return 0
if(nums[len(nums) - 1] < target): return len(nums)
for i in range(len(nums) - 1):
if(nums[i] == target):
return i
if(nums[i + 1] == target):
return i + 1
if(nums[i] < target and nums[i+1] > target):
return i + 1
总结:
- 很乱啊,还是写的少
思路2:优化后的
代码段1:通过
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
for i in range(len(nums)):
if(nums[i] >= target):
return i
return len(nums)
总结:
- 还有用sort(), index()的,秀
- 多想,遛弯回来累了,随便写写,明天继续开整
后续优化:二分法,这条分享很赞