Leetcode—29. 两数相除【中等】

2023每日刷题(九十四)

Leetcode---29. 两数相除

叛逆期实现代码

cpp 复制代码
class Solution {
public:
    int divide(int dividend, int divisor) {
        if(dividend == INT_MIN && divisor == -1) {
            return INT_MAX;
        } 
        return dividend / divisor;
    }
};

运行结果

倍增算法实现代码

cpp 复制代码
class Solution {
public:
    int divide(int dividend, int divisor) {
        if(dividend == INT_MIN && divisor == -1) {
            return INT_MAX;
        } 
        if(dividend == INT_MIN && divisor == 1) {
            return INT_MIN;
        }
        long long res = 0;
        long long a = labs((long long)dividend);
        long long b = labs((long long)divisor);
        if(a < b) {
            return 0;
        }
        while(a - b >= 0) {
            long long x = 0;
            while(a - (b << 1 << x) >= 0) {
                x++;
            }
            res += 1 << x;
            a -= b << x;
        }
        if((dividend > 0) ^ (divisor > 0)) {
            res = -res;
        }
        
        return res > INT_MAX ? INT_MAX: res;
    }
};

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
一个人旅程~几秒前
如何永久关闭bitlocker并防止出现更新后被强制加密?
linux·windows·经验分享·电脑
Asa121382 分钟前
Nature Microbiology|跨微生物界菌株水平传播推断的新算法TRACS
算法
_君莫笑3 分钟前
Qt+Qml前后端分离上位机软件技术方案
c++·qt·用户界面·qml
叼烟扛炮15 分钟前
C++ 知识点22 函数模板
开发语言·c++·算法·函数模版
Tisfy18 分钟前
LeetCode 2553.分割数组中数字的数位:模拟(maybe+翻转)——java也O(1)
java·数学·算法·leetcode·题解·模拟·取模
平行侠23 分钟前
33水库抽样 - 从未知大小的流中等概率采样
数据结构·算法
吴声子夜歌30 分钟前
Java——Integer与二进制算法
java·算法
Controller-Inversion32 分钟前
42. 接雨水
数据结构·算法·leetcode
Controller-Inversion32 分钟前
33. 搜索旋转排序数组
数据结构·算法·leetcode
天真小巫37 分钟前
2026.5.10总结
职场和发展