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;
    }
};

运行结果

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

相关推荐
NashSKY4 分钟前
EM 算法完整推导与本质剖析
算法·机器学习·概率论
eggrall5 分钟前
Linux进程信号——像收快递一样理解 Linux 信号
linux·开发语言·c++
‎ദ്ദിᵔ.˛.ᵔ₎9 分钟前
c++ 11左值和右值
c++
小杨互联网13 分钟前
你的旧 Kindle 还能用,但平台说它该退休了
大数据·经验分享·科技·ai
foundbug99916 分钟前
MATLAB实现:基于图像对比度和波段相关性的高光谱波段选择算法
开发语言·算法·matlab
Hical_W17 分钟前
C++ Web 框架性能实测(Benchmark)
c++·开源
嘿嘿嘿x320 分钟前
Linux-实践
linux·运维·算法
lzh2004091943 分钟前
手撕线程池:巩固Linux线程知识
linux·c++
Godspeed Zhao1 小时前
从零开始学AI14——最大似然估计与对数损失函数
算法·逻辑回归·最大似然