@@ -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