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

文章目录

  • 题目描述
  • 思路 & 代码
      • 二刷

题目描述

  • 讲道理,感觉算有点难度的题目了= =,还是需要时不时看看。
    在这里插入图片描述

思路 & 代码

  • 正负数情况可以不考虑(补码)
  • 核心:加法 = 进位和 + 非进位和
  • 关于位运算符的选择,leetcode 题解区中 Krahets 大佬的图写很好⬇️在这里插入图片描述
class Solution {// 用递归来做,会很好理解~// 加法 = 进位和 + 非进位和// 进位和 = & << ,非进位和 = ^// 负数考虑:没关系,补码优势在于正负数不需要特殊考虑public int add(int a, int b) {// 进位和为0时,结束if(b == 0){return a;}// (非进位和,进位和)return add(a ^ b, (a & b) << 1);}
}
  • 无注释版
class Solution {public int add(int a, int b) {if(b == 0){return a;}return add(a ^ b, (a & b) << 1);}
}

二刷

  • 核心:递归 + 位运算
  • 思路:记录结果表,推出结论
class Solution {public int add(int a, int b) {if(b == 0) {return a;}return add(a ^ b, (a & b) << 1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504382.shtml

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

相关文章

【LeetCode笔记】剑指 Offer 62. 圆圈中最后剩下的数字(Java、约瑟夫环、链表)

文章目录题目描述思路 & 代码链表模拟法数学方法二刷题目描述 约瑟夫环&#xff01;题目可太经典了说实话还是有点难度的 思路 & 代码 链表模拟法 第一想法是用 LinkedList&#xff0c;但是会超时&#xff0c;于是选择ArrayList关键在于 index (index m - 1) %…

【学习笔记】《Go 指南》

学习笔记 —— Go 指南 前言&#xff1a;先贴上网址&#xff0c;因为是先用 Typora 写&#xff0c;然后直接导入的&#xff0c;所以格式多多少少有点问题 文章目录学习笔记 —— Go 指南一. 包、变量和函数二. 流程控制语句 for、switch、if 和 defer三. 更多类型 struct、sli…

python怎么画参数函数图像_详解pandas.DataFrame.plot() 画图函数

首先看官网的DataFrame.plot( )函数 DataFrame.plot(xNone, yNone, kindline, axNone, subplotsFalse, sharexNone, shareyFalse, layoutNone,figsizeNone, use_indexTrue, titleNone, gridNone, legendTrue, styleNone, logxFalse, logyFalse, loglogFalse, xticksNone, ytick…

【学习笔记】第一章——操作系统的概念、功能、特征、发展分类(系统调用、并发共享虚拟异步)

文章目录一. 概念、功能与目标定义&#xff1a;功能1. 系统资源的管理者2. 用户和计算机硬件之间的接口3. 最接近硬件的层次二. 特征1. 并发2. 共享3. 虚拟4. 异步三. 发展分类1. 手工操作阶段2. 单道批处理系统3. 多道批处理系统4. 分时操作系统5. 实时操作系统总结一. 概念、…

【学习笔记】第一章——操作系统的运行机制、体系结构和内核(核心态、原语、大内核 微内核、特权指令)

文章目录总览一. 运行机制&#xff1a;1. 指令2. 处理器状态3. 程序二. 内核1. 定义2. 在层次结构中的划分三. 体系结构总览 重要知识点&#xff1a;特权指令 & 内核程序&#xff0c;只能在核心态执行 一. 运行机制&#xff1a; 1. 指令 指令&#xff1a;CPU 能识别、…

计算机视觉中的多视图几何_基于深度学习的视觉三维重建研究总结

三维重建意义三维重建作为环境感知的关键技术之一&#xff0c;可用于自动驾驶、虚拟现实、运动目标监测、行为分析、安防监控和重点人群监护等。现在每个人都在研究识别&#xff0c;但识别只是计算机视觉的一部分。真正意义上的计算机视觉要超越识别&#xff0c;感知三维环境。…

python列表添加字符串_2.python基础之—列表,元组,字典,集合,字符串的使用方法...

一.关于python序列的简介。 python里面的序列大部分都可以执行&#xff0c;索引&#xff0c;切片&#xff0c;加&#xff0c;乘&#xff0c;检查长度&#xff0c;以及检查某个成员是否存在&#xff0c;甚至还可以找出这个序列中最小的元素和最大的元素&#xff0c;并且序列都是…

【学习笔记】第一章——操作系统的中断和异常

文章目录总览一. 诞生、概念和作用二. 分类三. 外中断的处理过程四. 导图总结总览 异常&#xff1a;内中断 一. 诞生、概念和作用 早期计算机&#xff0c;程序只能串行执行&#xff0c;资源利用率低&#xff08;详可见OS 发展分类&#xff09;&#xff0c;为了解决这一问题…

python列表添加元素到中间_python在列表的元素中间插入空行

我写了一个手动输入后收集专辑信息的程序&#xff0c;写的很繁杂......是定义了一个可以将实参整理入字典的函数&#xff0c;再将字典放入列表 album_list [] def album(name, singer, quantities_of_songs): """record the info of a album"""…

【学习笔记】第一章——操作系统的系统调用(陷入指令、库函数、作用流程)

文章目录总览一. 定义与作用定义作用分类二. 系统调用和库函数的区别三. 系统调用背后的过程导图总结总览 面试常考题了&#xff0c;可得好好看看 XD 一. 定义与作用 定义 作用 结合下图例子理解按照我的理解&#xff0c;就是需要调用系统资源时&#xff0c;需要让 OS 来保…

【学习笔记】第二章——进程的定义、组成、组织方式、特征、状态 转换

文章目录1. 定义 & 组成2. 进程的组织3. 特征1、2、3 总结导图4. 状态5. 转换4、5 总结导图1. 定义 & 组成 一般直接把进程实体称为进程&#xff0c;但是严格来说进程实体强调静态&#xff0c;而进程强调动态。PCB&#xff08;Process Control Block&#xff09;是进程…

python 列表比较不同_使用Python中的自定义比较功能对列表进行排序

由于OP要求使用自定义比较功能&#xff08;这也是导致我提出这个问题的原因&#xff09;&#xff0c;因此我想在这里给出可靠的答案&#xff1a; 通常&#xff0c;您要使用内置的return fitness(item2) - fitness(item1)函数&#xff0c;该函数将自定义比较器作为其参数。 我们…

【学习笔记】GIT使用

文章目录正文git 流程&#xff1a;正常&#xff1a;查看&#xff1a;回滚删除&#xff1a;远程&#xff1a;分支&#xff1a;底层&#xff1a;学习网站&#xff1a;廖雪峰git教程 &#xff0c;笔记不断更新中~ 正文 git 流程&#xff1a; 正常&#xff1a; 项目目录下 git i…

派生类构造的时候一定要调用_没钱的时候,一定要记住这三个教训

越没钱的时候&#xff0c;才更能认清身边的一些人和事&#xff0c;当你没钱的时候&#xff0c;一定要知道这三件事&#xff0c;这是现实也是事实啊。【1】没钱才发现钱有多重要人越在没钱的时候&#xff0c;越会发现钱是多么的重要&#xff0c;生活中大多数人的烦恼就是因为没有…

【学习笔记】第二章——进程的控制、通信

文章目录一. 进程控制如何实现进程控制创建终止阻塞 & 唤醒切换总结二. 进程间的通信定义1&#xff09;共享存储2&#xff09;管道通信3&#xff09;信息传递总结一. 进程控制 def: 实现进程状态转换 如何实现进程控制 主要就是 PCB、阻塞\就绪队列以及系统资源之间的改…

bcp 不能调用where 子句_技术分享 || Mysql中IS NULL、IS NOT NULL不能走索引?

mysql中IS NULL、IS NOT NULL不能走索引&#xff1f;不知道是啥原因也不知道啥时候, 江湖上流传着这么一个说法 mysql查询条件包含IS NULL、IS NOT NULL、!、like %* 、like %*%, 不能 使用索引查询&#xff0c; 只能 使用全表扫描。刚入行时我也是这么认为的&#xff0c;还奉为…

【学习笔记】第二章——线程与多线程模型

文章目录一. 线程为什么要引入线程&#xff1a;引入进程后的变化线程的属性线程的实现二. 多线程模型1. 多对一模型2. 一对一模型3. 多对多模型三. 总结一. 线程 为什么要引入线程&#xff1a; 有的进程可能要“同时进行很多事”&#xff08;如QQ的语音、视频、文件处理等&am…

ghelper失效_Ghelper账号+网易云音乐领黑胶会员35天

点击蓝字关注我们&#xff0c;了解更多 追求美好的生活Ghelper账号 :账号&#xff1a;yiyaniosfx.cn密码&#xff1a;yiyanyiyan网易云&#xff1a;打开网易云音乐APP->顶部直播->随便进一个直播->右下角黑胶VIP领取->在次日1点后观看直播可领7天黑胶VIP->每天…

python利用tensorflow识别圆_RaspberryPi上实现佩戴口罩识别——2020电赛F题小记

今年的电赛题目非常反常&#xff0c;传统控制题目基本没有&#xff0c;新增加了测距题目&#xff0c;甚至物联网题目&#xff0c;Ai题目都出来了。直接电赛变算法钞能力大赛。看到F题&#xff1a;测温人脸识别&#xff0c;碰巧我们手头有调好的红外测温模块树莓派openmv&#x…

python输错了怎么办_python怎么实现输错三次密码之后锁定

功能需求&#xff1a; 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路&#xff1a; 1.判断用户是否在黑名单&#xff0c;如果在黑名单提示账号锁定。 2.判断用户是否存在&#xff0c;如果不存在提示账号不存在。 3.判断账号密码是否正确&#xff0c;如果…