-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay-10_Search_Insert_position.py
63 lines (46 loc) · 1.37 KB
/
Day-10_Search_Insert_position.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
'''
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
'''
import bisect
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
return bisect.bisect_left(nums, target)
'''
The desired insertion position is easily found with the bisect.bisect_left function. Although this is a trivial application of this function, more difficult leetcode problems leverage this function, so it is worthwhile to know about.
https://docs.python.org/2.7/library/bisect.html?highlight=bisect#bisect.bisect_left
'''
'''
Another Solution -
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
if target in nums:
return nums.index(target)
else:
for i,j in enumerate(nums):
if j>target:
return i
return i+1
'''