LCR 001. 两数相除

文章目录

题意

题目链接

思路

注意边界判断

代码

C++ 复制代码
class Solution {
public:
    int divide(int a, int b) {
        if (a == INT_MIN && b == -1)
            return INT_MAX;
        int flag = false;
        if (a >= 0 && b >= 0 ||
            a <= 0 && b <= 0)
            flag = true;
        int ans = 0;
        a = -abs(a);
        b = abs(b);
        if (b == 1)
            return flag ? -a : a;
        if (abs(a) == abs(b))
            return flag ? 1 : -1;
        while (a + b <= 0)
        {
            int i = 0;
            while (a + (b << i) < 0 && INT_MAX - (b << i) > (b << i))
                i++;
            if (i)
                i--;
            a += (b << i);
            ans += 1 << i;
        }
        return flag ? ans : -ans;
    }
};
相关推荐
鱼鱼块2 分钟前
《最小栈的巧妙设计:用辅助栈实现 O(1) 获取最小值》
javascript·算法·面试
San303 分钟前
反转字符串与两数之和:两道简单题背后的 JavaScript 思维深度
javascript·算法·面试
喜欢吃燃面10 分钟前
算法竞赛中的堆
c++·学习·算法
资深web全栈开发12 分钟前
LeetCode 1590:使数组和能被 p 整除(前缀和 + 哈希表优化)
算法·leetcode·前缀和·算法优化·哈希表·go 语言·取模运算
CoderYanger25 分钟前
递归、搜索与回溯-综合练习:27.黄金矿工
java·算法·leetcode·深度优先·1024程序员节
zs宝来了27 分钟前
HOT100系列-堆类型题
数据结构·算法·排序算法
Christo340 分钟前
ICML-2019《Optimal Transport for structured data with application on graphs》
人工智能·算法·机器学习·数据挖掘
sin_hielo43 分钟前
leetcode 1590
数据结构·算法·leetcode
吃着火锅x唱着歌1 小时前
LeetCode 2748.美丽下标对的数目
数据结构·算法·leetcode
做怪小疯子1 小时前
LeetCode 热题 100——二叉树——二叉树的中序遍历
算法·leetcode·职场和发展