LeetCode 之 Divide Two Integers

(LeetCode) Divide Two Integers (Java)思路讲解及实现 本文将详细介绍Divide Two Integers 的解题思路及Java实现。 题目如下: Divide two integers without using multiplication, division and mod operator. (在不使用乘法,除法和取余操作的情况下实现整数的除法运算) If it is overflow, return MAX_INT.(整型 阅读详情

题目链接:Divide Two Integers
就是在不使用乘法,除法和取模运算的基础上进行除法运算。

解法一:最基础的方法是使用被除数-除数指导得到的结果小于除数为止。

解法二:运用了移位运算,每次左移一位相当于乘以2;
参考了http://blog.youkuaiyun.com/yuqieshidi/article/details/48829465
例如28 = 3×9 = 3×(8+1) = 3×(2^3+2^0) = 3×2^3+3×2^0;
那么首先对除数进行左移运算直到其大于被除数,如上面的例子,3首先向左移动3位,得到24;接着因为28-24=4>3,因为将被除数置为4,除数接着上诉移位运算。
在整个过程中,需要注意:
1、除数为0的情况;
2、被除数为Integer.MIN_VALUE的情况。
3、除数和被除数为负数的情况。

代码如下:

class Solution {
    public int divide(int dividend, int divisor) {
        long re = 0;
        if((dividend==Integer.MIN_VALUE&&divisor==-1)||divisor==0)
            return Integer.MAX_VALUE;

        long absdividend = Math.abs((long)dividend);
        long absdivisor = Math.abs((long)divisor);

        int i = 0;
        while(absdividend>=absdivisor){
            i = 0;
            while(absdividend>=(absdivisor<<i)){
                i++;
            }
            re += 1<<(i-1);
            absdividend -= absdivisor<<(i-1);
        }

        if((dividend>0&&divisor<0)||(dividend<0&&divisor>0))
            return (int)-re;
        else
            return (int)re;


    }
}
蓝桥杯单片机学习13——NE555方波发生器&频率测量 NE555详解、引脚图介绍、原理图及工作原理讲解、方波产生的原理、定时器测量频率的原理及使用方法、代码实现 阅读详情

相关推荐

Golang实战:用Quic-Go v0.46.0搭建高性能文件传输服务(附完整代码)

本文详细介绍了如何使用Golang和Quic-Go v0.46.0构建高性能文件传输服务,涵盖服务端和客户端的完整实现。通过QUIC协议的多路复用、零RTT连接等特性,显著提升文件传输效率,特别适合高延迟或不稳定网络环境。文章提供完整代码示例和性能调优技巧,帮助开发者快速部署高效的文件传输解决方案。

weixin_33737134的博客 449

29. Divide Two Integers(js)

29.Divide Two Integers Given two integersdividendanddivisor, divide two integers without using multiplication, division and mod operator. Return the quotient after dividingdividendbydivisor. ...

weixin_30906701的博客 163

面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。 1.将一根木棒截成三段,问能够组成三角形的概率; 来源:https://blog.youkuaiyun.com/weixin_41245919/article/deta

weixin_41558411的博客 4906

Divide Two Integers

计算两个数字的商。

不积跬步无以至千里 1112

物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01)

终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。

leida_3669的博客 2218

高频面波成像实战:从频散曲线到全波形反演

面波勘探是近地表工程勘察的重要手段,其核心原理在于不同频率的面波对地下介质的敏感深度不同,由此形成的频散曲线能够反映浅层剪切波速结构。相较于传统钻探与折射波法,高频面波成像具有无损、高效、对低速夹层敏感等优势,广泛应用于路基检测、空洞探测、滑坡调查等领域。在实际工程中,从野外采集的排列设计、震源选型,到频散谱提取与频散曲线反演,每一步都直接影响成像精度。然而频散反演受限于一维层状假设,难以刻画横向剧烈变化的地质体。全波形反演通过拟合完整波形信息,能够突破频散曲线的分辨率边界,获得更精细的近地表速度模型。本文

weixin_29090917的博客 270

Divide Two Integers:实现除法

Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 思路:这道题难点在于边界处理。 首先强调: 1)-Integer.MIN_VALUE!=Integer.MAX_VALUE ,所以当被除数为Integer.MIN_

小雄鹿的博客 334

自然语言处理NLP星空智能对话机器人系列:Gavin大咖 Transformer 101问答集 第一问

自然语言处理NLP星空智能对话机器人系列:Transformer 101问答 [让天下没有难学的Transformer] 你问我答系列之一 Gavin大咖第一问: Transformer中的可训练Queries、Keys和Values矩阵从哪儿来? 以上是智华解答,供同学们参考。 星空智能对话机器人系列博客 NLP星空智能对话机器人系列:第二次星空智能对话机器人Zoom线上演示安排 NLP星空智能对话机器人系列:StarSpace: Embed All The Things NLP星空智能对

大模型与Agent智能体 991

[leetcode javascript解题]Divide Two Integers

leetcode第29题,“Divide Two Integers” 的描述如下: Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 题目就是要大家不使用乘除法和模运算来实现除法。同时要考虑边界条件。 这道题在lee

zzxboy1的博客 969

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1499

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

图解LeetCode:Divide Two Integers

文章目录我的思路算法优化代码实现总结 这是LeetCode的第29号题目,Divide Two Integers,题目要求计算两个数相除是多少,最后返回整数就可以。 比如给定10和4,那10/4是2;给定7和-3,那么7/(-3)应该返回2,题目要求不能用乘法、除法和取余操作。如果在面试时遇到这个题目该怎么求解呢?   我的思路 首先我们可以将除数和被除数都转为正数以简化操作,而对于除法...

码农的荒岛求生 398

使用 MATLAB/Simulink 对基于同步发电机的双机系统进行建模

双机系统(Two-Machine System)是电力系统中用于研究动态稳定性和控制策略的一个典型模型。它由两台同步发电机通过输电网络相互连接,模拟实际电网中的互联操作。当发生短路故障时,系统的暂态稳定性会受到挑战,可能导致发电机失步或电压崩溃。本教程将带你使用 MATLAB/Simulink 对基于同步发电机的双机系统进行建模,并对其在短路故障条件下的暂态稳定性进行仿真和分析。

amy_mhd的博客 216

Leetcode 29 —— Divide Two Integers

29. Divide Two Integers My Submissions Question Total Accepted: 62780 Total Submissions: 403300 Difficulty: Medium Divide two integers without using multiplication, division and mo

decode 1042

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Divide Two Integers -- LeetCode

原题链接: http://oj.leetcode.com/problems/divide-two-integers/  这道题属于数值处理的题目,对于整数处理的问题,在Reverse Integer中我有提到过,比较重要的注意点在于符号和处理越界的问题。对于这道题目,因为不能用乘除法和取余运算,我们只能使用位运算和加减法。比较直接的方法是用被除数一直减去除数,直到为0。这种方法的迭代次数是结

Code Ganker 3万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode:29. Divide Two Integers

LeetCode:29. Divide Two Integers Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator. Return the quotient after dividing dividend by d...

Wisimer 182

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

leetcode学习笔记29 Divide Two Integers

leetcode学习笔记29问题方法1方法2 问题 leetcode Two Sum 方法1 时间复杂度O(n2)O(n^{2})O(n2). 空间复杂度O(1)O(1)O(1). 方法2 时间复杂度O(n)O(n)O(n). 空间复杂度O(n)O(n)O(n).

kuma的博客 281

leetcode 29 - Divide Two Integers

leetcode题目汇集 - Divide Two Integers leetcode 29 - Divide Two Integers 题目要求 Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 思

知足常乐,知行合一 275

leetcode-【中等题】Divide Two Integers

题目 Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT 链接 https://leetcode.com/problems/divide-two-integers/ 答案 1、int的最大值MAX_INT为p...

aoyuan4706的博客 141

[leetcode] 29. Divide Two Integers

Description Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator. Return the quotient after dividing dividend by divisor. The integer di...

Learning from the mistakes 307

leetcode29. Divide Two Integers

leetcode29. Divide Two Integers 思路:辗除法可得到商,二进制辗除法和十进制是类似的,只是十进制的时候是每次进位是10,而二进制每次进位是2,且十进制进位方式是*10,二进制是左移一位。 x = ai*10^i+… x = ai*2^i+…. 一个道理引申出题:只需用乘法,不许用除法,获取商。则可用类似原理解题

慕鹞 182

leetcode-29. Divide Two Integers

leetcode-29. Divide Two Integers题目: Divide two integers without using multiplication, division and mod operator. 第二遍做的时候还是没想起来。。其实就是二分法。但是跟一般的二分有点不一样。里面要嵌套一个while保证除数以2的幂的速度增长。这样先找结果的最高位,在找次高位以此类推。直到

千念飞羽的专栏 313

LeetCode的一个题目 Divide Two Integers

昨天开始刷LeetCode,刚开始做的几个题都没有问题,思路都很流畅,知道遇到了Divide Two Integers这个题目。 Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 题目的描述很简单,就是在不使

Seek42的专栏 495

LeetCode 29. Divide Two Integers(二分)

题目来源:https://leetcode.com/problems/divide-two-integers/ 问题描述 29.Divide Two Integers Medium Given two integersdividendanddivisor, divide two integers without using multiplication, division and ...

da_kao_la的博客 395

Leetcode1-100: 29. Divide Two Integers

Leetcode1-100: 29. Divide Two Integers问题描述解题思路代码实现    错误实现    正确实现分析 问题描述 Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator. Return the quotient afte

Y123iwantit的博客 233

leetcode之Divide Two Integers

Divide Two Integers Divide two integers without using multiplication, division and mod operator. 分析:

fangjian1204的专栏 1254
上一篇: LeetCode 之 Remove Nth Node From End of List
下一篇: LeetCode 之 Search for a Range
小菜鸟要高飞
博客等级 码龄12年 14粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值