天池 在线编程 推荐朋友(哈希)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

描述
给n个人的朋友名单,告诉你user是谁,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友)

n <= 500。
好友关系是相互的。(b若出现在a的好友名单中,a一定出现在b的好友名单中)
每个人的好友关系不超过 m 条,m <= 3000。
如果有两个人和user的共同好友数目一样,**编号更小**的那个认为是最可能认识的人。
如果user和所有陌生人都没有共同好友,输出-1
示例
样例 1:
输入: list = [[1,2,3],[0,4],[0,4],[0,4],[1,2,3]], user = 0, 
输出: 4。
解释:04不是朋友,并且他们有3个共同好友。所以40最可能认识的人。样例2:
输入:list = [[1,2,3,5],[0,4,5],[0,4,5],[0,5],[1,2],[0,1,2,3]],user = 0,  
输出:4
解释:虽然503个共同好友,40只有2个共同好友,但是50的好友,所以40最可能认识的人。

https://tianchi.aliyun.com/oj/403980887914474330/460413730469122892

2. 解题

  • 哈希记录 user 的所有好友
  • 遍历除了 user 及其好友外的其他人,计算他们与 user 的共同好友数量
class Solution {
public:/*** @param friends: people's friends* @param user: the user's id* @return: the person who most likely to know*/int recommendFriends(vector<vector<int>> &friends, int user) {// Write your code here int n = friends.size();// user的好友集合unordered_set<int> user_f(friends[user].begin(), friends[user].end());int ans = -1, max_count = -1;for(int i = 0; i < n; ++i){if(i == user || user_f.count(i))// i 是 user 的好友不行continue;int count = 0;for(int j = 0; j < friends[i].size(); ++j){ // i 的 好友 j 也在 user 的好友列表中if(user_f.count(friends[i][j]))count++;}if(count && count > max_count){max_count = count;ans = i;}else if(count == max_count && i < ans)ans = i;}return ans;}
};

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mr图像翻转的原因_MR的特殊检查脂肪抑制

让学习成为一种好习惯正文开始脂肪抑制脂肪抑制是指在MR成像中通过调整采集参数而选择性的抑制脂肪信号&#xff0c;使其失去高信号变为低信号&#xff0c;以区分同样为高信号的不同结构&#xff0c;在临床诊断上具有重要的意义&#xff0c;主要表现在&#xff1a;(1)减少运动伪…

Qt 图形特效(Graphics Effect)介绍

原文链接:Qt 图形特效(Graphics Effect)介绍 QGraphicsEffect也是Qt-4.6引入的一个新功能。它让给图形元素QGraphicsItem增加更佳视觉效果的编程变得非常简单。 先来看几张效果图。 上图中最上面的那个图片是没有使用QGraphicsEffect处理的原图&#xff0c;下面的四个图片分别代…

小米usb3.0修复补丁_今日热闻 | Redmi 10X系列发布、小米手环5产品外观曝光、Win10补丁导致蓝屏、AXON 11 SE 6月发布...

今日热点新闻realme X50 Pro 玩家版发布realme 通过线上发布会推出包括真我 X50 Pro 玩家版在内的 8 款新品。其中真我 X50 Pro 玩家版搭载高通骁龙 865 移动平台、6.44 寸 90Hz 刷新率 AMOLED 屏幕和 1216 超线性双扬声器&#xff0c;配备 VC 液冷散热、线性马达和 4200mAh 电…

【Python基础知识-pycharm版】第九节_面向对象的三大特征

第九节方法方法没有重载私有属性和私有方法&#xff08;实现封装&#xff09;property装饰器_get和set方法面向对象的三大特征说明(封装、继承、多态)继承方法的重写&#xff08;类成员的继承和重写&#xff09;查看类的继承结构object根类_dir() 查看对象属性重写__str__()方法…

LeetCode 1869. 哪种连续子字符串更长

文章目录1. 题目2. 解题1. 题目 给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 例如&#xff0c;s "110100010" 中&#xff0c;…

如何通过像素点找到世界坐标_如何通过阅读来找到自己理论研究的“视域”?...

理论研究多用演绎法&#xff0c;也就是说&#xff0c;理论研究一般始于一个独特的概念、理论视角&#xff0c;或者判断。用刘良华的观点来说&#xff0c;这些都是理论研究的“视域”&#xff0c;也是理论研究得以展开的“大前提”。因此&#xff0c;理论研究最为关键的问题&…

任务并行VS数据并行

并行计算中&#xff0c;有两种并行的方法&#xff1a;任务并行&#xff08;task-parallelism&#xff09;和数据并行&#xff08;data-parallelism&#xff09;。任务并行&#xff1a;将许多可以解决问题的任务分割&#xff0c;然后分布在一个或者多个核上进行程序的执行。数据…

【Python基础知识-pycharm版】第十节_异常

第十节异常异常机制本质异常解决的关键&#xff1a;定位try... 一个 except 结构try... 多个 except 结构try...except...else 结 构try...except...finally 结构return 语句和异常处理问题常见异常的解决常见异常汇总with 上下文管理trackback 模块自定义异常类异常 在实际工…

k8s挂载目录_拥抱云原生,如何将开源项目用k8s部署?

k8s以及云原生相关概念近年来一直比较火热&#xff0c;阿丸最近搞了个相关项目&#xff0c;小结一下。本文将重点分享阿里开源项目otter适配k8s部署的改造过程&#xff0c;其中的改造过程和技巧应该适用于将大多数开源项目改造到k8s进行部署。1.背景otter是阿里开源的分布式数据…

LeetCode 1870. 准时到达的列车最小时速(二分查找)

文章目录1. 题目2. 解题2.1 模拟超时2.2 二分查找1. 题目 给你一个浮点数 hour &#xff0c;表示你到达办公室可用的总通勤时间。 要到达办公室&#xff0c;你必须按给定次序乘坐 n 趟列车。 另给你一个长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 表示第 i 趟列车的行…

【Python基础知识-pycharm版】第十一节-文件操作(IO技术)

第十一节-文件操作&#xff08;IO技术&#xff09;文本文件和二进制文件文件操作相关模块概述创建文件对象 open()文本文件的写入基本的文件写入操作常用编码介绍ASCIIISO8859-1GB2312,GBK,GB18030中文乱码问题write()/writelines()写入数据close()关闭文件流with 语句(上下文管…

LeetCode 1871. 跳跃游戏 VII(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump 。 一开始&#xff0c;你在下标 0 处&#xff0c;且该位置的值一定为 0 。 当同时满足如下条件时&#xff0c;你可以从下标 i 移动到下标 j 处&#xff1a; i minJump …

pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修

在产品调试的过程中&#xff0c;大多数的电路需要输入某种幅度随时间变化的信号&#xff0c;在这样的应用场景中&#xff0c;一个完整的测试测量系统一般会包含激励源&#xff0c;被测件和采集仪器三个部分。采集仪器通常使用的是示波器和逻辑分析仪&#xff0c;而信号源在系统…

设计模式--迭代器模式

实验18&#xff1a;迭代器模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解迭代器模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用迭代器模式解决实际问题。 [实验任务]&#xff1a;JAVA和C常见数据结构迭代…

4k视频分辨率的码流_8K电视来了!但是8K视频仍很遥远

本届CES上&#xff0c;8K电视的集体发布可谓一大亮点&#xff0c;索尼、LG、TCL、三星等厂商纷纷推出8K电视。不光如此&#xff0c;本届CES上夏普突如其来的展示了一款具备8K视频拍摄功能的M43相机&#xff0c;这一点着实是出乎意料。今天我们就来讨论一下&#xff0c;在8K电视…

LeetCode 1707. 与数组中元素的最大异或值(Trie树)

文章目录1. 题目2. 解题1. 题目 给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries &#xff0c;其中 queries[i] [xi, mi] 。 第 i 个查询的答案是 xi 和任何 nums 数组中不超过 mi 的元素按位异或&#xff08;XOR&#xff09;得到的最大值。 换句话说&#x…

我的爬虫第一天

爬虫一个简单的爬虫&#xff1a;1.安装request2.测试是否安装成功3.新建项目4.使用requests请求网页4.如何用python解析网页源码5.简单的保存数据的方法一个简单的爬虫&#xff1a; 1.安装request pip install requests2.测试是否安装成功 输入python import requests不报…

qr分解求线性方程组_计算方法/数值分析第三章 线性方程组的数值解法

主要内容&#xff1a;1、引言2、高斯消去法3、直接分解法4、解线性方程组的迭代法5、向量范数、矩阵范数及迭代法的收敛性第一节 引言用克拉姆求解线性方程组第二节 高斯消去法高斯消去法是一种古老的直接法&#xff0c;其基本思想是通过消元将线性方程组的求解问题转化成三角形…

python 执行完成后,cmd窗口自动关闭

一般脚本运行完需要点击一下 在代码最后添加以下内容即可自动关闭cmd&#xff1a; import os import time time.sleep(1) # 方便展示&#xff0c;可删除 os.system("taskkill /f /im cmd.exe") # 关闭cmd窗口

txt文件可存储最大值_Verilog边码边学:十六进制文件读取$readmemh

系统任务$readmemh读取十六进制文件。$readmemh的作用是将文件中的数据一次性的读入某个数组中&#xff0c;然后可以依次从数组中取出单个的数据进行处理。读取的内容只包括空白位置(空格、换行、制表格)、注释行、十六进制的数字。语法结构中的起始地址与终止地址可省略。【语…