题目描述:
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
题目大意:
- 给定一个排好顺序数组和target,让你找到target能够在哪个位置,插入到这个数组中去(是按照升序的顺序)
- 返回那个位置的索引
- 当然,如果数组中存在与target相等的数,直接返回那个数的索引
解题思路:
- 本人想的较简单,遍历两次,第一次,就假设target在数组中,返回索引,如果不在
- 那就直接将target,加到原数组中,再进行升序排列
- 在循环一遍,找出target所在位置,返回
少废话,上代码:
class Solution:
def searchInsert(self, nums, target):
# 先遍历一遍,找出等于target的数,返回索引
for i in range(len(nums)):
if nums[i] == target:
return i
nums.append(target) # 直接将target,加进列表
nums.sort() # 再升序排列,重新遍历一次,找到所在位置,返回索引
for i in range(len(nums)):
if nums[i] == target:
return i
运行时间和内存占用:
- Runtime: 52 ms, faster than 44.05% of Python3 online submissions for Search Insert Position.
- Memory Usage: 14.5 MB, less than 5.97% of Python3 online submissions for Search Insert Position.