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