給定兩個整數,被除數dividend
和除數divisor
。將兩數相除,要求不使用乘法、除法和 mod 運算子。
返回被除數dividend
除以除數divisor
得到的商。
示例 1:
輸入:dividend = 10, divisor = 3輸出:3示例 2:
輸入:dividend = 7, divisor = -3輸出:-2說明:
不可以直接用除法乘法,看了眼解題報告可以用位運算,i<<1表示i*2,i>>1表示i/2,注意溢位情況,溢位情況也就被除數字integer.min_value除數為+-1的時候。
以後不在晚上寫演算法了,眼睛疼,不好好寫報告。class solution
reslut += count;
udividend -= s;
}if (dividend > 0 && divisor > 0 || (dividend < 0 && divisor < 0)) return reslut;
else return reslut * -1 ;
}}
LeetCode 29 兩數相除
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3 輸出 3 示例 2 輸入 dividend 7,divisor 3 輸出...
leetcode 29 兩數相除
給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。示例 1 輸入 dividend 10,divisor 3輸出 3示例 2 輸入 dividend 7,divisor 3輸出 2說...
LeetCode 29 兩數相除
題目要求不能使用乘法 除法和除餘運算,但我們可以將除法轉移到對數域。frac e e 這樣就轉化為指數 對數和減法運算了。因為只能對正整數取對數,因此我們首先要將兩個數都取絕對值,最後再加上符號。同時,題目要求只能儲存 32 位有符號整數,因此,當資料大於上邊界時,需要進行特殊處理。class so...