Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions subarray-sum-equals-k.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
自分で書いてTLEしたもの。

```py
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
res = 0
for index, num in enumerate(nums):
sum = 0
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Build-in な名前はできれば使いません。
https://docs.python.org/3/library/functions.html

j = 0
while index + j <= len(nums) - 1:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

< len(nums) のほうが普通でしょう。

sum += nums[index + j]
j += 1
if sum == k:
res += 1
return res
```

1回目:解答を見てなんとかアクセプト。

```py
from collections import defaultdict
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
res = 0
sum_to_counts = defaultdict(int)
sum_to_counts[0] = 1
current_sum = 0
for num in nums:
current_sum += num
if current_sum - k in sum_to_counts:
res += sum_to_counts[current_sum - k]
sum_to_counts[current_sum] += 1
return res
```

2回目:renameとif節の削除。

```py
from collections import defaultdict
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
res = 0
current_sum = 0
sum_count = defaultdict(int)
sum_count[0] = 1
for num in nums:
current_sum += num
res += sum_count[current_sum - k]
sum_count[current_sum] += 1
return res
```

3回目:current -> cur とrename.

```py
from collections import defaultdict
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
res = 0
cur_sum = 0
sum_count = defaultdict(int)
sum_count[0] = 1
for num in nums:
cur_sum += num
res += sum_count[cur_sum - k]
sum_count[cur_sum] += 1
return res
```