Skip to content

Commit dc9aebd

Browse files
authored
search in rotated sorted array solution
1 parent 218962f commit dc9aebd

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
object Solution {
2+
def search(nums: Array[Int], target: Int): Int = {
3+
var l = 0
4+
var r = nums.length - 1
5+
while (l != r) {
6+
val mid = r - ((r - l) >> 1)
7+
if (nums(mid) > nums(0)) {
8+
l = mid
9+
} else {
10+
r = mid - 1
11+
}
12+
}
13+
l = r + 1
14+
r = l + nums.length
15+
while (l != r) {
16+
val mid = l + ((r - l) >> 1)
17+
if (nums(mid % nums.length) < target) {
18+
l = mid + 1
19+
} else {
20+
r = mid
21+
}
22+
}
23+
l %= nums.length
24+
if (nums(l) == target) l else -1
25+
}
26+
}

0 commit comments

Comments
 (0)