Skip to content
TuPengXiong edited this page Jun 21, 2017 · 5 revisions
java 中 int 占4个字节 1个字节8个bit
1>>1 =0  ==>0000 0000 0000 0000 0000 0000 0000 0001
          ->0000 0000 0000 0000 0000 0000 0000 0000 
          =0
1<<1=2   ==>0000 0000 0000 0000 0000 0000 0000 0001
          ->0000 0000 0000 0000 0000 0000 0000 0010
          =2
1>>>1=0  ==>0000 0000 0000 0000 0000 0000 0000 0001
          ->0000 0000 0000 0000 0000 0000 0000 0000 
          =0

-1>>>1=2147483647 ==>0000 0000 0000 0000 0000 0000 0000 0001
              ->反码 1111 1111 1111 1111 1111 1111 1111 1110
              ->移位 0111 1111 1111 1111 1111 1111 1111 1111
              =2147483647 
public class Solution {
    public int[] twoSum(int[] nums, int target) {
      int[] result = { 0, 0 };
		if (nums.length >= 2) {
			for (int i = 0; i < nums.length; i++) {
				result[0] = i;
				for (int j = i + 1; j < nums.length; j++) {
					result[1] = j;
					if (nums[i] + nums[j] == target) {
						return result;
					}
				}
			}

		}
		return result;
         
    }
}
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
          int l1Val = l1.val;
          int l2Val = l2.val;
          ListNode returnNode = new ListNode((l1Val+l2Val)%10);
          ListNode l1NextNode = l1.next;
          ListNode l2NextNode = l2.next;
          ListNode returnNextNode = returnNode;
          int pre = (l1Val+l2Val)/10;
         
          while(l1NextNode!=null || l2NextNode!=null){
              l1Val = 0;
              l2Val = 0;
              if(l1NextNode != null){
                  l1Val = l1NextNode.val;
                  l1NextNode = l1NextNode.next;
              }
              if(l2NextNode != null){
                  l2Val = l2NextNode.val;
                  l2NextNode = l2NextNode.next;
              }
              returnNextNode.next = new ListNode((l1Val+l2Val+pre)%10);
              pre = (l1Val+l2Val+pre)/10;
              returnNextNode =  returnNextNode.next;
          }
         
          if(l1NextNode == null && l2NextNode == null && pre>0){
              returnNextNode.next = new ListNode((l1Val+l2Val+pre)/10);
          }
        return returnNode;
    }
}
Clone this wiki locally