代码改变世界

leetcode - Sqrt(x)

2013-11-19 16:32  张汉生  阅读(175)  评论(0)    收藏  举报

 

 1 class Solution {
 2 public:
 3     int sqrt(int x) {
 4         // IMPORTANT: Please reset any member data you declared, as
 5         // the same Solution instance will be reused for each test case.
 6         if (x<=0)
 7             return 0;
 8         int right = x;
 9         int left = 1;
10         int middle;
11         while (left <= right){
12             middle = (left+right)/2;
13             if (x/middle==middle)
14                 return middle;
15             else if (x/middle<middle)
16                 right = middle - 1;
17             else left = middle +1;
18         }
19         if (x/middle<middle)
20             return middle - 1;
21         return middle;
22     }
23 };