File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } x
3
+ * @return {number }
4
+ */
5
+ var mySqrt = function ( x ) {
6
+ // let left = 1;
7
+ // let right = Math.floor(x / 2) + 1;
8
+ // console.log("l", left, "r", right);
9
+ // while (left <= right) {
10
+ // let m = Math.floor((left + right) / 2);
11
+ // if (m * m > x) {
12
+ // console.log("a");
13
+ // right = m - 1;
14
+ // } else if (m * m < x) {
15
+ // console.log("b");
16
+ // left = m + 1;
17
+ // } else {
18
+ // console.log("xx");
19
+ // return m;
20
+ // }
21
+ // }
22
+ // return right;
23
+
24
+ l = 0 ;
25
+ // agregamos 1 para arreglar el caso x=1
26
+ // en teoria no importa si le añadimos uno, ya que la potencia del numero que sigue no se acerca al numero que queremos encontrar.
27
+ r = parseInt ( x / 2 ) + 1 ;
28
+ while ( l <= r ) {
29
+ const m = Math . floor ( ( l + r ) / 2 ) ;
30
+ if ( m * m > x ) {
31
+ r = m - 1 ;
32
+ } else if ( m * m === x ) {
33
+ console . log ( "y" ) ;
34
+ return m ;
35
+ } else {
36
+ l = m + 1 ;
37
+ }
38
+ }
39
+ console . log ( "x" ) ;
40
+ return r ;
41
+ } ;
42
+
43
+ console . log ( "---------------------" ) ;
44
+ console . log ( mySqrt ( 1 ) ) ;
You can’t perform that action at this time.
0 commit comments