File tree 2 files changed +35
-11
lines changed
2 files changed +35
-11
lines changed Original file line number Diff line number Diff line change 6
6
const search = ( nums , target ) => {
7
7
let l = 0 , r = nums . length - 1 ;
8
8
9
- // odd 5,7 => [2,0,1]
10
9
while ( l <= r ) {
11
10
let m = Math . ceil ( ( l + r ) / 2 ) ;
12
11
13
- if ( target == nums [ m ] ) return m ;
12
+ if ( target == nums [ m ] ) {
13
+ console . log ( "Returning " + m )
14
+ return m ;
15
+ }
14
16
15
17
// chunk checking
16
18
if ( nums [ l ] <= nums [ m ] ) {
17
-
18
- if ( nums [ l ] <= target ) {
19
- r = m ;
20
- } else {
19
+ if ( target > nums [ m ] || target < nums [ l ] ) {
21
20
l = m + 1 ;
21
+ } else {
22
+ r = m - 1 ;
22
23
}
23
24
} else {
24
- if ( nums [ m ] <= target ) {
25
- l = m ;
26
- } else {
25
+ if ( target < nums [ m ] || target > nums [ r ] ) {
27
26
r = m - 1 ;
27
+ } else {
28
+ l = m ;
28
29
}
29
30
}
30
31
31
32
// if (nums[l] == nums[r]) return -1;
32
33
33
34
}
34
35
35
- // return -1;
36
+ console . log ( "NOt found" )
37
+ return - 1 ;
36
38
} ;
37
39
38
40
Original file line number Diff line number Diff line change 2
2
* @param {number[] } nums
3
3
* @param {number } target
4
4
* @return {number }
5
- */
5
+ */
6
6
const search = ( nums , target ) => {
7
+ let l = 0 , r = nums . length - 1 ;
7
8
9
+ while ( l <= r ) {
10
+ let m = Math . ceil ( ( l + r ) / 2 ) ;
11
+
12
+ if ( target == nums [ m ] ) return m ;
13
+
14
+ if ( nums [ l ] <= nums [ m ] ) {
15
+ if ( target > nums [ m ] || target < nums [ l ] ) {
16
+ l = m + 1 ;
17
+ } else {
18
+ r = m - 1 ;
19
+ }
20
+ } else {
21
+ if ( target < nums [ m ] || target > nums [ r ] ) {
22
+ r = m - 1 ;
23
+ } else {
24
+ l = m ;
25
+ }
26
+ }
27
+ }
28
+
29
+ return - 1 ;
8
30
} ;
You can’t perform that action at this time.
0 commit comments