feat: thrusday
This commit is contained in:
30
pkg/search_in_rotated_sorted_array/main.go
Normal file
30
pkg/search_in_rotated_sorted_array/main.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package searchinrotatedsortedarray
|
||||||
|
|
||||||
|
func searchHelper(nums []int, target int, offset int) int {
|
||||||
|
if len(nums) == 0 {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
middle := len(nums) / 2
|
||||||
|
if target == nums[middle] {
|
||||||
|
return middle + offset
|
||||||
|
}
|
||||||
|
|
||||||
|
if nums[0] > nums[middle] {
|
||||||
|
if target >= nums[0] || target <= nums[middle] {
|
||||||
|
return searchHelper(nums[:middle], target, offset)
|
||||||
|
} else {
|
||||||
|
return searchHelper(nums[middle+1:], target, offset+(middle+1))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if target >= nums[0] && target <= nums[middle] {
|
||||||
|
return searchHelper(nums[:middle], target, offset)
|
||||||
|
} else {
|
||||||
|
return searchHelper(nums[middle+1:], target, offset+(middle+1))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Search(nums []int, target int) int {
|
||||||
|
return searchHelper(nums, target, 0)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user