diff --git "a/1351.\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260/1351-\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260.py" "b/1351.\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260/1351-\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260.py" new file mode 100644 index 0000000..7a7ef5d --- /dev/null +++ "b/1351.\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260/1351-\347\273\237\350\256\241\346\234\211\345\272\217\347\237\251\351\230\265\344\270\255\347\232\204\350\264\237\346\225\260.py" @@ -0,0 +1,16 @@ +class Solution(object): + def countNegatives(self, grid): + """ + :type grid: List[List[int]] + :rtype: int + """ + if not grid or not grid[0]: + return 0 + m, n = len(grid), len(grid[0]) + + res = 0 + for i in range(m): + for j in range(n): + if grid[i][j] < 0: + res += 1 + return res \ No newline at end of file diff --git "a/1352.\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257/1352-\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257.py" "b/1352.\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257/1352-\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257.py" new file mode 100644 index 0000000..e30f7ca --- /dev/null +++ "b/1352.\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257/1352-\346\234\200\345\220\216K\344\270\252\346\225\260\347\232\204\344\271\230\347\247\257.py" @@ -0,0 +1,23 @@ +class ProductOfNumbers(object): + + def __init__(self): + self.prefix = [1] + + def add(self, num): + """ + :type num: int + :rtype: None + """ + if num: + self.prefix.append(self.prefix[-1] * num) + else: + self.prefix = [1] + + def getProduct(self, k): + """ + :type k: int + :rtype: int + """ + if k >= len(self.prefix): + return 0 + return self.prefix[-1] / self.prefix[-k - 1] \ No newline at end of file diff --git "a/1353.\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256/1353-\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256.py" "b/1353.\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256/1353-\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256.py" new file mode 100644 index 0000000..cfc526c --- /dev/null +++ "b/1353.\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256/1353-\346\234\200\345\244\232\345\217\257\344\273\245\345\217\202\345\212\240\347\232\204\344\274\232\350\256\256\346\225\260\347\233\256.py" @@ -0,0 +1,33 @@ +class Solution(object): + def maxEvents(self, events): + """ + :type events: List[List[int]] + :rtype: int + """ + from heapq import * + if not events: + return 0 + # 排序并反转,反转是为了可以快速pop + events = sorted(events, key = lambda x:(x[0], x[1]))[::-1] + + queue = [] + res = 0 + for day in range(1, 10 ** 5 + 1): + # 把所有结束日期在当前日期之前的event都pop掉 + while queue and queue[0] < day: + heappop(queue) + + # 把所有开始日期大于等于当前日期的event都push进队列 + while events and events[-1][0] <= day: + last = events.pop() + heappush(queue, last[1]) + + if queue: + # 如果当前日期有可以去的event,就去这一个 + heappop(queue) + res += 1 + if not queue and not events: + # 如果所有event都参加完了 + break + + return res \ No newline at end of file diff --git "a/1354.\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204/1354-\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204.py" "b/1354.\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204/1354-\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204.py" new file mode 100644 index 0000000..ebf5cb0 --- /dev/null +++ "b/1354.\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204/1354-\345\244\232\346\254\241\346\261\202\345\222\214\346\236\204\351\200\240\347\233\256\346\240\207\346\225\260\347\273\204.py" @@ -0,0 +1,29 @@ +class Solution(object): + def isPossible(self, target): + """ + :type target: List[int] + :rtype: bool + """ + from heapq import * + if len(target) == 1: + return target[0] == 1 + + s = sum(target) + target = [-item for item in target] + heapify(target) + + while s > len(target): + # 找当前最大的数和第二大的数 + m = -heappop(target) + s_m = -target[0] + + # 更新 m 并更新 s + diff = s - m + if not diff: + break + new_m = m - (max(1, (m - s_m) / diff) * diff) + s = s - m + new_m + + heappush(target, -new_m) + + return not any([num != -1 for num in target]) \ No newline at end of file