题解 | 小红书推荐算法

小红书推荐算法

https://www.nowcoder.com/practice/2408a65ee1c1433284fdbe1ab8c79245

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();
        int q = in.nextInt();
        // 存储关键词
        Set<String> set = new HashSet<>();
        for(int i = 0; i < q; i++){
            set.add(in.next());
        }
        // 存储商品名称
        String[] items = new String[n];
        // 一共 n 个商品,0 位置存储商品名称索引,1 位置存储关键词数量
        int[][] arrs = new int[n][2];
        for(int i = 0; i < n; i++){
            items[i] = in.next();
            // 记录当前商品名称的索引值
            arrs[i][0] = i;
            int count = in.nextInt();
            for(int j = 0; j < count; j++){
                String keyWord = in.next();
                if(set.contains(keyWord)){
                    arrs[i][1]++;
                }
            }
        }
        Arrays.sort(arrs,(a,b) -> (b[1] - a[1]));

        for(int i = 0; i < n; i++){
            System.out.println(items[arrs[i][0]]);
        }
    }
}

全部评论

相关推荐

09-17 17:09
门头沟学院 Java
雨忄:有人给出过解法,拖晚点去,然后到时候再找其他理由商量,既增加他们的筛人成本,不一定会给你收回offer ,也能占位避免工贼
秋招的嫡长offer
点赞 评论 收藏
分享
darius_:我试了简历上有微服务和没微服务主动要简历的外包的比例都不一样,微服务稍微看看还是要写上去,人人都写你不写会被pass
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务