news 2026/6/15 14:15:03

力扣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/6/15 10:27:47

串口通讯的android 封装开箱即用!提供源代码!

功能概述 本文档总结了在Android应用中使用serialportlibrary实现串口通讯功能的完整过程。通过本次开发,成功添加了以下核心功能: 串口设备的打开与关闭 数据的发送与接收 用户友好的操作界面 实现细节 1. UI界面修改 在activity_main.xml中添加…

作者头像 李华
网站建设 2026/6/14 23:59:37

张量并行 (Tensor Parallelism, TP) 深度解析

张量并行 (Tensor Parallelism, TP) 深度解析 1. TP 只能用于 Transformer 吗? 答案是:不,但它在 Transformer 上用得最多,也最有效。 咱们从 CV 的角度来类比。TP 的核心思想是“拆分矩阵乘法”。任何包含巨大矩阵乘法 (YX⋅WY …

作者头像 李华
网站建设 2026/6/15 11:18:23

web3作业

【Web第三周】『12.9-12.14』 初步了解数据库(MySQL)初步了解sql注入漏洞练习sql语句搭建sql靶场 初步了解数据库(MySQL) 一、MySQL 基础认知 1. 什么是 MySQL? 一款开源的关系型数据库管理系统(RDBMS&…

作者头像 李华
网站建设 2026/6/15 11:20:47

vue基于Spring Boot的高校后勤报修管理系统的应用和研究_49k47q71

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

作者头像 李华
网站建设 2026/6/15 12:16:09

手把手玩转Buck变换器控制仿真

buck变换器的simulink开环仿真、电压环闭环仿真,电流环闭环仿真,电压电流环双闭环仿真。 Buck 电路 simulink 仿真 buck 电路 电流开环控制 电流闭环控制闭环控制包括:PID 控制,超前补偿,前馈控制,解耦控制…

作者头像 李华