File tree 2 files changed +36
-7
lines changed
2 files changed +36
-7
lines changed Original file line number Diff line number Diff line change @@ -51,26 +51,26 @@ static double mySqrt(double n)
51
51
}
52
52
#endif
53
53
54
- static int mySqrt (int x )
54
+ int mySqrt (int x )
55
55
{
56
56
if (x == 0 ) {
57
57
return 0 ;
58
58
}
59
59
60
- unsigned int left = 1 ;
61
- unsigned int right = (unsigned int ) x ;
62
- unsigned int mid = left + (right - left ) / 2 ;
60
+ unsigned int lo = 1 ;
61
+ unsigned int hi = (unsigned int ) x ;
62
+ unsigned int mid = lo + (hi - lo ) / 2 ;
63
63
for (; ;) {
64
64
if (mid > x /mid ) {
65
- right = mid ;
65
+ hi = mid ;
66
66
} else {
67
67
if (mid + 1 > x /(mid + 1 )) {
68
68
break ;
69
69
} else {
70
- left = mid ;
70
+ lo = mid ;
71
71
}
72
72
}
73
- mid = left + (right - left ) / 2 ;
73
+ mid = lo + (hi - lo ) / 2 ;
74
74
}
75
75
76
76
return mid ;
Original file line number Diff line number Diff line change
1
+ #include < bits/stdc++.h>
2
+
3
+ using namespace std ;
4
+
5
+ class Solution {
6
+ public:
7
+ int mySqrt (int x) {
8
+ if (x == 0 ) {
9
+ return 0 ;
10
+ }
11
+
12
+ unsigned int lo = 1 , hi = x;
13
+ unsigned int mid = (lo + hi) / 2 ;
14
+ for (; ;) {
15
+ if (mid > x / mid) {
16
+ hi = mid;
17
+ } else {
18
+ if (mid + 1 > x / (mid + 1 )) {
19
+ break ;
20
+ } else {
21
+ lo = mid;
22
+ }
23
+ }
24
+ mid = (lo + hi) / 2 ;
25
+ }
26
+
27
+ return mid;
28
+ }
29
+ };
You can’t perform that action at this time.
0 commit comments