Skip to content

Commit 0136d91

Browse files
committed
another solution for Search in Rotated Sorted Array
1 parent 9667dcc commit 0136d91

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

go/search_in_rotated_sorted_array.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//lint:file-ignore U1000 Ignore all unused code
22
package main
33

4-
func searchInRotatedSortedArray(nums []int, target int) int {
4+
func search_closed(nums []int, target int) int {
55
left, right := 0, len(nums)-1
66
for left <= right {
77
mid := (left + right) / 2
@@ -24,3 +24,27 @@ func searchInRotatedSortedArray(nums []int, target int) int {
2424
}
2525
return -1
2626
}
27+
28+
func search_half_closed(nums []int, target int) int {
29+
left, right := 0, len(nums)
30+
for left < right {
31+
mid := (left + right) / 2
32+
if target == nums[mid] {
33+
return mid
34+
}
35+
if nums[left] <= nums[mid] {
36+
if nums[left] <= target && target < nums[mid] {
37+
right = mid
38+
} else {
39+
left = mid + 1
40+
}
41+
} else {
42+
if nums[mid] < target && target <= nums[right-1] {
43+
left = mid + 1
44+
} else {
45+
right = mid
46+
}
47+
}
48+
}
49+
return -1
50+
}

0 commit comments

Comments
 (0)