C++ | Leetcode C++题解之第29题两数相除

embedded/2024/9/25 22:31:27/

题目:

题解

class Solution {
public:int divide(int dividend, int divisor) {// 考虑被除数为最小值的情况if (dividend == INT_MIN) {if (divisor == 1) {return INT_MIN;}if (divisor == -1) {return INT_MAX;}}// 考虑除数为最小值的情况if (divisor == INT_MIN) {return dividend == INT_MIN ? 1 : 0;}// 考虑被除数为 0 的情况if (dividend == 0) {return 0;}// 一般情况,使用类二分查找// 将所有的正数取相反数,这样就只需要考虑一种情况bool rev = false;if (dividend > 0) {dividend = -dividend;rev = !rev;}if (divisor > 0) {divisor = -divisor;rev = !rev;}vector<int> candidates = {divisor};// 注意溢出while (candidates.back() >= dividend - candidates.back()) {candidates.push_back(candidates.back() + candidates.back());}int ans = 0;for (int i = candidates.size() - 1; i >= 0; --i) {if (candidates[i] >= dividend) {ans += (1 << i);dividend -= candidates[i];}}return rev ? -ans : ans;}
};

http://www.ppmy.cn/embedded/7408.html

相关文章

javaWeb项目-大药房管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Java语言简介 Ja…

实验:数据结构(结构体在单链表中的增删改查)

#include <stdio.h> #include <stdlib.h> #include <string.h> // 学生信息结构体 struct Student { char name[50]; char gender[10]; int student_number; char hobbies[100]; struct Student* next; }; // 初始化一个空表 struct S…

如何在阿里云主机上安装FreeBSD14系统

文章目录 在阿里云主机上安装FreeBSD14系统准备阿里云云主机识别目标磁盘下载 FreeBSD14解压缩 FreeBSD14系统镜像创建可启动的磁盘启动 FreeBSD14 在阿里云主机上安装FreeBSD14系统 阿里云主机不支持 FreeBSD14 系统的镜像&#xff0c;因此需要手动进行安装。 准备阿里云云主…

二极管分类及用途

二极管分类及用途 通用开关二极管 特点&#xff1a;电流小&#xff0c;工作频率高 选型依据&#xff1a;正向电流、正向压降、功耗&#xff0c;反向最大电压&#xff0c;反向恢复时间&#xff0c;封装等 类型&#xff1a;BAS316 ; IN4148WS 应用电路: 说明&#xff1a;应用…

八字入门书介绍

《千里命稿》&#xff0c;此书是民国时期上海的韦千里先生所著&#xff0c;是他主讲的命学培训班的讲义&#xff0c;成书时间在1935年。该书语言简练、述理清晰&#xff0c;是讲述子平命学概念的佼佼者&#xff0c;尤其是对五行、六神的性质讲解&#xff0c;可以说是此书的精华…

SVGRenderer 是 three.js 中的一个渲染器,用于将 3D 场景渲染到 SVG(可缩放矢量图形)元素中。

demo案例 SVGRenderer 是 three.js 中的一个渲染器&#xff0c;用于将 3D 场景渲染到 SVG&#xff08;可缩放矢量图形&#xff09;元素中。虽然 SVG 本身不支持 3D 渲染&#xff0c;但 SVGRenderer 提供了一种将 three.js 的 3D 场景以 2D 形式投影到 SVG 平面的方法。这种渲染…

流媒体协议--RTMP

文章目录 RTMP播放基本流程TCP握手过程RTMP握手过程connect连接createStream 创建流play 播放命令deleteStream删除流RTMP数据组成 RTMP(Real Time Messaging Protocol)是一个应用层协议&#xff0c;主要用于在Flash player和服务器之间传输视频、音频、控制命令等内容。 该协议…

趋势分析 一元线性回归及显著性检验 GIS方法 Slope

slope斜率计算公式&#xff1a; 假设有三年的NDVI图像 加载3年栅格数据&#xff0c;公式中n取3计算分子左边&#xff1a; 3*(1*"1990.tif"2*"1991.tif"3*"1992.tif") 计算分子右边&#xff1a; 6*("1990.tif""1991.tif"&q…