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的...