[leetcode]29. Divide Two Integers
来源:互联网 发布:江歌的遇害事件知乎 编辑:程序博客网 时间:2024/06/05 01:23
Divide two integers without using multiplication, division and mod operator.
If it's overflow, return INT_MAX.
代码转载
class Solution {public: int divide(int dividend, int divisor) { long long int ret = divideLong(dividend, divisor); if(ret > INT_MAX || ret < INT_MIN) return INT_MAX; return ret; } long long int divideLong(long long dividend, long long divisor) { // extreme cases if(divisor == 0) return INT_MAX; if(dividend == 0) return 0; int sign = 1; if((dividend < 0) ^ (divisor < 0)) sign = -1; dividend = abs(dividend); divisor = abs(divisor); long long ret = 0; while(dividend > divisor) { int shift = 0; long long part = 1; while(dividend > (divisor << shift)) { part <<= 1; shift ++; } if(dividend == (divisor << shift)) { ret += part; break; } else {// dividend < (divisor << shift) part >>= 1; shift --; } ret += part; dividend -= (divisor << shift); } if(dividend == divisor) ret ++; return sign * ret; }};
0 0
- [LeetCode]29.Divide Two Integers
- LeetCode --- 29. Divide Two Integers
- LeetCode 29.Divide Two Integers
- [Leetcode] 29. Divide Two Integers
- 【leetcode】29. Divide Two Integers
- *LeetCode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- [LeetCode]29. Divide Two Integers
- LeetCode 29. Divide Two Integers
- LeetCode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- LeetCode-29.Divide Two Integers
- leetcode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- [leetcode]29. Divide Two Integers
- leetcode 29. Divide Two Integers
- LeetCode - 29. Divide Two Integers
- 沉香:且藏且珍惜
- 使用表表达式修改数据
- 决策树分类器-Java实现
- 增强版ListView-RecyclerView
- SpringBoot学习系列基础Demo Mysql数据库
- [leetcode]29. Divide Two Integers
- 转载-----IIC协议及其对ACK应答信号的处理
- 深度学习菜鸟的信仰地︱Supervessel超能云服务器、深度学习环境全配置
- 过滤器
- 常用正則表達式
- Tomcat修改80端口的一系列问题
- linux centos下mysql数据库的主从复制环境搭建
- Properties文件操作
- opencv学习笔记(十八)cvSplit()、cvMerge()彩色图片通道分割与融合