@@ -1185,5 +1185,56 @@ def climbStairs(self, n: int, costs: List[int]) -> int:
11851185
11861186 return dp [- 1 ]
11871187
1188+ def maxTotalValue (self , nums : List [int ], k : int ) -> int :
1189+ n = len (nums )
1190+ minnum = 99999999999999
1191+ maxnum = - 99999999999999
1192+ for i in range (n ):
1193+ minnum = min (minnum , nums [i ])
1194+ maxnum = max (maxnum , nums [i ])
1195+ return (maxnum - minnum ) * k
1196+
1197+ def maxTotalReward (self , rewardValues : List [int ]) -> int :
1198+ rewardValues .sort ()
1199+ n = len (rewardValues )
1200+ dp = [0 for _ in range (n )]
1201+ dp [0 ] = rewardValues [0 ]
1202+ for i in range (1 , n ):
1203+ idx = bisect_left (a = dp [:i ], x = rewardValues [i ])
1204+ if rewardValues [i ]:
1205+ idx -= 1
1206+ if idx > - 1 :
1207+ dp [i ] = dp [idx ] + rewardValues [i ]
1208+ else :
1209+ dp [i ] = rewardValues [i ]
1210+ print (idx )
1211+ print (dp )
1212+ return max (dp )
1213+
1214+ def hasSameDigits (self , s : str ) -> bool :
1215+ def exchange (nums ):
1216+
1217+ n = len (nums )
1218+ ans = []
1219+ for i in range (0 , n - 1 , 1 ):
1220+ ans .append ( (nums [i ] + nums [i + 1 ])% 10 )
1221+ return ans
1222+
1223+ nums = [int (i )for i in s ]
1224+ while len (nums ) > 2 :
1225+ nums = exchange (nums )
1226+ return nums [0 ] == nums [1 ]
1227+
1228+ def leftRightDifference (self , nums : List [int ]) -> List [int ]:
1229+ n = len (nums )
1230+ left = [0 for _ in range (n )]
1231+ right = [0 for _ in range (n )]
1232+ for i in range (1 , n ):
1233+ left [i ] = nums [i - 1 ] + left [i - 1 ]
1234+ for i in range (n - 2 , - 1 , - 1 ):
1235+ right [i ] = nums [i + 1 ] + right [i + 1 ]
1236+ ans = [abs (left [i ] - right [i ]) for i in range (n )]
1237+ return ans
1238+
11881239s = Solution ()
1189- print (s .removeSubstring ( s = "((()))()()()" , k = 1 ))
1240+ print (s .maxTotalReward ( [ 1 , 6 , 4 , 3 , 2 ] ))
0 commit comments