1. Two Sum#11
Conversation
| two_sum = nums[i] + nums[j] | ||
| if target == two_sum: | ||
| return [i, j] | ||
| raise Exception("No Solution Found") |
There was a problem hiding this comment.
https://docs.python.org/3/library/exceptions.html#bltin-exceptions
Built-in Exceptions を一通り見ておきましょう。
この文脈で、一番近い Exception はどれかも考えてみましょう。
ここに3つ大事なことがあります。
- 「公式ドキュメントに目を通す」という行動を取りたくなること自体が大事です。つまり、結果ではなくて欲求を評価しましょう。
- 何を使うかではなくて、何は不適切であると感じたかも大事です。つまり、結果ではなくて過程を評価しましょう。
- 最終的にはエンジニアリングという目的との関係から評価します。つまり、結果ではなくて目的を評価しましょう。
これは、練習すべてに通じることかと思います。
There was a problem hiding this comment.
共有ありがとうございます。組み込み例外は一通り確認します。
3つの大事なことは自分の一番できていない箇所なので、今後も意識していきます。
hayashi-ay
left a comment
There was a problem hiding this comment.
良いと思います。
(特にコメントすることがないので)もし配列がソート済みだとすると、他の解法など思いつきますでしょうか。
https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/
5分考えてみたのですが、ハッシュテーブルを使う方法しか思いつきませんでした。 |
そうです。左右の両端から試していって範囲を狭めていけます。たとえば以下のような配列があるとして、
1 + 15の合計がtargetより小さい場合は |
|
いいと思いました |
| def twoSum(self, nums: List[int], target: int) -> List[int]: | ||
| num_to_indexes = {} | ||
| for index, num in enumerate(nums): | ||
| difference = target - num |
There was a problem hiding this comment.
補数であるということもできるかと思います。なのでcomplementという変数名を使うのもありかなと思います。
https://leetcode.com/problems/two-sum/description/