Skip to content

35. Search Insert Position - #36

Open
akmhmgc wants to merge 3 commits into
mainfrom
35
Open

35. Search Insert Position#36
akmhmgc wants to merge 3 commits into
mainfrom
35

Conversation

@akmhmgc

@akmhmgc akmhmgc commented Sep 28, 2025

Copy link
Copy Markdown
Owner

解いた問題

35. Search Insert Position

使用言語

Ruby

次に解く問題

153. Find Minimum in Rotated Sorted Array

@akmhmgc akmhmgc added the ruby label Sep 28, 2025
@akmhmgc akmhmgc self-assigned this Sep 28, 2025
Comment thread 35/step1.md
target以上であればleft以上、middle未満のインデックスの範囲に答えがあるかもしれないのでright = middleとして探索を続ける
target未満であればmiddle + 1以上、right未満のインデックスの範囲に答えがあるかもしれないのでleft = middle + 1として探索を続ける

rightは常に答えの候補になり得えて、探索の度に答えに近づくので探索が打ち切られた時のright(left)が答えになるはず。

@akmhmgc akmhmgc Sep 28, 2025

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

理解が浅かった。

更新された時に言えることは、

  • leftより左はtargetより小さい
  • rightを含む右はtarget以上

なので探索が終わったタイミングでright == leftが答えになる。

Comment thread 35/step2.md
target以上であればleft以上、middle - 1以下のインデックスの範囲に答えがあるかもしれないのでright = middle - 1として探索を続ける
target未満であればmiddle + 1以上、right未満のインデックスの範囲に答えがあるかもしれないのでleft = middle + 1として探索を続ける

right + 1は常に答えの候補になり得えて、探索の度に答えに近づくので探索が打ち切られた時のright + 1が答えになるはず。

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rightより右はtarget以上
leftより左はtargetより小さい
という条件になるので、探索が終了したタイミングでのright + 1が答えになる。

Comment thread 35/step3.md
end
end
right
end

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

一文字変数を使っているstep1のコードと比較して読みやすくなっていると感じました。

Comment thread 35/step2.md
つまり、target以上ではなく、targetより大きくてインデックスが最も小さくなるインデックスを返すことになる。

### 「right の初期値は nums.size - 1 でもいいですか。」
right == leftが答えになるので、`nums.size`が答えになるパターンで間違った答えを返す。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同じことかもしれませんが、right 以下に求めたいインデックスがあるような設定で書いているため初期値は nums.size でないといけない、というように思いました。

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コメントありがとうございます!
具体例を考えないと反例を思いつかないというのが、まだ理解が浅い証拠かなと思い改めて整理してみました。

2cbcfb8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants