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

leetcode 371 两个整数之和

一、问题描述

二、解题思路

整体思路

本题需要借助位运算的方法来解决。

具体思路

两数异或运算的结果为无进位加法的结果,只需要用两数异或的结果加上进位(循环到进位为0)就可以得到两数之和。我们可以通过一个例子来模拟这个过程:

例如:a=13=01101B,b=28=11100B,a+b=41

先计算a^b,再计算进位(a&b)<<1,再更新a和b的值,直到b为0,即进位为0,此时的a即为结果,具体流程如图所示:

三、代码实现

时间复杂度:T(n)=O(1)

空间复杂度:S(n)=O(1)

class Solution {
public:int getSum(int a, int b) {while(b){//异或结果即为无进位加法结果int r=a^b;//计算进位b=(a&b)<<1;a=r;}return a;}
};

http://www.xdnf.cn/news/19440.html

相关文章:

  • 微软开源TTS模型VibeVoice,可生成 90 分钟4人语音
  • TFS-1996《The Possibilistic C-Means Algorithm: Insights and Recommendations》
  • 一些八股总结
  • 如何快速学习新技能
  • Redis 7.0 高性能缓存架构设计与优化
  • [Android] UI进阶笔记:从 Toolbar 到可折叠标题栏的完整实战
  • IDEA插件ApifoxHelper
  • C++ 登录状态机项目知识笔记
  • Nginx虚拟主机配置
  • CTFshow系列——命令执行web69-72
  • 数据结构 04(线性:双向链表)
  • 【大前端】React配置配置 开发(development)、生产(production)、测试(test)环境
  • 学习数据结构(15)插入排序+选择排序(上)
  • 算法——链表
  • 开源协作白板 – 轻量级多用户实时协作白板系统 – 支持多用户绘图、文字编辑、图片处理
  • 进程间通信IPC(interprocess communicate)
  • Introduction to GIS —— Chapter 4(Raster Data Model)
  • 解读IEC 60529-2013
  • MySQL 公用表达式
  • AI军团协同作战:Manus Wide Research深度解析
  • CAN数据链路层、网络层(ISO11898、15765)
  • JVM-指针压缩
  • Day 01(02): 精读HDFS概念
  • PortSwigger靶场之DOM XSS in document.write sink using source location.search通关秘籍
  • 多线程使用场景一(es数据批量导入)
  • 使用node-red+opencv+mqtt实现相机图像云端查看
  • 【openGauss】Oracle与openGauss/GaussDB数据一致性高效核对方案
  • 解决Docker运行hello-world镜像报错问题
  • 烦人的Nano 编辑器,如何退出呢?
  • 【Java后端】SpringBoot配置多个环境(开发、测试、生产)