小黑代码
class Solution:
def findContinuousSequence(self, target: int) -> List[List[int]]:
if target == 1:
return []
# 定义双指针
head = 1
tail = 1
# 中间变量
sum_ = 0
# 结果数组
res = []
while tail < target:
sum_ += tail
tail += 1
while sum_ > target:
sum_ -= head
head += 1
if sum_ == target:
res.append([i for i in range(head, tail)])
return res
双指针
class Solution:
def findContinuousSequence(self, target: int) -> List[List[int]]:
if target == 1:
return []
# 定义双指针
head = 1
tail = 1
# 中间变量
sum_ = 0
# 结果数组
res = []
while tail <= (target // 2) + 1:
sum_ += tail
tail += 1
while sum_ > target:
sum_ -= head
head += 1
if sum_ == target:
res.append([i for i in range(head, tail)])
return res
数据库练习
550. 游戏玩法分析 IV
# Write your MySQL query statement below
SELECT
ROUND(SUM(IF(a2.event_date IS NOT NULL, 1, 0)) / COUNT(a1.player_id), 2) AS 'fraction'
FROM
(SELECT
player_id,
MIN(event_date) AS login_date
FROM
Activity
GROUP BY
player_id
) AS a1 LEFT JOIN
Activity a2
ON a1.player_id = a2.player_id AND DATEDIFF(a2.event_date, a1.login_date) = 1
pandas练习
550. 游戏玩法分析 IV
import pandas as pd
def gameplay_analysis(activity: pd.DataFrame) -> pd.DataFrame:
# 转换类型
activity['event_date'] = pd.to_datetime(activity['event_date'])
# 取得每个用户的首次登陆时间
login_data = activity.groupby('player_id')['event_date'].min().reset_index()
# 合并表格
merge_data = activity.merge(login_data, left_on='player_id', right_on='player_id', suffixes = ('','_init'))
# 寻找对应记录
target_data = merge_data[merge_data['event_date']-merge_data['event_date_init']==pd.Timedelta(days=1)]
# 开始计算
target_num = target_data['player_id'].nunique()
num = activity['player_id'].nunique()
res = round(target_num/num, 2)
return pd.DataFrame([[res]], columns=['fraction'])
小黑生活
中午干饭
午间咖啡
小汤3《分解和弦练习曲打卡》
刷了武老师的短视频
早餐干饭
买个咖啡,看《编译原理》课程
午餐干饭
中午入职新伙伴见面会
下午练操
晚饭干饭
朝阳公园酸奶跑,跑完喝酸奶,喝完酸奶喝喜茶
开车送我回去喽
早餐干饭
午餐干饭