剑指 Offer II 001. 整数除法 减法&&位运算

Java+SpringBoot实现四则运算 项目地址:https://gitee.com/liujiajun2/four_operations.git 题目描述 个人作业1--四则运算题目生成程序(基于控制台),关于这个题目,要求是基于控制台,但是我善做主张(自以为是?)的用网页的形式去呈现。 需求分析 学生登录这个平台,可以在上面看到老师布置的题目,学生可以进行做题,然后提交题目,会有相应的参考答案。而老师具有查看同学们的答题情况及其... 阅读详情

1.问题描述

给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。

注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。

本题中,如果除法结果溢出,则返回 231 − 1

2.测试用例

示例 1
输入:a = 15, b = 2
输出:7
解释:15/2 = truncate(7.5) = 7
示例2
输入:a = 7, b = -3
输出:-2
解释:7/-3 = truncate(-2.33333..) = -2
示例3
输入:a = 0, b = 1
输出:0
示例4
输入:a = 1, b = 1
输出:1

3.提示

  • -231 <= a, b <= 231 - 1
  • b != 0

4.代码

1.减法思路
int res = 0;
//越界问题
if (a == Integer.MIN_VALUE && b == -1) {
    return Integer.MAX_VALUE;
}
//标记负数
boolean tag = (a > 0) ^ (b > 0);
//规避Math.abs Integer.MIN_VALUE 等于他自己问题
if (a > 0) {
    a = -a;
}
if (b > 0) {
    b = -b;
}
//小于
while (a <= b) {
    a -= b;
    res++;
}
return tag ? -res : res;
2.位运算
public int divide2(int a, int b) {
    int res = 0;
    //负数标记
    boolean flag = (a > 0) ^ (b > 0);
    if (a == 1 << 31 && b == -1) {
        return (1 << 31) - 1;
    }
    //忽略正负数
    a = Math.abs(a);
    b = Math.abs(b);
    for (int i = 31; i >= 0; i--) {
        //两个注意点
        //1.b做有符号左移(b << i) 存在溢出问题
        //2.b有可能为负数,( a >>> i) >= b  有可能一直成立
        if ((a >>> i) - b >= 0) {
            a -= (b << i);
            res += (1 << i);
        }
    }
    return flag ? -res : res;
}
瑞芯微RK809音频驱动 瑞芯微RV1126中的RK809音频驱动开发 阅读详情

相关推荐

告别手动操作!用Python脚本批量处理Siemens NX零件文件(导入/导出/移除参数)

本文详细介绍了如何利用Python脚本实现Siemens NX零件文件的批量处理,包括导入、导出和移除参数等操作。通过NX Open API和Python UF接口,工业设计师可以大幅提升工作效率,告别繁琐的手动操作。文章提供了完整的实战指南,涵盖环境配置、核心功能实现以及性能优化技巧,特别适合需要进行Siemens-NXUG二次开发的工程师参考。

weixin_28222493的博客 261

在Springboot下实现一个计算器实现简单的加减乘除功能

需求描述: 前台显示一个基本的输入框和显示计算结果的框,用户输入基本的数据,选择相应的计算方式后,向后台发送请求; 后台获取相应的数据进行计算,向前台返回相应的结果。 1、项目框架内容 springboot项目 2、前台技术实现 使用ajax实现异步操作显示计算结果; ajax的基本使用方式:https://www.cnb...

qq_36964872的博客 6951

【Unity报错】Unity导入海康SDK 报错 DllNotFoundException: PlayCtrl assembly

2.尝试按网上其他的办法(包括使用depengs查看dll依赖等)1.先检查Plugins文件夹中是否存在PlayCtrl文件。3.如果网上查阅的办法都不能解决,请继续往下看。更换低版本的SDK库文件。

weixin_42968584的博客 1126

SpringBoot 入门04

SpringBoot笔记 一、SpringBoot入门 1、SpringBoot简介 简化spring应用的框架 整个Spring技术栈的大整合 j2ee开发的一站式解决方案 2、微服务 2014 马丁·福勒(martin fowler) 微服务: 架构风格 一个应用应该是一组小型微服务,可以通过HTTP的方式去进行访问 单体应用: ALL IN ONE 微服务:每一个功能元素最终都是一个独立运行或者升级的软件单元 3、 环境的准备 环境: - jdk1.8 : SpringBoot官方推荐的1.7以上

Reckless_hrl的博客 1678

在ArcGIS Pro软件中进行滑坡的敏感性和易发性分析

滑坡的敏感性和易发性分析需要综合地形、水文、地质及环境等多维数据,本文罗列了基于ArcGIS Pro软件进行的一系列可执行分析。

weixin_49609713的博客 1732

解密UFS Explorer:Drobo BeyondRAID数据恢复实战指南

本文详细介绍了使用UFS Explorer Professional Recovery软件中的Drobo BeyondRAID助手进行数据恢复的完整实战流程。当Drobo设备因BeyondRAID配置信息丢失而无法访问时,该工具能安全、只读地扫描硬盘,虚拟重建存储池,帮助用户找回宝贵数据。指南涵盖了从前期准备、硬盘选择、配置扫描到数据安全导出的每一步关键操作与常见问题解决方案。

weixin_29219539的博客 269

Java中整数相除并保留两位小数的实现方式、保留两位小数:Java中整数相除的处理方法、解决Java整数相除后精度丢失的问题、Java数值计算:整数相除保留指定小数位数的技巧

在选择使用哪种方式时,需要根据具体的业务需求和数值计算的精度要求进行权衡和选择。如果对精度要求不高,且代码简单直接,可以考虑使用浮点数类型和DecimalFormat进行格式化;如果对精度要求较高,且需要进行复杂的数值计算,建议使用BigDecimal类来保证计算的精确性。

weixin_42279822的博客 2万+

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1798

推荐一款 Postman 的开源替代品: Postwoman

推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 最全面试题新鲜出炉:70+算法题、近30种大厂面试笔试常考知识点 1. 前言 大家都知道,Postman是一个非常受欢迎的API接口调试工具,提供有Chrome扩展插件版和独立的APP,不过它的很多高级功能都需要付费才能使用。 ...

xingduan5153的博客 1450

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:文本嵌入与重排序模型的技术解析与应用实践

一个内容严谨、方向前沿、极具实践价值的AI大模型技术分享站 3094

剑指 OfferII 001. 整数除法

0. 题目描述 剑指 Offer II 001.整数除法 题目描述:整数相除,结果取整(舍弃小数位) 题目要求:不得使用 *,/,% 约束条件:[ -231 , 231 -1],若除法结果溢出,返回 231 -1 1. 内容说明 以下四种题解来源于 简单易懂Java/C++ /Python/js/go - 整数除法(剑指) 未看解答前本人在尝试位运算思路时,在处理移位除数2时就不知道怎么处理了,后来看解答了解思路后,深入了解了边界问题 2. 解法一:减法代替除法 版本① :a , b 取

qq_43156556的博客 514

PCL:SAC-IA+ICP配准

【代码】SAC-IA+ICP配准。

m0_71596228的博客 1018

Leetcode 剑指 Offer II 001. 整数除法

题目难度: 简单休息了一个月, 我又满血回来了, 今天我们来开始一个新的系列 - Leetcode 的剑指 Offer(专项突击版)!!!它相比剑指 Offer (Easy~Medium) 或者程序员面试金典 (Medium~Hard), 难度都要大一些 (Medium+~Hard), 更适合进阶, 但考虑到现在越来越卷的面试, 推荐程度更高了, 6 颗星!!!

随便发挥的博客 1066

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

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

剑指 Offer II 001. 整数除法

剑指 Offer II 001. 整数除法 题目 给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。 注意: 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335)= -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1 示例 1: 输入:a = 15,

up!up!up! 531

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【剑指Offer】整数(一)整数除法 - 两数相除 - JavaScript

从今天开始我们一起来刷《剑指offer(专项突破版)》,原书是Java版本的,这里就是以JavaScript角度来看这些算法题。第一题:整数除法!

YK菌的博客 1569

leetcode-剑指 Offer II 001. 整数除法

给定两个整数a和b,求它们的除法的商a/b,要求不得使用乘号'*'、除号'/'以及求余符号'%'。

C、Java知识分享 552

【刷穿剑指】剑指 Offer II 001. 整数除法

今天开坑 剑指 Offer 题目二刷,剑指的每一个题目都是非常经典且经常考察的题目,一共 119 道题目,针对不同的数据结构与算法,有许多难度不一的好题目。希望这次二刷能巩固第一次所学,并撰写自己的题解!大家和我一起加油吧!同时我会把力扣原题的链接附上。 整数篇 - 剑指 Offer II 001. 整数除法 原题链接:剑指 Offer II 001. 整数除法 解析 有一说一,本书开篇第一题虽说标签是简单题,但绝对有中等难度。 首先注意到不能使用的符号,如果不考虑位运算的话,普通解法大概就是循环做减法,

AI 全栈工程师修炼中 453

LeetCode刷题——剑指offer位运算题目汇总(包含快速乘、快速幂、二进制加法)

剑指offer位运算题目汇总: 剑指 Offer II 001; 剑指 Offer II 002; 剑指 Offer II 003; 剑指 Offer II 004; 剑指 Offer II 005; 剑指 Offer 15; 剑指 Offer 16; 剑指 Offer 64; 剑指 Offer 65;

艾醒的博客 6708

力扣剑指offer II-整数相关题目整理

剑指 Offer II 001. 整数除法 给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。 注意: 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1 解题关键 初始思路可以是用循环每一次都在被除数的

SLAM小土堆 424

剑指 Offer(专项突击版)第1|2题

现在前端要求变高了,找工作的时可能会碰上算法题,每天刷几道算法题做足准备,今天是《剑指 Offer(专项突击版)》第1|2题。如果你现在正在找工作,可以私信“web”或者直接添加小助理进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。

Web面试那些事儿的博客 989

【LeetCode】【剑指 Offer II】001. 整数除法 (JavaScript)

原题 给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'、除号 '/' 以及求余符号 '%' 。 注意: 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1 示例 1: 输入:a = 15, b = 2 输出:7 解释:15/2 = tr.

xsm_656的博客 619
上一篇: hadoop java.lang.UnsatisfiedLinkError: Cannot load libsnappy.so.1 (libsnappy.so.1: cannot open share
下一篇: 剑指 Offer II 002. 二进制加法 模拟法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值