【LeetCode】剑指 Offer 65. 不用加减乘除做加法

文章目录

  • 【LeetCode】剑指 Offer 65. 不用加减乘除做加法
  • 一、位运算

一、位运算

本题考察对位运算的灵活使用,即使用位运算实现加法

设两数字的二进制形式 a,b,其求和 s = a + b,a(i) 代表 a 的二进制第 i 位,则分为以下四种情况:

观察发现,无进位与异或运算规律相同,进位和与运算规律相同(并需左移一位)。因此,无进位和 n 与进位 c 的计算公式如下:

(和 s)=(非进位和 n)+(进位 c)。即可将 s = a + b 转化为:

循环求 n 和 c,直至进位 c = 0,此时 s = n,返回 n 即可

class Solution{public int add(int a, int b){while(b != 0){  //当进位为 0 时跳出int c = (a&b) << 1;  //c = 进位a ^= b;       //a = 非进位和b = c;      //b = 进位}return a;}
}
  • 时间复杂度 O(1):最差情况下(例如 a = 0x7fffffff,b = 1 时),虚循环 32 次,使用 O(1) 时间,每轮中的常数次位操作使用 O(1) 时间
  • 空间复杂度 O(1):使用常数大小的额外空间

【LeetCode】剑指 Offer 65. 不用加减乘除做加法相关推荐

  1. java 加法不用_【Java】 剑指offer(65) 不用加减乘除做加法

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.×.÷四则运算符号. 思路 对数字做运算,除了四则运算外,只剩下位 ...

  2. 剑指 Offer 65. 不用加减乘除做加法(位运算、递归、迭代)

    一.题目 剑指 Offer 65. 不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*" ...

  3. 0位运算/数学简单 剑指 Offer 65. 不用加减乘除做加法

    剑指 Offer 65. 不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"." ...

  4. 【LeetCode笔记】剑指 Offer 65. 不用加减乘除做加法(Java、位运算、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看. 思路 & 代码 正负数情况可以不考虑(补码) 核心:加法 = 进位和 + ...

  5. leetcode每日一题第三十二天-剑指 Offer 65. 不用加减乘除做加法(easy??middle了吧)

    前言 通过leetcode记录自己每天坚持刷题,以此监督自己的学习.不能放假了就懈怠

  6. 剑指 Offer 65. 不用加减乘除做加法(位运算,计组原理:补码、加法器)

    一.基础知识 做这题需要用到计算机组成原理的基础知识:二进制的表示以及加法器. 简要提下知识点,最好再去研究下来龙去脉,加深理解. (1)二进制加法 a b 非进位和s 进位c 0 0 0 0 0 1 ...

  7. 剑指 Offer 65. 不用加减乘除做加法

    题目链接: 力扣https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/ [分析]对于两个二进制的加法,他们的本 ...

  8. 《剑指Offer》 不用加减乘除做加法

    题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路: 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计 ...

  9. 剑指offer:不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 解题思路 class Solution { public:int Add(int num1, int num2 ...

最新文章

  1. java2实用教程--第二章基本数据类型与数组
  2. MIGO相关的3个BADI增强点
  3. 什么时候用#{},什么时候用${}?
  4. 【Canvas】如何用Canvas绘制折线图
  5. JAVA 分布式环境 Redis互斥锁
  6. mybatis generator修改默认生成的sql模板
  7. 38 FI配置-财务会计-固定资产-组织结构-指定帐户确定
  8. Flutter ScrollController not attached to any scroll views 异常
  9. Nginx源码分析 - HTTP模块篇 - HTTP模块的初始化(20)
  10. 中缀表达式求值,中缀表达式转化为二叉树
  11. 解读 PackageManager.resolveActivity
  12. 开发人员系统功能设计常用办公软件分享
  13. 数字信号处理考试要点
  14. wpf 点击按钮弹出新对话框_WPF学习弹出新窗口
  15. html盒子距离上边距50px,Margin的垂直外边距问题
  16. 蓝牙BLE设备连接与通信
  17. 2023辽宁大学新闻与传播硕士(MJC)专业考研成功经验分享
  18. 烽火(FiberHome)WiFi短信认证设置流程
  19. 功率单位mW 和 dBm 的换算
  20. 《浪潮之巅》作者吴军万字长文:中国算力的危与机

热门文章

  1. sr锁存器 数电_C06. SR锁存器的认识
  2. carbon安装win7 thinkpad x1_联想thinkpad x1 carbon 2017笔记本使用u启动u盘安装win7系统教程...
  3. HiveQL:模式设计
  4. python如何安装第三方库
  5. C++primer plus第六版课后编程题答案8.6
  6. git 代码回滚_git代码版本管理(1)——git版本回滚
  7. Linux之磁盘冗余阵列
  8. (134)FPGA面试题-介绍冯·诺依曼体系结构和哈佛体系结构
  9. (32)FPGA米勒型状态机设计(三段式)(第7天)
  10. (49)System Verilog字符串string详解