Middle-题目127:29. Divide Two Integers

题目原文:
Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.
题目大意:
不用乘法、除法、取模实现两个数的除法,如果溢出则返回MAX_INT(232-1)
题目分析:
直接用a/b水过去的,正确的解法好像是模拟二进制的竖式除法,用位运算和加减解决。
源码:(language:java)

public class Solution {
    public int divide(int dividend, int divisor) {
        return (dividend==-2147483648 && divisor == -1)?Integer.MAX_VALUE:dividend/divisor;
    }
}

成绩:
2ms,beats 75.64%,众数3ms,66.70%
Cmershen的碎碎念:
原则上除法是CPU的底层上用硬件实现的,但可以用高级语言代码去模拟。据论坛中所说,实现除法、乘法、乘方等数值运算的问题在面试中还是比较常见的,有时间整理一下。

阅读更多
版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs https://blog.csdn.net/cmershen/article/details/51548796
个人分类: Leetcode
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Middle-题目127:29. Divide Two Integers

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭