LeetCode 29. 两数相除(位运算)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 29. 两数相除(位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算符。
返回被除數 dividend 除以除數 divisor 得到的商。
示例 1: 輸入: dividend = 10, divisor = 3 輸出: 3示例 2: 輸入: dividend = 7, divisor = -3 輸出: -2說明: 被除數和除數均為 32 位有符號整數。 除數不為 0。 假設我們的環境只能存儲 32 位有符號整數,其數值范圍是 [?2^31, 2^31 ? 1]。 本題中,如果除法結果溢出,則返回 2^31 ? 1。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/divide-two-integers
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 將除數乘以n次2(左移操作),直到它大于被除數,那么商加上1<<(n-1)
- 被除數減少(除數<<(n-1))
總結
以上是生活随笔為你收集整理的LeetCode 29. 两数相除(位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LintCode 802. 数独(回溯)
- 下一篇: LeetCode 354. 俄罗斯套娃信