leetcode 二分查詢

2021-08-27 04:12:15 字數 745 閱讀 1321

leetcode-29

給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法、除法和 mod 運算子。

返回被除數dividend除以除數divisor得到的商。

演算法設計:

用2進製的左移操作,每次對被除數左移1位,比較除數與被除數左移的後的大小關係,並在結果中加上左移的資料,直到被除數小於除數為止。

源**:

def divide(self, dividend, divisor):

""":type dividend: int

:type divisor: int

:rtype: int

"""positive=(dividend <0) is (divisor<0)

dividend,divisor=abs(dividend),abs(divisor)

res=0

while dividend>=divisor:

temp,i=divisor,1

while dividend>=temp:

dividend -=temp

res+=i

i=i<<1

temp=temp<<1

if not positive:

res=-res

return min(max(-2147483648,res),2147483647)

LeetCode 查詢 二分查詢

給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target 寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。示例 輸入 nums 1,0,3,5,9,12 target 9 輸出 4 解釋 9 出現在 nums 中並且下標為 4 輸入 nu...

leetcode 二分查詢

二分查詢基本實現 public intbinarysearch int nums,int key return 1 變種二分查詢,找出陣列中key重複元素最左位置 注意邊界 public intbinarysearch int nums,int key if nums l key return l ...

LeetCode 二分查詢

給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target 寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。示例 1 輸入 nums 1,0,3,5,9,12 target 9 輸出 4 解釋 9 出現在 nums 中並且下標為 4 示例 ...