LeetCode-29.Divide Two Integers
2016-06-04 21:39
411 查看
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
public int Divide(int dividend, int divisor)
{
if (divisor == 0 || (dividend == int.MinValue && divisor == -1))
return int.MaxValue;
int res = 0;
bool isNeg = (dividend < 0) ^ (divisor < 0);
long dvd = Math.Abs((long)dividend);
long dvs = Math.Abs((long)divisor);
while (dvs <= dvd)
{
long temp = dvs, mul = 1;
while (dvd >= temp << 1)
{
temp <<= 1;
mul <<= 1;
}
dvd -= temp;
res += (int)mul;
}
return isNeg ? -res : res;
}
参考
https://leetcode.com/discuss/38997/detailed-explained-8ms-c-solution
http://blog.csdn.net/linhuanmars/article/details/20024907
If it is overflow, return MAX_INT.
public int Divide(int dividend, int divisor)
{
if (divisor == 0 || (dividend == int.MinValue && divisor == -1))
return int.MaxValue;
int res = 0;
bool isNeg = (dividend < 0) ^ (divisor < 0);
long dvd = Math.Abs((long)dividend);
long dvs = Math.Abs((long)divisor);
while (dvs <= dvd)
{
long temp = dvs, mul = 1;
while (dvd >= temp << 1)
{
temp <<= 1;
mul <<= 1;
}
dvd -= temp;
res += (int)mul;
}
return isNeg ? -res : res;
}
参考
https://leetcode.com/discuss/38997/detailed-explained-8ms-c-solution
http://blog.csdn.net/linhuanmars/article/details/20024907
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解