news 2026/8/23 23:07:43

力扣1264-页面推荐

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣1264-页面推荐

朋友关系列表:Friendship

+---------------+---------+ | Column Name | Type | +---------------+---------+ | user1_id | int | | user2_id | int | +---------------+---------+ (user1_id, user2_id) 是这张表具有唯一值的列的组合。 这张表的每一行代表着 user1_id 和 user2_id 之间存在着朋友关系。

喜欢列表:Likes

+-------------+---------+ | Column Name | Type | +-------------+---------+ | user_id | int | | page_id | int | +-------------+---------+ (user_id, page_id) 是这张表具有唯一值的列的组合。 这张表的每一行代表着 user_id 喜欢 page_id。

编写解决方案,向user_id= 1 的用户,推荐其朋友们喜欢的页面。不要推荐该用户已经喜欢的页面。

任意顺序返回结果,其中不应当包含重复项。

返回结果的格式如下例所示。

示例 1:

输入:Friendship table: +----------+----------+ | user1_id | user2_id | +----------+----------+ | 1 | 2 | | 1 | 3 | | 1 | 4 | | 2 | 3 | | 2 | 4 | | 2 | 5 | | 6 | 1 | +----------+----------+ Likes table: +---------+---------+ | user_id | page_id | +---------+---------+ | 1 | 88 | | 2 | 23 | | 3 | 24 | | 4 | 56 | | 5 | 11 | | 6 | 33 | | 2 | 77 | | 3 | 77 | | 6 | 88 | +---------+---------+输出:+------------------+ | recommended_page | +------------------+ | 23 | | 24 | | 56 | | 33 | | 77 | +------------------+解释:用户1 同 用户2, 3, 4, 6 是朋友关系。 推荐页面为: 页面23 来自于 用户2, 页面24 来自于 用户3, 页面56 来自于 用户3 以及 页面33 来自于 用户6。 页面77 同时被 用户2 和 用户3 推荐。 页面88 没有被推荐,因为 用户1 已经喜欢了它。

思路:

1、先从 Friendship 表中查出用户 1 的所有朋友。
由于好友关系可能出现在 user1_id 或 user2_id 中,因此分别查询两种情况并合并结果。

2、在 Likes 表中,根据上一步得到的好友 ID,查找这些朋友点赞过的页面。

3、排除用户 1 自己已经点赞过的页面,确保推荐结果符合题意。

4、对最终结果进行去重,避免同一个页面重复出现。

select distinct l.page_id as recommended_page from likes l where l.user_id in ( select f.user1_id from friendship f where f.user2_id = 1 union all select f.user2_id from friendship f where f.user1_id = 1 ) and l.page_id not in ( select page_id from likes where user_id = 1 );
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 19:22:41

微信小程序_WXML

图片&#xff1a;等比例填充&#xff08;头像&#xff09;&#xff1a;mode“aspectFill”<image src"{{userInfo ? userInfo.avatarUrl :/images/1.png}}" mode"aspectFill"></image>

作者头像 李华
网站建设 2026/8/22 19:20:37

Springboot连锁家政保洁管理系统03zmn(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能&#xff1a;分店管理员,用户,保洁员,通知信息,独立服务,团队服务,独立服务信息,团队服务信息,独立服务订单,团队服务订单,团队派单,完成订单,独立服务取消,团队服务取消开题报告内容基于SpringBoot的连锁家政保洁管理系统开题报告一、研究背景与意义研…

作者头像 李华
网站建设 2026/8/24 15:12:48

Redis原理篇-Dict的rehash

** 不管是扩容还是收缩&#xff0c;必定会创建新的哈希表&#xff0c;导致哈希表的size和sizemask变化&#xff0c;而key的查询与sizemask有关。因此必须对哈希表中的每一个key重新计算索引&#xff0c;插入新的哈希表&#xff0c;这个过程称为rehash。过程是这样的&#xff1a…

作者头像 李华
网站建设 2026/8/23 21:58:55

计算机考研408【计算机网络】核心知识点总结

计算机网络作为考研408的重要组成部分&#xff0c;占总分约25分&#xff0c;由选择题和综合应用题构成。掌握计算机网络的基本概念、原理和方法是备考的关键 &#xff0c;尤其要理解OSI参考模型与TCP/IP模型的对应关系&#xff0c;以及各层协议的工作原理。本文将系统梳理计算机…

作者头像 李华
网站建设 2026/8/22 5:24:35

vue基于Spring Boot的公务员考试交流平台的应用和研究_729q3563

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华