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