news 2026/4/23 10:11:04

力扣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/19 18:01:50

FaceFusion与GitHub Pages结合:搭建静态文档站点的最佳实践

FaceFusion 与 GitHub Pages 结合&#xff1a;构建现代化静态文档站点 在 AI 工具快速迭代的今天&#xff0c;一个项目能否被广泛采用&#xff0c;往往不只取决于其技术能力&#xff0c;更在于它是否具备清晰、可维护、易于访问的文档体系。以 FaceFusion 为例——这款基于深度…

作者头像 李华
网站建设 2026/4/22 23:00:44

AutoGLM:让手机听懂人话的智能助手

AutoGLM&#xff1a;让手机听懂人话的智能助手 【免费下载链接】androidgen-glm-4-9b 项目地址: https://ai.gitcode.com/zai-org/androidgen-glm-4-9b 你是否曾经幻想过&#xff0c;只要对手机说句话&#xff0c;它就能帮你完成所有操作&#xff1f;现在&#xff0c;这…

作者头像 李华
网站建设 2026/4/18 3:05:25

Excalidraw + AI 黑科技绘图?开源白板实现智能草图生成

Excalidraw AI&#xff1a;当手绘白板遇上智能生成 在一次远程产品评审会上&#xff0c;团队卡在了架构图的绘制上。有人提议用 Figma&#xff0c;但加载缓慢、操作复杂&#xff1b;有人想手画拍照上传&#xff0c;又显得不够正式。就在僵持之际&#xff0c;一位工程师输入一…

作者头像 李华
网站建设 2026/4/22 0:27:32

FaceFusion在游戏NPC生成中的实验性应用:动态角色面容合成

FaceFusion在游戏NPC生成中的实验性应用&#xff1a;动态角色面容合成 在现代开放世界游戏中&#xff0c;成千上万的NPC穿行于街巷之间&#xff0c;他们本应是构成虚拟社会真实感的关键。然而&#xff0c;玩家却常常陷入“似曾相识”的尴尬——同一个脸模被反复套用&#xff0c…

作者头像 李华
网站建设 2026/4/16 20:31:54

OneDark-Pro 技术解析:VS Code 主题系统的高级实现方案

OneDark-Pro 技术解析&#xff1a;VS Code 主题系统的高级实现方案 【免费下载链接】OneDark-Pro Atoms iconic One Dark theme for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/on/OneDark-Pro OneDark-Pro 作为 Visual Studio Code 生态中下载量超过…

作者头像 李华
网站建设 2026/4/17 17:31:39

Qwen-Image-Lightning:重塑AI绘画的极速革命

Qwen-Image-Lightning&#xff1a;重塑AI绘画的极速革命 【免费下载链接】Qwen-Image-Lightning 项目地址: https://ai.gitcode.com/hf_mirrors/lightx2v/Qwen-Image-Lightning 在人工智能创作领域&#xff0c;一场关于速度与质量的革命正在悄然发生。Qwen-Image-Light…

作者头像 李华