​LeetCode刷题实战550:游戏玩法分析 IV

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 游戏玩法分析 IV,我们先来看题面:
https://leetcode-cn.com/problems/game-play-analysis-iv/
​LeetCode刷题实战550:游戏玩法分析 IV
​LeetCode刷题实战550:游戏玩法分析 IV

解题

本题要求计算一个比值,分母是所有不同选手的数量,分子是那些首次在设备登录后连续第二天又登录的选手数量。

分母很容易求,难点在于分子的计算。要计算分子,首先要找到每个选手的首次登录日期。然后,将该查询作为一个临时表与原表连接,再筛选出那些登录日期与首次登录日期相差一天的记录,最后计算数量即可。

SELECT ROUND
  (
    (
      SELECT 
        COUNT(
          IF(DATEDIFF(a1.event_date, a2.min_date) = 1, 1, null)
          )
      FROM
        Activity a1,
        (
          SELECT
            player_id,
            MIN(event_date) AS min_date
          FROM
            Activity
          GROUP BY player_id
        ) a2
      WHERE
        a1.player_id = a2.player_id
    )
    / COUNT(DISTINCT(player_id))
, 2) fraction
FROM
  Activity

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:
LeetCode1-540题汇总,希望对你有点帮助!
LeetCode刷题实战541:反转字符串 II
LeetCode刷题实战542:01 矩阵
LeetCode刷题实战543:二叉树的直径
LeetCode刷题实战544:输出比赛匹配对
LeetCode刷题实战545:二叉树的边界
LeetCode刷题实战546:移除盒子
LeetCode刷题实战547:省份数量
LeetCode刷题实战548:将数组分割成和相等的子数组
LeetCode刷题实战549:二叉树中最长的连续序列

​LeetCode刷题实战550:游戏玩法分析 IV


本篇文章来源于微信公众号:程序IT圈

原创文章,作者:栈长,如若转载,请注明出处:https://www.cxyquan.com/20569.html

(0)
上一篇 2022年3月10日 13:52
下一篇 2022年3月12日 13:52

相关推荐

发表评论

登录后才能评论