当前位置: 首页 > news >正文

LCR 001. 两数相除

剑指Offer通关

力扣搜索LCR即为剑指Offer的所有题目。

LCR 001. 两数相除

快速乘

解析:

题目规定只能用32位整数,所以取值范围在-2^31 ~ 2^31 - 1 之间。这里的特殊情况为什么不考虑被除数和除数为最大值?因为后面会将所有的数都转为负数,所以考虑复数的最小值就是在考虑最大值。后面都转为负数了,就和正常的一样了。先考虑所有的特殊情况- 如果被除数为最小值-2^31:- 如果除数为1,则商为最小值-2^31- 如果除数为-1,则商为2^31, 此时溢出,所以应该返回2^31 - 1- 如果除数为最小值-2^31:- 如果被除数为最小值-2^31,那么商为1- 如果被除数为其他值,商为0其余情况,会有除数为正负、被除数为正负四种情况,处理起来比较麻烦。所以考虑将他们全转为正数或负数。这里考虑当有值为-2^31时,转为正数会变成2^31溢出,所以需要全转为负数(实际和全为正数是一样的。)再往后就是正常情况。设被除数为X 除数为Y 且X Y均为负数,商为Z,则满足Y * Z <= X <= Y * (Z + 1)所以可以在0-MAX之间二分Z,得到满足Y * Z <= X 的最大的Z。由于不能用除法,所以二分在找mid时是left + (right - left) >> 1 实现的。而且需要计算Y * Z的值,这里也不能用乘法,所以需要用到快速乘的方法。
class Solution {public int divide(int a, int b) {if(a == Integer.MIN_VALUE){if(b == 1) return Integer.MIN_VALUE;else if(b == -1) return Integer.MAX_VALUE;}if(b == Integer.MIN_VALUE){if(a == Integer.MIN_VALUE) return 1;else return 0;}boolean rev = false;if(a > 0){a = -a;rev = !rev;}if(b > 0){b = -b;rev = !rev;}int l = 1, r = Integer.MAX_VALUE, ans=0;while(l <= r){int mid = l + ((r-l) >> 1);if(quickAdd(b, mid, a)){   //小于等于ans = mid;// 注意溢出if (mid == Integer.MAX_VALUE) {break;}l = mid + 1;}else r = mid-1;// System.out.println("l=" + l + " r=" + r + " mid=" + mid);}return rev ? -ans : ans;    //如果需要取反就取反}// 快速乘public static boolean quickAdd(int y, int z, int x) {// x 和 y 是负数,z 是正数// 需要判断 z * y >= x 是否成立int result = 0, add = y;while (z != 0) {if ((z & 1) != 0) {// 需要保证 result + add >= xif (result < x - add) {return false;}result += add;}if (z != 1) {// 需要保证 add + add >= xif (add < x - add) {return false;}add += add;}// 不能使用除法z >>= 1;}return true;}
}

相关文章:

LCR 001. 两数相除

剑指Offer通关 力扣搜索LCR即为剑指Offer的所有题目。 LCR 001. 两数相除 快速乘 解析&#xff1a; 题目规定只能用32位整数&#xff0c;所以取值范围在-2^31 ~ 2^31 - 1 之间。这里的特殊情况为什么不考虑被除数和除数为最大值&#xff1f;因为后面会将所有的数都转为负数…...

LeCun和Bengio“吵”起来了,人工智能是“潘多拉魔盒”吗?

作者 | 谢年年 上周末&#xff0c;深度学习领域最有影响力的三巨头之二Yann LeCun和Yoshua Bengio就AI的潜在风险和安全问题引发了一场激烈辩论&#xff0c;人工智能是“潘多拉魔盒”吗&#xff1f;这场辩论引来众多AI知名人士围观。 LeCun在Facebook上发起了这场辩论&#xff…...

电子期刊制作宝典,让你成为专业行家

电子期刊作为一种新兴的媒体形式&#xff0c;越来越受到人们的喜爱。它不仅方便快捷&#xff0c;而且可以随时随地阅读&#xff0c;不受时间和空间的限制。那么&#xff0c;如何制作一份高质量的电子期刊呢&#xff1f; 1.首先打开FLBOOK电子杂志平台 2.然后点击模板选择电子期…...

ESP32网络开发实例-Web显示传感器实时数据

Web显示传感器实时数据 文章目录 Web显示传感器实时数据1、软件准备2、硬件准备3、代码实现3.1 Web页面代码实现4.2 Web服务器代码实现本文将详细介绍如何使用ESP32在 Web 服务器上绘制传感器读数(温度、湿度和压力)。 ESP32 将托管一个网页,其中包含三个实时图表,每 30 秒…...

ARM Cortex-A9:裸机开发,点亮LED3

1.看原理图 外设板原理图 核心板原理图 2.在芯片手册中找到控制硬件的有效的特殊功能寄存器 选择0x1输出 GPX1DAT[0]->GPX1_0 0->1/0 3.编程 start.s Makefile复制到桌面 使用超级终端&#xff0c;连接串口 随便写一个 选择串口 配置串口 板子上电马上按enter…...

QT学习day2

一、思维导图 作业&#xff1a; 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admi…...

214. Devu和鲜花

214. Devu和鲜花 - AcWing题库 如果每个盒子里的花的数量是无限的&#xff0c;用隔板法可以得出答案是 现在每个盒子中区的花数要满足n个条件 我们可以求答案的补集&#xff0c;用全部方案数减去补集方案数 每一个不符合条件的要求为&#xff0c;设为Bi 补集方案数为就成了…...

【C++初阶(三)引用与内联函数】

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…...

RK3288 Android11 mini-pcie接口 4G模组EC200A适配(含自适应功能)

这里写目录标题 1、修改驱动内核配置①使能USBNET功能②使能 USB 串口 GSM、CDMA 驱动③使能 USB 的 CDC ACM模式④使能PPP功能 2、使用lsusb命令查看是否识别到usb接口的“EC200A”4G模组3、在drivers/usb/serial/option.c添加VID和PID信息①添加VID和PID定义②在option_ids 数…...

Windows安装Jenkins

JDK 11 以上 https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_x64_windows_hotspot_11.0.20_8.msi https://www.jenkins.io/download/ 下载windows安装版本 授权用户administrator logon as services windows(server)安装…...

计算属性,侦听属性,方法区别及例子

计算属性、监听属性和方法都是Vue中的重要概念&#xff0c;但它们在功能和使用上有所不同&#xff1a; 计算属性&#xff1a;计算属性是基于依赖进行缓存的属性&#xff0c;可以根据其他数据动态计算得出。计算属性会根据依赖自动更新&#xff0c;但是只有在其所依赖的数据发生…...

Windows工业三防平板全功能NFC近距离感应一维/二维扫描

Windows系统工业三防平板电脑是一种在智慧工厂仓储物流、MES数采、车载设备、设备检测、自动化控制等领域广泛应用的先进设备。此外&#xff0c;它还在公共服务领域&#xff0c;如高速交通、物流运输、电力检测、公务执法、银行金融、船舶装备、户外勘测、建筑工程、汽车检测、…...

git远端协同开发、解决冲突、分支合并、gitlab使用、远程仓库回滚、为开源项目贡献代码、git工作流,git pull和git fetch,变基

协同开发 避免冲突 张三&#xff1a;改了 settings.py 第一行&#xff0c;提交了 李四&#xff1a;改了 settings.py 第二行&#xff0c;提交了 你也在改setting.py ,没有拉取代码&#xff0c;不知道他们提交了&#xff0c;动了第二行&#xff0c;但是跟李四代码不一样 你要…...

ims-go项目搭建

通过集成开发工具Goland创建项目 整合Gin框架&#xff0c;在终端中输入如下命令&#xff1a; go get -u github.com/gin-gonic/gin 整合Gorm&#xff0c;安装命令如下&#xff1a; go get -u gorm.io/gorm 安装sqlserver驱动&#xff0c;安装命令如下&#xff1a; go get -u…...

2022最新版-李宏毅机器学习深度学习课程-P26 Recurrent Neural Network

RNN 应用场景&#xff1a;填满信息 把每个单词表示成一个向量的方法&#xff1a;独热向量 还有其他方法&#xff0c;比如&#xff1a;Word hashing 单词哈希 输入&#xff1a;单词输出&#xff1a;该单词属于哪一类的概率分布 由于输入是文字序列&#xff0c;这就产生了一个问…...

【Qt控件之QButtonGroup】概述及使用

概述 QButtonGroup 类提供了一个容器来组织一组按钮部件。 QButtonGroup 提供了一个抽象容器&#xff0c;可以将按钮部件放置其中。它不提供此容器的可视表示&#xff08;请参见 QGroupBox&#xff0c;用于容器部件&#xff09;&#xff0c;而是管理组中每个按钮的状态。 一个…...

【开源分享】基于Html开发的房贷计算器,模仿新浪财经

房贷计算器是一种房贷计算的在线计算Web应用&#xff0c;按用户选择的贷款类型、贷款金额、期限、利率可计算得出每月月供参考、支付利息、还款总额这些信息。本文模仿新浪财经开发的房贷计算器。 作品预览 https://fangdai.gitapp.cn 源码地址 https://github.com/geeeeeee…...

ftp文件上传缓慢问题

问题描述 某环境下&#xff0c;通过vsftp上传文件缓慢。 问题分析 这个问题是由于服务器DNS导致&#xff0c;如果在内网机器中&#xff0c;配置了公网的DNS或者其他不能链接的DNS&#xff0c;会导致上传缓慢。 解决方案 目前有两种解决方式&#xff0c;任选其一即可&#…...

【周末闲谈】VR新视界,“眼”见未来

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言&#xff0c;模仿还是超越&#xff1f; ✨第二周 畅想AR 文章目录 系列目录前言虚拟现实(VR)技术虚拟现实技术的原理虚拟现实技术发…...

CSRF和XSS是什么?

CSRF&#xff08;Cross-site request forgery&#xff09;&#xff1a;跨站请求伪造。 用户是网站A的注册用户&#xff0c;且登录进去&#xff0c;于是网站A就给用户下发cookie。 满足条件&#xff1a; &#xff08;1&#xff09;登录受信任网站A&#xff0c;并在本地生成Cook…...

实战指南:基于快马平台生成Spring Boot电商后端并部署于腾讯云龙虾

最近在做一个电商平台的后端开发项目&#xff0c;需要快速搭建一套完整的API服务。考虑到腾讯云龙虾服务器性价比高&#xff0c;特别适合中小型Web应用部署&#xff0c;我决定用Spring Boot框架来实现。整个过程在InsCode(快马)平台上完成&#xff0c;从代码生成到部署上线一气…...

《数据驱动防折叠:利用企微API与数据分析平台构建智能发送决策系统》

一、问题背景企微群发折叠与用户的历史互动行为紧密相关。对长期未交互的用户发送营销内容&#xff0c;折叠概率极高&#xff1b;而对活跃用户发送相似内容&#xff0c;则可能正常显示。因此&#xff0c;单纯从发送端进行策略优化是不够的&#xff0c;必须引入用户维度的数据&a…...

光伏板缺陷检测实战:从数据集构建到YOLO模型训练全流程解析

1. 光伏板缺陷检测的现实意义 光伏发电作为清洁能源的重要组成部分&#xff0c;其运维效率直接影响发电量收益。我在实地考察中发现&#xff0c;一块被鸟粪覆盖的光伏板&#xff0c;发电效率可能下降30%以上&#xff1b;而热斑效应更会导致组件永久性损伤。传统人工巡检每天最多…...

水墨江南模型效果对比:不同参数下的笔触与渲染风格

水墨江南模型效果对比&#xff1a;不同参数下的笔触与渲染风格 最近在尝试用AI生成水墨画&#xff0c;发现一个挺有意思的现象&#xff1a;同一个“水墨江南”模型&#xff0c;用不同的参数设置&#xff0c;画出来的效果天差地别。有时候是寥寥几笔的写意小品&#xff0c;有时…...

LFM2.5-1.2B-Thinking-GGUF部署教程:适配A10/A100/L4等主流GPU显存优化方案

LFM2.5-1.2B-Thinking-GGUF部署教程&#xff1a;适配A10/A100/L4等主流GPU显存优化方案 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF 是 Liquid AI 推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该模型采用 GGUF 格式存储&#xff0c;配合高效的 llam…...

实验室搬砖实录:手把手教你搞定柱层析,从TLC监测到梯度洗脱的保姆级避坑指南

实验室搬砖实录&#xff1a;手把手教你搞定柱层析&#xff0c;从TLC监测到梯度洗脱的保姆级避坑指南 记得第一次独立做柱层析时&#xff0c;盯着那根玻璃柱看了半小时&#xff0c;愣是没敢动手。TLC板上明明分得挺开的点&#xff0c;怎么一上柱子就全乱了&#xff1f;洗脱液极性…...

HarmonyOS6 半年磨一剑 - RcCheckboxGroup 组件与全选不确定态机制深度解析

文章目录前言一、RcCheckboxGroup 内部状态同步1.1 双层状态管理1.2 选中状态判断二、布局渲染架构2.1 横向与纵向的渲染分支2.2 itemGap 的类型安全处理2.3 属性透传机制三、全选与不确定态&#xff08;indeterminate&#xff09;3.1 三态状态机3.2 全选逻辑实现3.3 indetermi…...

告别手动操作!Open-AutoGLM让iPhone听懂人话,自动执行指令

告别手动操作&#xff01;Open-AutoGLM让iPhone听懂人话&#xff0c;自动执行指令 1. 引言 你是否厌倦了每天重复点击手机屏幕的操作&#xff1f;是否希望手机能像真人助理一样理解你的需求并自动完成任务&#xff1f;今天我要介绍的Open-AutoGLM正是这样一个革命性的AI手机智…...

Graphormer在药物发现中的应用:催化剂吸附预测落地实践

Graphormer在药物发现中的应用&#xff1a;催化剂吸附预测落地实践 1. 项目背景与价值 在药物研发和材料科学领域&#xff0c;分子属性预测一直是一项耗时且昂贵的任务。传统实验方法需要大量试错&#xff0c;而计算化学方法又面临精度与效率的平衡问题。Graphormer作为一款基…...

ncmdumpGUI:网易云音乐加密文件转换的完整解决方案

ncmdumpGUI&#xff1a;网易云音乐加密文件转换的完整解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 一、初识ncmdumpGUI&#xff1a;解密音乐文件的…...