news 2026/9/24 18:17:45

力扣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/9/21 20:37:17

基于MATLAB的SIFT特征汽车车标识别系统

摘要:随着智能交通与视频监控技术的快速发展,汽车品牌识别在车辆管理、智能安防和交通监控等领域具有重要的应用价值。然而在实际场景中,车标目标常受到复杂背景、尺度变化、姿态旋转以及光照条件变化等因素的影响,给车标的准确识…

作者头像 李华
网站建设 2026/9/25 6:35:04

前端与数据库交互

1. 前端角色:发起请求和处理响应前端主要负责:收集用户输入数据通过HTTP请求调用后端API处理响应并更新UI2. 基础前端代码示例(使用Fetch API)// API服务模块 class ApiService {constructor(baseURL) {this.baseURL baseURL;}//…

作者头像 李华
网站建设 2026/9/24 20:56:41

Windows系统文件werui.dll缺少或损坏 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华