Divide Two Integer Leetcode Solution
Divide Two Integer:
Given two integers dividend and divisor, divide two integers without using multiplication, division, and mod operator.
The integer division should truncate toward zero, which means losing its fractional part. For example, 8.345 would be truncated to 8, and -2.7335 would be truncated to -2.
Divide Two Integers Leetcode Solution :
Constraints :
- -231 <= dividend, divisor <= 231 – 1
- divisor != 0
Example 1:
Input: dividend = 7, divisor = -3
Output: -2
Explanation: 7/-3 = -2.33333.. which is truncated to -2.
Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For this problem, if the quotient is strictly greater than 231 – 1, then return 231 – 1, and if the quotient is strictly less than -231, then return -231..
Constraints:
- -231 <= dividend, divisor <= 231 – 1
- divisor != 0
Approach :
We can solve this question using Multiple Approaches.
- Solved using Math + Bit Manipulation.
- Solved using Math.
- We can easily understand all the approaches by seeing the code which is easy to understand with comments.
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Code :
class Solution { public: int divide(int dividend, int divisor) { if(dividend == INT_MIN && divisor == -1){ return INT_MAX; } long long dvd = labs(dividend), dvs = labs(divisor), result = 0; int sign = (dividend > 0) ^ (divisor > 0) == 0 ? 1 : -1; while(dvd >= dvs){ long long temp = dvs, mul = 1; while(temp << 1 <= dvd){ temp <<= 1; mul <<= 1; } dvd -= temp; result += mul; } return sign*result; } };
class Solution { public int divide(int dividend, int divisor) { if (dividend == -2147483648 && divisor == -1) { return (2147483647); } int res = dividend / divisor; return res; } }
class Solution: def divide(self, dividend: int, divisor: int) -> int: sign = -1 if (dividend >= 0 and divisor < 0) or (dividend < 0 and divisor >= 0) else 1 dividend = abs(dividend) divisor = abs(divisor) result = len(range(0, dividend-divisor+1, divisor)) if sign == -1: result = -result minus_limit = -(2**31) plus_limit = (2**31 - 1) result = min(max(result, minus_limit), plus_limit) return result
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Login/Signup to comment