产品经理抛出一个需求:我想搞一个签到活动,对连续登陆时间久的,给与一定的奖品,来提升用户留存。
程序员:那你知道目前用户的最大的连续登陆天数吗?
那么问题来了,如果统计用户的连续最大登陆数呢?
思路拆解:连续登陆/签到是指登陆的天数隔为1
方法一:
观察下面列表,假设是某一用户的登陆数据,可以看到只需要统计连续最大的1就是该用户的最大登陆数
所以思路是:相邻的日期相减,拿到间隔数字,(连续最大的1的个数字+1)即为连续最大登陆数
比如2020-01-01 到2020-01-03 中间有2个连续的1,则最大连续登陆数是2+1=3天
日期 | 是否连续 | 间隔 |
2020/1/1 | —— | 0 |
2020/1/2 | 是 | 1 |
2020/1/3 | 是 | 1 |
2020/1/5 | 否 | 2 |
2020/1/6 | 是 | 1 |
2020/1/7 | 是 | 1 |
2020/1/8 | 是 |