首页 > 其他 > 详细

Swap Nodes in Pairs

时间:2014-02-06 09:38:37      阅读:321      评论:0      收藏:0      [点我收藏+]

Divide two integers without using multiplication, division and mod operator.

bubuko.com,布布扣
 1 public class Solution {
 2     public int divide(int dividend, int divisor) {
 3         if(dividend ==0 || divisor==1)
 4             return dividend;
 5         int sign =1;
 6         if(dividend<0)
 7             sign *=-1;
 8         if(divisor<0)
 9             sign*=-1;
10         long res = 0;
11         long div = Math.abs((long) dividend);// don‘t forget the abs!
12         long dis = Math.abs((long) divisor);
13         long [] b = new long[32];
14         int start = 0;
15         while(dis<=div && start<32){ // here don‘t forget <32
16             b[start] = dis;
17             dis = dis<<1;
18             start++;
19         }
20         start--;
21         while(div>0 && start>=0){ 
22             if(div-b[start]>=0){ // just like this
23                 res += 1<<start;
24                 div-=b[start];
25             }
26             start--;
27         }
28         return (int) sign*(int)res;
29     }
30 }
View Code

 

Swap Nodes in Pairs

原文:http://www.cnblogs.com/krunning/p/3538590.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!