首页 > 其他分享 >好题分享、心路历程(力扣2173)——连续登录

好题分享、心路历程(力扣2173)——连续登录

时间:2023-01-01 18:55:44浏览次数:40  
标签:player 好题 number 力扣 2173 连续 id select row

【题目介绍】

该题为力扣2173,名为最多连胜的次数。

【题型分类】

属于连续专题。

官网标为困难题。

【思路分享】

这里的连续不属于时间连续,属于事件连续,采用两次 row_number() 技巧解题。

关键点:

1. 连续序列:针对事件,缺少连续序列,用 row_number() 构造连续序列,记为 rnk。

2. 不连续序列:针对事件,缺少不连续序列,用 row_number() 构造不连续序列,记为 rnk2。

3. 连续序列与不连续序列的差值:即为连续状态的分组结果,记为 grp。

题解:

# 连续(非常规)
with tmp4 as
(select player_id,max(streak) as longest_streak 
from
(select player_id,grp,count(*) as streak
from
(select *,
    row_number() over(partition by player_id order by match_day) as rnk2,
    (rnk-row_number() over(partition by player_id order by match_day)) as grp
from
(select *,
    row_number() over(partition by player_id order by match_day) as rnk
from Matches) as tmp1
where result='Win') as tmp2
group by player_id,grp) as tmp3
group by player_id)

# 名单表
,tmp as
(select distinct player_id
from Matches)

# 左连接
select tmp.player_id,ifnull(longest_streak,0) as longest_streak
from tmp left join tmp4
on tmp.player_id=tmp4.player_id

-END

标签:player,好题,number,力扣,2173,连续,id,select,row
From: https://www.cnblogs.com/peitongshi/p/17018412.html

相关文章

  • 好题分享、心路历程(力扣1225)
    【题目介绍】该题为力扣1225,名为报告系统状态的连续日期。【题型分类】属于连续专题。官网标为困难题。【思路分享】这里的连续属于时间连续,采用row_number()、subd......
  • 力扣---1262. 可被三整除的最大和
    给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。示例1:输入:nums=[3,6,5,1,8]输出:18解释:选出数字3,6,1和8,它们的和是18(可被3整除的最大和)。示例2......
  • 力扣每日一题2023.1.1---2351. 第一个出现两次的字母
    给你一个由小写英文字母组成的字符串s,请你找出并返回第一个出现两次的字母。注意:   如果a的第二次出现比b的第二次出现在字符串中的位置更靠前,则认为字母......
  • 力扣每日一题2022.12.31---2037. 使每位学生都有座位的最少移动次数
    一个房间里有n 个座位和n 名学生,房间用一个数轴表示。给你一个长度为n 的数组 seats ,其中 seats[i]是第i 个座位的位置。同时给你一个长度为n 的数组 stude......
  • 差分好题
    Atcoder[ABC221D]Onlinegames难度:\(832\)标签:差分离散化\(\mathtt{blog}\)......
  • 离散化好题
    Atcoder[ABC221D]Onlinegames难度:\(832\)标签:差分离散化\(\mathtt{blog}\)......
  • 力扣搜索插入位置
    目录题目解题思路代码本篇扯淡题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用......
  • 力扣二分查找
    题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,......
  • 力扣---88. 合并两个有序数组
    给你两个按非递减顺序排列的整数数组 nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按......
  • 力扣20 有效的括号
    题目:给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合......