news 2026/4/18 6:16:48

力扣1747-应该被禁止的Leetflex帐户

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣1747-应该被禁止的Leetflex帐户

表:LogInfo

+-------------+----------+ | Column Name | Type | +-------------+----------+ | account_id | int | | ip_address | int | | login | datetime | | logout | datetime | +-------------+----------+ 该表可能包含重复项。 该表包含有关Leetflex帐户的登录和注销日期的信息。 它还包含了该账户用于登录和注销的网络地址的信息。 题目确保每一个注销时间都在登录时间之后。

编写解决方案,查找那些应该被禁止的Leetflex帐户编号account_id。 如果某个帐户在某一时刻从两个不同的网络地址登录了,则这个帐户应该被禁止。

可以以任何顺序返回结果。

查询结果格式如下例所示。

示例 1:

输入:LogInfo table: +------------+------------+---------------------+---------------------+ | account_id | ip_address | login | logout | +------------+------------+---------------------+---------------------+ | 1 | 1 | 2021-02-01 09:00:00 | 2021-02-01 09:30:00 | | 1 | 2 | 2021-02-01 08:00:00 | 2021-02-01 11:30:00 | | 2 | 6 | 2021-02-01 20:30:00 | 2021-02-01 22:00:00 | | 2 | 7 | 2021-02-02 20:30:00 | 2021-02-02 22:00:00 | | 3 | 9 | 2021-02-01 16:00:00 | 2021-02-01 16:59:59 | | 3 | 13 | 2021-02-01 17:00:00 | 2021-02-01 17:59:59 | | 4 | 10 | 2021-02-01 16:00:00 | 2021-02-01 17:00:00 | | 4 | 11 | 2021-02-01 17:00:00 | 2021-02-01 17:59:59 | +------------+------------+---------------------+---------------------+输出:+------------+ | account_id | +------------+ | 1 | | 4 | +------------+解释:Account ID 1 --> 该账户从 "2021-02-01 09:00:00" 到 "2021-02-01 09:30:00" 在两个不同的网络地址(1 and 2)上激活了。它应该被禁止. Account ID 2 --> 该账户在两个不同的网络地址 (6, 7) 激活了,但在不同的时间上. Account ID 3 --> 该账户在两个不同的网络地址 (9, 13) 激活了,虽然是同一天,但时间上没有交集. Account ID 4 --> 该账户从 "2021-02-01 17:00:00" 到 "2021-02-01 17:00:00" 在两个不同的网络地址 (10 and 11)上激活了。它应该被禁止.

思路:

1、使用同一张日志表进行自连接
题目需要判断同一个账号是否在不同 IP 地址下存在登录时间重叠的情况,因此对登录日志表进行自连接,将其分别作为两份数据进行比较。

2、限定为同一账号的登录记录
在自连接条件中,首先要求两条日志记录属于同一个账号,这样才能判断该账号在不同时间段、不同 IP 下的登录行为是否存在冲突。

3、筛选不同 IP 地址的登录行为
通过比较两条日志记录的 IP 地址,排除同一 IP 的情况,只保留在不同 IP 地址下发生的登录记录,以满足题目对异常登录的判定要求。

4、判断登录时间是否存在重叠
通过比较两次登录的登录时间和登出时间,判断两个时间区间是否存在交集。如果一条记录的登出时间晚于或等于另一条记录的登录时间,且另一条记录的登录时间早于或等于前一条记录的登出时间,则说明登录时间发生了重叠。

5、去重并输出账号结果
最后只返回满足上述条件的账号编号,并通过去重处理,确保每个账号在结果中只出现一次。

代码:

select distinct a.account_id as account_id from LogInfo a, LogInfo b where a.account_id = b.account_id and a.ip_address != b.ip_address and a.logout <= b.logout and b.login <= a.logout
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 18:31:11

终极SQL格式化神器:3分钟让你的数据库代码焕然一新

终极SQL格式化神器&#xff1a;3分钟让你的数据库代码焕然一新 【免费下载链接】SqlBeautifier A sublime plugin to format SQL. It supports both sublime 2 and 3. 项目地址: https://gitcode.com/gh_mirrors/sq/SqlBeautifier 还在为杂乱的SQL代码而烦恼吗&#xff…

作者头像 李华
网站建设 2026/4/17 17:20:09

38、算术计算、扩展与数组操作全解析

算术计算、扩展与数组操作全解析 算术计算与 bc 计算器语言 在日常的脚本编写中,我们经常会遇到各种数学计算的需求。虽然 shell 能够处理各类整数算术,但当我们需要进行更高级的数学运算,或者使用浮点数时,shell 就显得力不从心了,这时就需要借助外部程序来完成这些任务…

作者头像 李华
网站建设 2026/4/11 15:10:14

LCD Image Converter:嵌入式显示资源生成的技术实践

LCD Image Converter&#xff1a;嵌入式显示资源生成的技术实践 【免费下载链接】lcd-image-converter Tool to create bitmaps and fonts for embedded applications, v.2 项目地址: https://gitcode.com/gh_mirrors/lc/lcd-image-converter 随着物联网设备和嵌入式系统…

作者头像 李华
网站建设 2026/4/15 9:12:53

AI数字人制作门槛再降低!Linly-Talker一站式解决方案来了

AI数字人制作门槛再降低&#xff01;Linly-Talker一站式解决方案来了 在电商直播间里&#xff0c;一个虚拟主播正用流利的中文介绍新款手机&#xff0c;口型精准、表情自然&#xff0c;甚至能实时回答观众提问&#xff1b;而在某家医院的导诊页面上&#xff0c;一位“AI医生”正…

作者头像 李华
网站建设 2026/4/16 22:12:24

Excalidraw实战应用:基于Three.js扩展手绘风格3D图表可视化

Excalidraw实战应用&#xff1a;基于Three.js扩展手绘风格3D图表可视化 在一次远程架构评审会上&#xff0c;团队成员盯着屏幕上规整却冰冷的微服务拓扑图沉默良久——线条笔直、节点对齐&#xff0c;一切都太“完美”了&#xff0c;反而让人不敢轻易提出质疑。这正是现代技术沟…

作者头像 李华
网站建设 2026/4/17 17:05:03

SUSTechPOINTS终极指南:快速掌握3D点云标注技巧

SUSTechPOINTS终极指南&#xff1a;快速掌握3D点云标注技巧 【免费下载链接】SUSTechPOINTS 3D Point Cloud Annotation Platform for Autonomous Driving 项目地址: https://gitcode.com/gh_mirrors/su/SUSTechPOINTS 在自动驾驶技术快速发展的今天&#xff0c;3D点云标…

作者头像 李华