Конин Георгий/sum-of-subarray-minimums — различия между версиями
Материал из DISCOPAL
(Новая страница: «==Задача== * Leetcode/sum-of-subarray-minimums ==Код== <source lang="python"> class Solution: def sumSubarrayMins(self, arr: List[int]) -> int:…») |
StasFomin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 31: | Строка 31: | ||
https://leetcode.com/problems/sum-of-subarray-minimums/submissions/1439106215/ | https://leetcode.com/problems/sum-of-subarray-minimums/submissions/1439106215/ | ||
+ | |||
+ | |||
+ | [[Участник:StasFomin|StasFomin]] 02:21, 6 ноября 2024 (UTC): {{BadStyle}} | ||
+ | |||
+ | Плюс оформите подстраницей личной страницы! Вот, [https://discopal.ispras.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9A%D0%BE%D0%BD%D0%B8%D0%BD_%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B9/k-th-smallest-prime-fraction&action=history переименовал одну из ваших], сообразите с остальными. |
Текущая версия на 02:32, 6 ноября 2024
Задача
Код
class Solution: def sumSubarrayMins(self, arr: List[int]) -> int: stack=[] out=0 for i in arr: if not stack: stack.append([i,1,0]) else: cnt=0 while stack and stack[-1][0]>i: val,oc,r=stack.pop() out+=(val*(cnt+oc))+(cnt*r*val) cnt+=oc stack.append([i,1+cnt,cnt]) cnt=0 while stack: val,oc,r=stack.pop() out+=(val*(cnt+oc))+(cnt*r*val) cnt+=oc return out%((10**9)+7)
Submission
https://leetcode.com/problems/sum-of-subarray-minimums/submissions/1439106215/
StasFomin 02:21, 6 ноября 2024 (UTC):
- Много проблем с PEP8, см. Blog:Advanced_Algorithms/Python-решения_—_давайте_потренируемся_их_сделать_питонистей, пожалуйста, проверьте чекером. Пофиг на докстринги, хотя бы именования переменных, пробелы после запятых и все такое.
Тут многое легко исправить автоформатером, а читаемость вашего питон-кода будет важна в других квестах курса.
Плюс оформите подстраницей личной страницы! Вот, переименовал одну из ваших, сообразите с остальными.