Leetcode---挿入位置の検索(python 3実装)
タイトルの説明
ソート配列とターゲット値を指定し、配列内にターゲット値を見つけ、インデックスを返します.ターゲット値が配列に存在しない場合は、順番に挿入される位置を返します.
配列に重複要素がないと仮定できます.
例1:
入力:[1,3,5,6],5出力:2例2:
入力:[1,3,5,6]、2出力:1
この問題は比較的簡単で、理解しにくい点があまりないので、私たちは直接実現します.
コード実装:3つの方法で実装
ソート配列とターゲット値を指定し、配列内にターゲット値を見つけ、インデックスを返します.ターゲット値が配列に存在しない場合は、順番に挿入される位置を返します.
配列に重複要素がないと仮定できます.
例1:
入力:[1,3,5,6],5出力:2例2:
入力:[1,3,5,6]、2出力:1
この問題は比較的簡単で、理解しにくい点があまりないので、私たちは直接実現します.
コード実装:3つの方法で実装
class Solution:
'''
'''
def searchInsert(self, nums, target):
'''
, :
1. , ,
2. , +1,
:param nums:
:param target:
:return:
'''
for i in range(len(nums)):
if target <= nums[i]:
return i
return i+1
def searchInsert_1(self, nums, target):
'''
, :
1. : , , , , init_n
2. : , init_n
:param nums:
:param target:
:return:
'''
init_n = 0
for i in range(len(nums)):
if target > nums[i]:
init_n +=1
return init_n
def searchInsert_2(self, nums, target):
'''
:param nums:
:param target:
:return:
'''
start = 0
end = len(nums) - 1
while start <= end:
mid = (start + end) // 2
if nums[mid] > target:
end = mid - 1
elif nums[mid] < target:
start = mid + 1
else:
return mid
return start
li = [1,3,5]
num =0
result = Solution().searchInsert(li,num)
print(result)