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;
    }
};
相关推荐
leisoo80976 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
luj_17688 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
郝学胜-神的一滴9 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
爱编程的小新☆9 小时前
【LeetCode】从递归到 Flood Fill:5 道题吃透 DFS 的选择、回溯与标记
java·算法·leetcode·深度优先·回溯·flood fill
Water_Sunzhipeng9 小时前
2024牛客暑期多校训练营1
算法
hetao17338379 小时前
2026-08-09~08-14 hetao1733837 的刷题记录
c++·算法
技术小黑9 小时前
RNN算法实战系列06 | LSTM 实现糖尿病探索与预测
rnn·算法·lstm
evans在进步9 小时前
LeetCode 33:搜索旋转排序数组——Java 两阶段二分查找详解
java·python·leetcode
Lzh编程小栈10 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
疯狂打码的少年10 小时前
【数据结构】二叉树的性质(五大性质+计算)
数据结构·笔记·算法