【leetcode】29. Divide Two Integers
来源:互联网 发布:windows刷mac os 编辑:程序博客网 时间:2024/05/23 10:35
使用原始加法进行累加会超时,所以后来使用位移来进行累加。
int divide(int dividend, int divisor) { if(divisor == 0 || (divisor == -1 && dividend == INT_MIN)) return INT_MAX; int sign = ((dividend < 0) ^ (divisor < 0)) ? -1 : 1; long long n1 = llabs(dividend);//必须是llabs,不然会超时 long long n2 = llabs(divisor); if(n1 < n2) return 0; long long n3 = n2; int res = 0; int cnt = 0; while((n2<<1) <= n1) { n2 = n2 << 1; res += pow(2,cnt++);//位移以后可以进行指数级别的快速累加 } while((n2) <= n1) { res++; n2 += n3; } return sign == -1 ? -res : res; }注视处踩坑N久,故记录一下。
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
- Busybox for ARM on QEMU
- Debugging ARM programs inside QEMU
- LintCode 15-全排列 16-带重复元素的全排列
- SpringMVC异常报406 (Not Acceptable)的解决办法
- Qemu调试Linux内核
- 【leetcode】29. Divide Two Integers
- 插入排序、冒泡排序以及它们的区别
- spring-aop的几个重要概念
- Linux Module详解
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
- web.xml中load-on-startup标签的含义
- 一个清静的下午
- 机器学习岗面试点滴聚集
- 【Spring学习】之 注解或XML生成Bean