不用+-求两数之和

不用+/-求两数之和

问题

这个题目说的是,给你两个整数,在不使用 +/- 这两个运算符的前提下,求它们的和。

代码

public class AlgoCasts {

  public int getSumRecursive(int a, int b) {
    return b == 0 ? a : getSumRecursive(a^b, (a&b)<<1);
  }

  // Time: O(m), Space: O(1)
  public int getSumIterative(int a, int b) {
    while (b != 0) {
      int sum = a ^ b;
      int carry = (a & b) << 1;
      a = sum;
      b = carry;
    }
    return a;
  }

}

  转载请注明: ForwardXu 不用+-求两数之和

 上一篇
二叉树的最小深度 二叉树的最小深度
二叉树的最小深度问题 这个题目说的是,给你一棵二叉树,你要找到从根节点到最近的叶子节点的深度。 比如说,给你的二叉树是: 1 / \ 2 4 / \ 8 16 这棵树有 3 个
2018-12-16
下一篇 
链表划分 链表划分
链表划分问题 这个题目说的是,给你一个单链表和一个数字,你要把小于这个数字的节点都移到链表前面,大于等于这个数字的节点都移到链表后面。并且在较小和较大的这两堆节点中,节点之间的相对顺序保持不变。 比如说,给你的单链表是: 0 -> 4 -
2018-12-12
  目录