LeetCode——two sum of integer

来源:互联网 发布:伪随机算法 编辑:程序博客网 时间:2024/04/29 23:03
  1. 题目描述:对两个整数求和,不能直接用“+”和“-”
  2. 题目分析:当我看到这个题目表示一脸懵逼,第一次在LeetCode上刷题,之前是看都没看到过,根本不知道别人说LeetCode上的题目是个什么鬼,今天有时间了看了一下,看到求和,按照我之前的想法,肯定是用+和-来的容易些,但是题目不让用,就表示不知从何下手,我试了下用for循环,让一个整数自加另一个整数次,其实这样做和用+的本质一样,都是会出现超过整型的表示范围的时候就不能用了,因为第一次,思路也不开阔,所以就在网上搜了答案,采用别人提供的两种方法来做
  3. 做法一:采用位运算(异或+移位)
public class Solution {    public int getSum(int a, int b) {        while (b != 0) {            int c = a ^ b;            b = (a & b) << 1;            a = c;        }        return a;    }}

做法二:位运算:(模拟加法)

public class Solution {    public int getSum(int a, int b) {        int r = 0, c = 0, p = 1;        while ((a | b | c) != 0) {            if (((a ^ b ^ c) & 1) != 0)                r |= p;            p <<= 1;            c = (a & b | b & c | a & c) & 1;            a >>>= 1;            b >>>= 1;        }        return r;    }}

这里采用 的方法是加法的最本质的运算,用二进制位的移位运算来做!我的印象还是计算机组成原理里学过,需要回顾学习!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴儿自己把眼珠子抠红了怎么办 如果美陆战队员进入台湾那怎么办? 顺产生完小孩吸不通奶怎么办 耐克空军一号白色底发黄怎么办 中行网银u盾丢了怎么办 有人用你的手机号码不停注册怎么办 获得公开你微信头像的权限是怎么办 手机能进的网站电脑进不去怎么办 苹果8p下不了微信怎么办 苹果手机版本过底不能下微信怎么办 手机打开视频跳转到qq是怎么办 淘宝店铺显示服务竟然出错了怎么办 母羊下完羊羔把羊衣吃了怎么办? 移植后56天有黑色东西怎么办 我家的金丝熊浑身都是尿怎么办 一键启动车钥匙丢了怎么办 把爷爷的遗物弄丢了怎么办 如果你娶了一个傻子你怎么办 在国外订机票手机收不到信息怎么办 网上买机票名字写错了怎么办 买机票名字错了一个字怎么办 微店没收到货却显示已收货怎么办? 手机存的照片误删了怎么办 魔兽世界把要用的装备分解了怎么办 邻居家的狗见到我就叫怎么办 我的世界玩的时间长会卡应该怎么办 网易我的世界密码账号都忘了怎么办 我的世界创建世界画面乱码了怎么办 网易我的世界云端存档不够用怎么办 玩刺激战场带耳机声音有延迟怎么办 我的世界手机版狼变色怎么办 我的世界开了光影太阳太刺眼怎么办 我的世界饥饿值掉的慢怎么办 我的世界合装备过于昂贵怎么办 我的世界故事模式屏幕是黑的怎么办 人物只剩下轮廓的图用ps怎么办 两年义务兵考军校分数不够怎么办 大学生兵考上军校后原学籍怎么办 我的世界工业附魔到精准采集怎么办 交换生在台期间遗失通行证怎么办 驾驶证上的号码是士兵证号怎么办