单调双端队列+前缀和
class Solution:
def shortestSubarray(self, nums: List[int], k: int) -> int:
# 数组长度
n = len(nums)
# 计算前缀和数组
arr = [0]
for i in range(n):
arr.append(nums[i]+arr[i])
# 定义单调双端队列
deque = collections.deque([0])
# 结果变量
res = n + 1
# 开始遍历
for i in range(1, n+1):
# 遍历满足条件的元素
while deque and arr[deque[-1]] >= arr[i]:
deque.pop()
while deque and arr[i]-arr[deque[0]]>=k:
res = min(res, i-deque.popleft())
deque.append(i)
return res if res != n+1 else -1
数据库练习
511. 游戏玩法分析 I
sql
小黑独立作出
# Write your MySQL query statement below
SELECT
player_id,
MIN(event_date) AS 'first_login'
FROM
Activity
GROUP BY
player_id
pandas
import pandas as pd
def game_analysis(activity: pd.DataFrame) -> pd.DataFrame:
data = activity.groupby('player_id')['event_date'].min().reset_index()
return data.rename(columns={'event_date':'first_login'})
小黑生活
等学姐出来一块儿吃午饭
继续练操,12:30-13:30
应届生小伙伴们一起喝咖啡
买的毛肚和羊肉到了,给自己简单过一个生日,为了攒健身课的前,前期好好提升自己
第一期最后一节健身课打卡
早餐
早上起来当苦力干活啦,活力满满的一天开始了