我们假定一个用户搜索的关键词是他感兴趣的,现在请你基于这个前提设计一个小红书购物的推荐算法。 该算法的核心思想如下:首先给定一个商品清单,其中有每个商品所包含的关键词属性,然后给出用户最近搜索过的一些关键词,请你将包含用户搜索过的更多关键词的商品排在用户目录的前面。 对于包含关键词数量相同的商品,我们按默认顺序排序,也就是说按输入给定的顺序优先级。

区块链毕设网qklbishe.com为您提供问题的解答

我们假定一个用户搜索的关键词是他感兴趣的,现在请你基于这个前提设计一个小红书购物的推荐算法。
该算法的核心思想如下:首先给定一个商品清单,其中有每个商品所包含的关键词属性,然后给出用户最近搜索过的一些关键词,请你将包含用户搜索过的更多关键词的商品排在用户目录的前面。
对于包含关键词数量相同的商品,我们按默认顺序排序,也就是说按输入给定的顺序优先级。

刚开始用PriorityQueue写超时,原因是每次加入新节点都会排序,太耗时了。后面换List统一add最后排序,一次O(NlogN)即可,运行时间500ms。
import java.io.*; import java.util.*;  public class Main {     static class Product {         String name;         int count;         int order;                  public Product(String name, int count, int order) {             this.name = name;             this.count = count;             this.order = order;         }     }      public static void main(String[] args) throws IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         String[] nq = br.readLine().split(" ");         int n = Integer.parseInt(nq[0]);         int q = Integer.parseInt(nq[1]);                  Set<String> keywordSet = new HashSet<>(Arrays.asList(br.readLine().split(" ")));                  List<Product> products = new ArrayList<>(n);         for (int i = 0; i < n; i++) {             String[] parts = br.readLine().split(" ");             String name = parts[0];             int m = Integer.parseInt(parts[1]);                          String[] keywords = br.readLine().split(" ");             int count = 0;             for (String kw : keywords) {                 if (keywordSet.contains(kw)) count++;             }                          products.add(new Product(name, count, i));         }                  products.sort((a, b) -> {             if (a.count != b.count) {                 return Integer.compare(b.count, a.count);             } else {                 return Integer.compare(a.order, b.order);             }         });                  StringBuilder sb = new StringBuilder();         for (Product p : products) {             sb.append(p.name).append('n');         }         System.out.print(sb);     } }

54:23

以上就是关于问题我们假定一个用户搜索的关键词是他感兴趣的,现在请你基于这个前提设计一个小红书购物的推荐算法。
该算法的核心思想如下:首先给定一个商品清单,其中有每个商品所包含的关键词属性,然后给出用户最近搜索过的一些关键词,请你将包含用户搜索过的更多关键词的商品排在用户目录的前面。
对于包含关键词数量相同的商品,我们按默认顺序排序,也就是说按输入给定的顺序优先级。的答案

欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 我们假定一个用户搜索的关键词是他感兴趣的,现在请你基于这个前提设计一个小红书购物的推荐算法。 该算法的核心思想如下:首先给定一个商品清单,其中有每个商品所包含的关键词属性,然后给出用户最近搜索过的一些关键词,请你将包含用户搜索过的更多关键词的商品排在用户目录的前面。 对于包含关键词数量相同的商品,我们按默认顺序排序,也就是说按输入给定的顺序优先级。