Skip to content

Commit e09c7d6

Browse files
committed
refactor search in rotated sorted array
1 parent c5b1b9d commit e09c7d6

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

go/search_in_rotated_sorted_array.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ func searchClosed(nums []int, target int) int {
55
left, right := 0, len(nums)-1
66
for left <= right {
77
mid := left + (right-left)/2
8-
if target == nums[mid] {
8+
if nums[mid] == target {
99
return mid
1010
}
1111
if nums[left] <= nums[mid] {
@@ -26,14 +26,15 @@ func searchClosed(nums []int, target int) int {
2626
}
2727

2828
// 半閉区画ではleft~right-1が未探索で、rightは常に探索済み
29+
// そのため、for文の条件はleft < rightとなる(left=1, right=2のときmid=1となり、未探索のleftのみが探索の対象となる)
2930
func searchHalfClosed(nums []int, target int) int {
3031
left, right := 0, len(nums)
3132
for left < right {
3233
mid := left + (right-left)/2
3334
if nums[mid] == target {
3435
return mid
3536
}
36-
if nums[left] < nums[mid] { // この問題の条件では全ての要素が異なるので、nums[left] == nums[mid]の時点で-1を返せばいいので、<=とする必要はない
37+
if nums[left] < nums[mid] {
3738
if nums[left] <= target && target < nums[mid] { // leftがtargetの可能性もあるので<=とする
3839
right = mid
3940
} else {

0 commit comments

Comments
 (0)