LeetCode第三十五題 Python實現

2021-10-19 07:41:37 字數 1569 閱讀 8642

title: leetcode no.35

categories:

tags:

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

示例 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

# 二分查詢索引值

def binarysearch(self,nums,l,r,target):

if l < r:

mid = int((r+l)/2)

if nums[mid] < target:

return self.binarysearch(nums,mid+1,r,target)

elif nums[mid] > target:

return self.binarysearch(nums,l,mid-1,target)

else:

return mid

elif r == l:

if nums[r] == target:

return l

else:

return l

else:

return l

def searchinsert(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: int

核心思想:

使用二分法查詢目標值,如果找到則返回索引值,如果沒找到,則返回和它最接近數值的座標(小於它的)

"""index = self.binarysearch(nums,0,len(nums)-1,target)

if nums[index] == target:

return index

else:

if index >= int(0+len(nums)-1)/2:

if target > nums[len(nums)-1]:

index = len(nums)

else:

if nums[index] > target:

pass

else:

index += 1

return index

if __name__ == '__main__':

s = solution()

print(s.searchinsert([1,3,5,7,9],10))

Leetcode第三十五題 搜尋插入位置

題目 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 2 輸出 1 示例 3 輸入 1,3,5,6 7 輸出 4 示例 4...

第三十五題 UVA201 正方形 Squares

pdf 題目描述 乙個兒童棋盤遊戲,包含了由點組成的正方形矩陣,由線段連線了一些相鄰的點。遊戲的乙個環節是,要求玩家數出由這些線段所形成的特定大小的正方形有多少個。例如,按下圖所示,有 3 個正方形,其中大小為 1 的有 2 個,大小為 2 的有 1 個。正方形的 大小 是指構成它的一條邊的線段數。...

劍指Offer第三十五題 陣列中的逆序對

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 10 4 對於 75的...