Skip to content

Commit d34ee5b

Browse files
Time: 1203 ms (66.21%) | Memory: 18.6 MB (51.81%) - LeetSync
1 parent cb1645a commit d34ee5b

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

3873-subsequence-sum-after-capping-elements/subsequence-sum-after-capping-elements.py

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,19 @@ def subsequenceSumAfterCapping(self, nums: List[int], k: int) -> List[bool]:
33
m = {}
44

55
for i in range(len(nums)):
6-
if nums[i] in m:
7-
m[nums[i]] += 1
8-
else:
9-
m[nums[i]] = 1
6+
m[nums[i]] = m.get(nums[i], 0) + 1
107

11-
sorted_keys = []
12-
13-
for key in m.keys():
14-
sorted_keys.append(key)
15-
16-
sorted_keys.sort()
8+
sorted_keys = sorted(m.keys())
179

1810
dp = [None] * (k + 1)
19-
2011
dp[0] = (0, 0)
2112

22-
for i in range(len(sorted_keys)):
23-
for j in range(sorted_keys[i], len(dp)):
24-
if dp[j - sorted_keys[i]] != None and dp[j] == None:
13+
dp_len = len(dp)
14+
sorted_key_len = len(sorted_keys)
15+
16+
for i in range(sorted_key_len):
17+
for j in range(sorted_keys[i], dp_len):
18+
if dp[j - sorted_keys[i]] is not None and dp[j] is None:
2519
if dp[j - sorted_keys[i]][0] == sorted_keys[i]:
2620
if dp[j - sorted_keys[i]][1] < m[sorted_keys[i]]:
2721
dp[j] = (sorted_keys[i], dp[j - sorted_keys[i]][1] + 1)
@@ -31,15 +25,14 @@ def subsequenceSumAfterCapping(self, nums: List[int], k: int) -> List[bool]:
3125
f = []
3226

3327
num_x = 0
34-
p = len(sorted_keys) - 1
35-
28+
p = sorted_key_len - 1
3629

3730
for x in range(len(nums), 0, -1):
3831
found = False
3932
for i in range(num_x + 1):
40-
if 0 > len(dp) - (i * x) - 1:
33+
if 0 > dp_len - (i * x) - 1:
4134
break
42-
if dp[len(dp) - (i * x) - 1] != None and dp[len(dp) - (i * x) - 1][0] <= x:
35+
if dp[dp_len - (i * x) - 1] is not None and dp[dp_len - (i * x) - 1][0] <= x:
4336
found = True
4437
break
4538
f.append(found)

0 commit comments

Comments
 (0)