-
Notifications
You must be signed in to change notification settings - Fork 0
Create TwySum.md #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
print(nums) # [2, 7, 11, 15] | ||
print(hashmap) # {15: 3, 2: 0, 11: 2, 7: 1} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Print()必要ないです
for j in range(i+1, len(nums)): | ||
if nums[i]+nums[j]==target: | ||
return [i,j] | ||
break |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
returnしたあとはbreak読まれないので必要ないです
for j in range(i+1, len(nums)): | ||
if nums[i]+nums[j]==target: | ||
return [i,j] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
演算子の間にはスペースを空けることをお勧めします
https://peps.python.org/pep-0008/#whitespace-in-expressions-and-statements
for i in range(len(nums)): | ||
hashmap[nums[i]] = i | ||
print(nums) # [2, 7, 11, 15] | ||
print(hashmap) # {15: 3, 2: 0, 11: 2, 7: 1} | ||
for i in range(len(nums)): | ||
complement = target - nums[i] | ||
if complement in hashmap and hashmap[complement] != i: # dict[key]=value | ||
return [i, hashmap[complement]] | ||
return [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
二つforループ書くのではなく以下のようにすれば一つのforループで簡潔できます
num_to_index = {}
for i in range(len(nums)):
complement = target - nums[i]
if complement in num_to_index:
return [num_to_index[complement], i]
num_to_index[nums[i], i]
# NOTE 余力があるなら異常な入力を想定してraiseする
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
公式解答に倣ってforループ2つ書いたのですが,こちらのほうが簡潔ですね.ありがとうございます.
ウェブフックの設定ができていないかもしれません。練習会参加マニュアルをご参照ください。 コメント集やdiscordで他の人が書いたコードを(大変ではない程度に)読むことも勉強になるのでおすすめです。 |
class Solution(object): | ||
def twoSum(self, nums, target): | ||
""" | ||
:type nums: List[int] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python2になっている気がします。
|
||
# Step 3 | ||
何も見ないで実装 | ||
```python |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python2 になっていますか、Python3 になっていますか。3にしたほうがいいでしょう。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ご指摘ありがとうございます.python2になっているようでしたので,次回からpython3にします.
return [i, hashmap[complement]] | ||
return [] | ||
``` | ||
実行時間は5ms同じコードなのに実行時間が違う.他に見るべき指標があるかも. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
あまりその実行時間はあてになりません。また統計ノイズが大きいので時間を計測するときにはしたのようにします。
https://docs.google.com/document/d/11HV35ADPo9QxJOpJQ24FcZvtvioli770WWdZZDaLOfg/edit?tab=t.0#heading=h.isflp7vsmzk2
一方で、実行時間がどれくらい問題になるのかは考えるべきです。
|
||
|
||
# Step 2 | ||
PRや公式解答を参照. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LeetCode 公式は、問題があるコードが多いので、分かっていないならば参考にしないほうがいいです。
また、何かを参考にしたらそれについてのリンクを張っておきましょう。
:type target: int | ||
:rtype: List[int] | ||
""" | ||
hashmap = {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
意味に基づいて変数名をつけてあげるとわかりやすくなると思います。例えば num_to_index などがありうると思います。
:rtype: List[int] | ||
""" | ||
hashmap = {} | ||
for i in range(len(nums)): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
好みかもしれませんが、enumerate を使うこともできますね。
https://docs.python.org/3.13/library/functions.html#enumerate
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
試してみます.ありがとうございます.
return [i, hashmap[complement]] | ||
return [] | ||
``` | ||
実行時間は5ms同じコードなのに実行時間が違う.他に見るべき指標があるかも. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LeetCode 上の実行時間はブレが大きいらしいので目安程度と思った方が良さそうです。
No description provided.