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

题目:

题解:

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.mzph.cn/web/845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机组成原理】运算方法和运算器

数据与文字的表示方法 1. 数据格式1.1 定点数表示方法1.1.1 定点小数1.1.2 定点整数 1.2 浮点数表示方法1.2.1 浮点数表示1.2.2 浮点数的规格化1.2.2.1 尾数为原码表示的规格化1.2.2.2 尾数为补码表示的规格化 1.2.3 IEEE754标准⭐ 1.3 十进制数串的表示方法1.3.1 字符串形式1.…

【LeetCode热题100】【动态规划】乘积最大子数组

题目链接&#xff1a;152. 乘积最大子数组 - 力扣&#xff08;LeetCode&#xff09; 要找乘积最大的连续子数组&#xff0c;我们之前做过找和最大的连续子数组【LeetCode热题100】【普通数组】最大子数组和-CSDN博客 对于和来讲&#xff0c;定义dp[i]是以nums[i]为结尾的最大…

Tensorflow2.0笔记 - 使用卷积神经网络层做CIFA100数据集训练(类VGG13)

本笔记记录CNN做CIFAR100数据集的训练相关内容&#xff0c;代码中使用了类似VGG13的网络结构&#xff0c;做了两个Sequetial&#xff08;CNN和全连接层&#xff09;&#xff0c;没有用Flatten层而是用reshape操作做CNN和全连接层的中转操作。由于网络层次较深&#xff0c;参数量…

centos搭建yum源

目录 1.createrepo简介 2.repo搭建思路 3.安装 4.使用 1.createrepo简介 createrepo 是一个用于创建 RPM 包的工具&#xff0c;它可以帮助你创建一个本地的 YUM 仓库。createrepo 并不是用于运行 YUM 仓库服务的软件&#xff0c;而是用来生成仓库的元数据&#xff0c;使得…

区分软件成熟度模型集成的五个等级

概念讲解 软件成熟度模型集成&#xff08;CMMI&#xff0c;Capability Maturity Model Integration&#xff09;是一种评估和改进软件开发过程的模型。CMMI的五个成熟度等级分别是&#xff1a; 初始级&#xff08;Level 1 - Initial&#xff09;&#xff1a;在这个等级&#x…

【Taro3踩坑日记】找不到sass的类型定义文件

问题截图如下&#xff1a;找不到sass的类型定义文件 解决办法&#xff1a; 1、npm i types/sass1.43.1 2、然后配置 TypeScript 编译选项&#xff1a;确保 TypeScript 编译器能够识别 Sass 文件&#xff0c;并正确处理它们。

在一个态势感知复杂网络系统中,存在着态、势、感、知四种损失函数和梯度变化...

反向传播是一种用于训练神经网络的常用技术&#xff0c;它通过计算损失函数对网络参数的梯度&#xff0c;然后利用梯度下降等优化算法来更新参数&#xff0c;从而使网络逐步优化以减少损失函数的值。 在反向传播中&#xff0c;损失函数的选择非常重要&#xff0c;通常采用的损失…

PyTorch的核心概念

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

AWS账号注册以及Claude 3 模型使用教程!

哈喽哈喽大家好呀&#xff0c;伙伴们&#xff01;你听说了吗&#xff1f;最近AWS托管了大热模型&#xff1a;Claude 3 Opus&#xff01;想要一探究竟吗&#xff1f;那就赶紧来注册AWS账号吧&#xff01;别担心&#xff0c;现在注册还免费呢&#xff01;而且在AWS上还有更多的大…

【Linux】认识文件(一):文件标识符

【Linux】认识文件&#xff08;一&#xff09;&#xff1a;文件标识符 一.什么是文件&#xff1f;1.文件的本质2.文件的分类 二.访问文件操作1.C语言中的访问文件接口i.fopenii.fcloseiii.fwrite 2.系统访问文件接口i.openii.closeiii.write 三.文件管理1.对所有打开文件的管理…

FlinkCDC基础篇章2-数据源 SqlServerCDC写入到ES中

接着 上期FlinkCDC基础篇章1-安装使用 下载 Flink 和所需要的依赖包 # 下载 Flink 1.17.0 并将其解压至目录 flink-1.17.0 下载下面列出的依赖包&#xff0c;并将它们放到目录 flink-1.17.0/lib/ 下&#xff1a; 下载链接只对已发布的版本有效, SNAPSHOT 版本需要本地编译 …

大华相机C#学习之IStream类

获取方式 IDevice.StreamGrabber 设备实例对象的StreamGrabber属性可以返回IStream对象。 常用属性 IsStart 判断是否开启捕获码流&#xff0c;是&#xff0c;返回true&#xff1b;否&#xff0c;返回false。 private void test_Click(object sender, EventArgs e) {List<…

【分治】Leetcode 数组中的第K个最大元素

题目讲解 数组中的第K个最大元素 算法讲解 堆排序&#xff1a;1. 寻找最后一个节点的父亲&#xff0c;依次向上遍历&#xff0c;完成小堆的建立&#xff1b;2. 从最后一个元素开始&#xff0c;和堆顶的数据做交换&#xff0c;此时最小的数据在对后面&#xff0c;然后对剩下的…

sql知识总结二(接上)

2.updatexml报错注入 &#xff08;1&#xff09;判断字符型/数字型 如果是字符型再判断闭合方式&#xff08;备注&#xff1a;结尾加--看是否闭合&#xff0c;若页面正常执行则闭合完成&#xff09; ?id1") and 1updatexml(1,concat(0x7e,(select group_concat(table_…

Go语言中栈和堆对数据密集型应用程序性能的影响

在 Go 中,变量可以被分配在栈上或堆上。这两种类型的内存在根本上是不相同的,它们可以显著影响数据密集型应用程序的性能。 1. 栈 vs 堆 首先,让我们讨论一下栈和堆的区别。栈是默认内存;它是一种后进先出(LIFO)的数据结构,用于存储特定 goroutine 的所有局部变量。当一…

部署轻量级Gitea替代GitLab进行版本控制(一)

Gitea 是一款使用 Golang 编写的可自运营的代码管理工具。 Gitea Official Website gitea: Gitea的首要目标是创建一个极易安装&#xff0c;运行非常快速&#xff0c;安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言&#xff0c;这使我们只要生成一个可执行程序即…

【React】Sigma.js框架网络图-入门篇

一、介绍 Sigma.js是一个专门用于图形绘制的JavaScript库。 它使在Web页面上发布网络变得容易&#xff0c;并允许开发人员将网络探索集成到丰富的Web应用程序中。 Sigma.js提供了许多内置功能&#xff0c;例如Canvas和WebGL渲染器或鼠标和触摸支持&#xff0c;以使用户在网页上…

Echarts-丝带图

Echarts-丝带图 demo地址 打开CodePen 什么是丝带图&#xff1f; 丝带图是Power BI中独有额可视化视觉对象&#xff0c;它的工具提示能展示指标当期与下期的数据以及排名。需求&#xff1a;使用丝带图展示"2022年点播订单表"不同月份不同点播套餐对应订单数据。 …

vim之一键替换

Vim的substitute命令是一个非常强大的文本替换工具&#xff0c;它允许用户在整个文件或指定范围内执行文本替换操作。 命令格式 substitute命令的基本格式如下&#xff1a; :[range]s[ubstitute]/{pattern}/{string}/[flags] 其中&#xff1a; [range] 指定替换操作的范围…

搭建HBase2.x完全分布式集群(CentOS 9 + Hadoop3.x)

Apache HBase™是一个分布式、可扩展、大数据存储的Hadoop数据库。 当我们需要对大数据进行随机、实时的读/写访问时&#xff0c;可以使用HBase。这个项目的目标是在通用硬件集群上托管非常大的表——数十亿行X数百万列。Apache HBase是一个开源、分布式、版本化的非关系数据库…