[leetcode] 371. Sum of Two Integers 解题报告

2023-11-05

题目链接: https://leetcode.com/problems/sum-of-two-integers/

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

Example:
Given a = 1 and b = 2, return 3.


思路: 这里用到了一个半加法的思想, 即两位单独的位相加其结果可以用异或得到, 进位可以用与得到. 然后对于两个数字来说同样可以延伸这个思想. 

举个例子: 11+5, 其二进制形式为11: 1011, 5: 0101

1. 那么两个位置都为1的地方就需要进位, 所以进位值就为0001. 原位置两个数相加的结果为那个位置值的异或即1110, 即两个位置值如果不一样就为1, 一样的话要么两个位置原来值都为0结果也为0, 要么进位, 那么结果依然是0. 

2. 接下来就要把进位位和下一位相加, 所以进位值左移一位,即0001变为0010, 重复上面操作可得新的进位值为0010, 原位置异或(即相加)结果为1100.

3. 继续重复上面操作直到进位为0, 可得到最终结果10000, 即16

代码如下:

class Solution {
public:
    int getSum(int a, int b) {
        while(b)
        {
            int carry = a & b;
            a = a ^ b;
            b = carry << 1;
        }
        return a;
    }
};
参考: http://www.geeksforgeeks.org/add-two-numbers-without-using-arithmetic-operators/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[leetcode] 371. Sum of Two Integers 解题报告 的相关文章

  • 根据具体数据计算锯齿波和三角波

    我需要计算三角形和锯齿波 但由于我的模型和我能够使用的数据 它有点复杂 但也许我只是感到困惑 我能够计算我的正弦波 但我并没有真正使用帧计数器 我所做的是 计算theta increment下次需要计算样本时可以使用的变量 这工作起来是这样
  • 如何旋转矢量?

    如果我有 1 0 我旋转它90 degrees 1 2PI radians 我应该得到 0 1 我该如何实现这一目标 我在看这一页 http en wikipedia org wiki Rotation matrix并实现了这个 var r
  • .NET:十进制到舍入字符串

    如果我有一个decimal 如何获得带有两位小数的字符串版本 这不起作用 Math Round myDecimal 2 ToString 0 00 不要使用大括号 它们用于使用以下命令将格式化值嵌入到较长的字符串中string Format
  • 不均匀圆盘的最佳覆盖

    What kind of algorithm can I use to search for an optimal minimum area covering of a limited region of the XY plane with
  • Java中的整数除法[重复]

    这个问题在这里已经有答案了 这感觉像是一个愚蠢的问题 但我在 Java 文档中找不到答案 如果我声明两个 int 然后将它们相除 到底发生了什么 他们是否转换为floats doubles首先 划分 然后投射回integer 或者除法是作为
  • 检查一个数字是否可以表示为两个立方之和的高效程序

    我正在尝试编写一个程序来检查数字 N 是否可以表示为两个立方之和 即 N a 3 b 3 这是我的代码 复杂度为 O n include
  • 证明:为什么 java.lang.String.hashCode() 的实现与其文档相符?

    JDK 文档为java lang String hashCode http java sun com javase 6 docs api java lang String html hashCode famously https stack
  • 如何创建一个在给定范围内随机打乱数字的 int 数组[重复]

    这个问题在这里已经有答案了 基本上 假设我有一个可以容纳 10 个数字的 int 数组 这意味着我可以在每个索引中存储 0 9 每个数字只能存储一次 如果我运行下面的代码 int num new int 10 for int i 0 i l
  • 在二维平面中找到距离 P 点最近的 K 个点

    资料来源 亚马逊面试问题 解决方案1制作大小为 K 的堆并按最小距离收集点O NLogK 复杂 解决方案2 取大小为 N 的数组并按距离排序 应该使用QuickSort 霍尔修改 取前 K 点作为答案 这太复杂了 NlogN 但可以优化到近
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 用圆形雷达数学方法表示点

    我正在编写一个简单的应用程序 它可以向您显示您周围的朋友 但不是在法线地图中 而是在像 UI 这样的真正圆形雷达上 https i stack imgur com Au3IP png https i stack imgur com Au3I
  • 处理中渲染极地带面体时出现问题

    我最近一直在研究 Zohedrons 和Rob Bell http zomadic com 做出了美丽的 我玩了免费的极地带面体 Sketchup 插件 http zomebuilder com 并考虑使用几何图形加工 http proce
  • 计算序言中列表的排列

    在 序言艺术 第二版中有一个问题 您应该定义一个谓词 Even permutation Xs Ys 和类似的奇数排列 当您查询时 例如 Even permutation 1 2 3 2 3 1 和 odd permutation 1 2 3
  • 具有非常大的数字的除法

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344
  • Exposé 布局算法

    我正在制作一些项目 其布局类似于 Mac OS X 在 Expos 中对窗口所做的操作 它适应项目的长宽比和可用区域的长宽比 基本上 可用区域分为行和列 每个单元格 行和列的交集 中放置一个项目 这些项目必须保持其纵横比 此处width h
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 在网络上编写数学方程的最佳方法是什么?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我正在开发一个与数学相关的网页 并正在寻找一种将数学方程轻松写入网页的解决方案 目前我可以使用
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷

随机推荐

  • 图解数据结构与算法-搜索与回溯

    前言 本博客是leetcode上图解算法数据结构 LeetBook 力扣 LeetCode 全球极客挚爱的技术成长平台的刷题记录 可能存在错误 仅供参考 主要记录刷题过程的思路 错误 代码以及总结 更详细的解答可以直接看上面这本书 如发现错
  • 最小生成树之克鲁斯卡尔算法

    目录 前言 一 克鲁斯卡尔算法构造过程 二 算法实现 1 辅助结构体 数组 2 算法核心 3 排序函数 总结 前言 承接上文普里姆算法 这里的克鲁斯卡尔算法是解决最短联通路径的另一种算法 细节就不多概述了 思想都是一样的 知识解决问题的出发
  • 大数和代码实现(不使用BigInteger)

    代码实现如下 import java util Scanner public class BigSum public static void main String args String num1 getNumber String num
  • openwrt frpc问题

    1 frpc ssh多个进程可能失败 只保留一个进程就ok 2 自启动方法init d可能无效 openwrt system scheduled tasks 1 etc init d frpc start 2 gt dev null
  • 某市出租车,起步价(2 公里以内)为 8 元,超过 2 公里的按照每公里 4.5 元计算。要求根据路程计算费用。

    public class Task 10101003 01 public static void main String args Scanner input new Scanner System in double sum 0 总费用 d
  • C++,引用和指针

    引用指的是对什么的引用 是地址引用吗 这不和指针一样吗 引用 Reference 是C 中一种特殊的变量类型 它可以被看作是对另一个变量的别名 即某个变量的引用 引用不是地址引用 它是在语法层面提供的一种更直观 更安全的方式来访问和修改其他
  • echarts折现图的点击事件===非常简单哦,直接在后面加事件

    先看效果图吧 一般我们echars的折现图设置点击事件时 只能点击那个点 特别的不方便 在这里我们在用一种方法让他可以划过点击 可以打印看下得到的数据 myChart setOption option true myChart getZr
  • R语言之基础数据管理(下)

    1 类型转换 R语言中数据类型判断及转换函数 判 断 转换 is numeric as numeric is character as character is vector as vector is matrix as matrix is
  • 【科普贴】LDO电源详解

    一 LDO结构和工作原理 LDO 全称是 Low Dropout Regulator 低压差线性稳压器 其中核心部件是工作在线性区域的调整管 如下图中的VT MOS管 LDO由VT 放大器 反馈电阻等部分组成 如上图所示 通过R1和R2电阻
  • 免费App开发解决方案 一键生成App

    Mob App工厂 顾名思义指生产App的一个工厂 这个工厂目前能生产四种类型的App模板 新闻类App 商城类App 社交类App WordPress 可大量生产不同种类App 满足多种行业需求 Mob App 工厂依托于Mob开发者平台
  • Business Cycle 【UVALive - 7501】【二分答案+思维处理】

    题目链接 14年的EC 银牌题 但是现在的大牛们进步神速 估计如今已经是道铜牌题了 具体我们先讲一下题意 一个长度为N的自环圈 每个点 1 N 上有自己对应的权值 可能为负数 我们用一个初始值进入这个环 每次走到一个节点的时候会加上这个节点
  • firefox 不识别background-position-y / background-position-x

    火狐不识别background position y 或background position x 案例 页面 背景图 一列按钮 点击时让当前背景图的background position y 0 最初设置成如下这样 发现火狐点击不起作用
  • 换思路解决小程序page设定背景图片fixed导致页面不能滑动(小程序设置背景图片)

    暂时没有什么办法 记录着先 参考了这篇博文的办法 https blog csdn net qq 44532195 article details 105933485 按照这篇文章 在每一个页面开头加上这段代码
  • Elasticsearch部署前准备(选机器)

    部署Elasticsearch前对硬件的准备 1 CPU上的选择 在更快的 CPUs 和更多的核心之间选择 选择更多的核心更好 多个内核提供的额外并发远胜过稍微快一点点的时钟频率 常见的集群使用两到八个核的机器 2 硬盘上的选择 如果你负担
  • Android原生TabLayout使用全解析,看这篇就够了

    前言 为什么会有这篇文章呢 是因为之前关于TabLayout的使用陆陆续续也写了好几篇了 感觉比较分散 且不成体系 写这篇文章的目的就是希望能把各种效果的实现一次性讲齐 所以也有了标题的 看这篇就够了 TabLayout作为导航组件来说 使
  • NoSQL数据库简介

    目录标题 1 NoSQL数据库概述 2 NoSQL特点 3 NoSQL适用场景 4 NoSQL不适用场景 5 常见的NoSQL四大分类 5 1 Key Value数据库 5 1 2 Memcache 5 1 2 Redis 5 2 文档型数
  • RTX3060 cuda11.3一条命令安装pytorch1.10.0

    检查GPU驱动版本 在命令行输入nvidia smi指令就能看到自己nvidia的驱动版本 NVIDIA官网 看下CUDA版本以及GPU驱动的对应关系 可以看到要使用CUDA11 3 那么需要将显卡的驱动更新至465 89以上 1 pyto
  • 微服务技术栈有哪些

    1 服务开发 Springboot Spring SpringMVC 2 服务配置与管理 Netflix公司的Archaius 阿里的Diamond等 3 服务注册与发现 Eureka Consul Zookeeper等 4 服务调用 Re
  • ATT-ACK靶场渗透(一)

    开启内网环境 kali攻击机ip为 192 168 88 156 主机发现 端口扫描 进行主机发现 nmap sS 192 168 88 156 24 Pn 192 168 88 1和192 168 88 2可能为网关之类的 不管 webl
  • [leetcode] 371. Sum of Two Integers 解题报告

    题目链接 https leetcode com problems sum of two integers Calculate the sum of two integers a and b but you are not allowed t