- 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加
- 915. Partition Array into Disjoint Intervals 分割数组
- 932. Beautiful Array 漂亮数组
- 940. Distinct Subsequences II 不同的子序列 II
题目地址:https://leetcode-cn.com/problems/the-earliest-moment-when-everyone-become-friends/
Ina social group, there are N
people, with unique integer ids from 0
to N-1
.
Wehave a list of logs, where each logs[i] = [timestamp, id_A, id_B]
contains a non-negative integer timestamp, and the ids of two different people.
Each log represents the time in which two different people became friends. Friendship is symmetric: if A
is friends with B
, then B
is friends with A
.
Let's say that person A
is acquainted with person B
if A
is friends with B
, or A
is a friend of someone acquainted with B
.
Return the earliest time for which every person became acquainted with every other person. Return -1 if there is no such earliest time.
Example 1:
Input: logs = [[20190101,0,1],[20190104,3,4],[20190107,2,3],[20190211,1,5],[20190224,2,4],[20190301,0,3],[20190312,1,2],[20190322,4,5]], N = 6
Output: 20190301
Explanation:
The first event occurs at timestamp = 20190101 and after 0 and 1 become friends we have the following friendship groups [0,1], [2], [3], [4], [5].
The second event occurs at timestamp = 20190104 and after 3 and 4 become friends we have the following friendship groups [0,1], [2], [3,4], [5].
The third event occurs at timestamp = 20190107 and after 2 and 3 become friends we have the following friendship groups [0,1], [2,3,4], [5].
The fourth event occurs at timestamp = 20190211 and after 1 and 5 become friends we have the following friendship groups [0,1,5], [2,3,4].
The fifth event occurs at timestamp = 20190224 and as 2 and 4 are already friend anything happens.
The sixth event occurs at timestamp = 20190301 and after 0 and 3 become friends we have that all become friends.
Note:
1、 2<=N<=100
;
2、 1<=logs.length<=10^4
;
3、 0<=logs[i][0]<=10^9
;
4、 0<=logs[i][1],logs[i][2]<=N-1
;
5、 It'sguaranteedthatalltimestampsinlogs[i][0]
aredifferent.;
6、 logsarenotnecessarilyorderedbysomecriteria.;
7、 logs[i][1]!=logs[i][2]
;
在一个社交圈子当中,有 N 个人。每个人都有一个从 0 到 N-1 唯一的 id 编号。 我们有一份日志列表 logs,其中每条记录都包含一个非负整数的时间戳,以及分属两个人的不同 id,logs[i] = [timestamp, id_A, id_B]。 每条日志标识出两个人成为好友的时间,友谊是相互的:如果 A 和 B 是好友,那么 B 和 A 也是好友。 如果 A 是 B 的好友,或者 A 是 B 的好友的好友,那么就可以认为 A 也与 B 熟识。 返回圈子里所有人之间都熟识的最早时间。如果找不到最早时间,就返回 -1 。
提示的不能更明显了,标准的并查集。
1、 对logs按照时间排序;
2、 遍历logs,合并两个人所属的环,如果环减少到1那就是最短的时间;
C++代码如下:
class Solution {
public:
int earliestAcq(vector<vector<int>>& logs, int N) {
map_ = vector<int>(N);
circle = N;
for (int i = 0; i < N; ++i)
map_[i] = i;
sort(logs.begin(), logs.end(), [](vector<int>& a, vector<int>& b) {return a[0] < b[0];});
for (auto& log : logs) {
uni(log[1], log[2]);
if (circle == 1)
return log[0];
}
return -1;
}
int find(int a) {
if (map_[a] == a)
return a;
return find(map_[a]);
}
void uni(int a, int b) {
int pa = find(a);
int pb = find(b);
if (pa == pb)
return;
map_[pa] = pb;
circle --;
}
private:
vector<int> map_;
int circle = 0;
};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2022
DDKK.COM 弟弟快看-教程,程序员编程资料站,版权归原作者所有
本文经作者:负雪明烛 授权发布,任何组织或个人未经作者授权不得转发
在我目前的工作中,我需要枚举 Windows 中知名组的成员,如 Everyone、Interactive User 等。我可以找到一些“根据我”的定义如何估计用户是 Everyone 的成员,但是为
如果要在UAC下使数据文件夹和文件对程序的非管理员用户可写,我应该为“所有人”,“用户”或“authusers”授予“修改”权限吗? 我希望基本上所有可以坐在计算机旁的人都可以通过该程序读取/写入数据
我需要获取@everyone 角色ID 来为服务器成员创建私有(private)聊天(我将限制除这两个用户之外的其他用户阅读和发送消息)。如何? 我试着打字 \@Admin 以获取 Admin 的角色
注意:请不要因为标题与他人相似而无视。 我正在尝试在 Windows 7 计算机上共享文件夹。我想通过 C# 向每个人授予对它的完全权限。 我在其他页面(包括此处)上看过几篇文章,它们告诉您如何去做。
我想要一个像“!hello”这样的简单命令来输出“Hello @everyone”并对所有人进行 ping 操作。输出文本是正确的,但实际上并没有 ping 通。该命令仅显示文本@everyone,而
对于 c# 安装程序项目,可以删除单选按钮“每个人”和“只有我”安装时。我一直希望这是每个人。本文就是解决方法Remove Everyone and Just Me并且工作完美。但是重建后你必须再做一
我目前使用的是 32 位 Vista。如何添加 Windows 安全组“Everyone”并授予对目录及其所有子目录和所有文件的完全控制权?有没有我可以使用的 powershell 脚本? 谢谢! 最
我有一个文件夹 C:\TEMP 里面有子文件夹 C:\TEMP\a C:\TEMP\b和文件名apple.txt 如何使用Powershell脚本将对所有人的所有权限更改为具有完全控制访问权限? 谢谢
我想用某些权限有限的用户调用 Process.Start,因为运行的程序可能包含恶意代码。在这里我认为Everyone应该先尝试是正确的,我认为它没有任何关联的密码。 但是下面的代码会提示不正确的用户
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在编写一个实用程序来帮助更改某个文件的文件权限,以允许/禁止 Windows 机器上的“Everyone”组访问它。到目前为止,我已经能够使用以下代码设置和删除“所有人”对文件的完全控制权限: v
多人一起用git工作时,是不是更好 让每个人都在 master 工作,并在彼此的 master 之间 merge ,或者 让每个人都在自己的分支机构工作? 在我看来,在 (1) 的情况下,虽然每个 m
我正在尝试找出如何以编程方式授予“每个人”对我们软件的注册表项的“完全控制”,以便非管理员能够对其进行写入。但是,我找不到这个,我找到的唯一解决方案是允许您这样做的第三方注册表组件。我不想只是为了能够
在学习 Azure AD 以便我最终可以切换我们的应用程序以开始使用它时,我注意到我们拥有的任何帐户似乎都能够登录到该应用程序...我的本地上只有一个 Web 应用程序PC,我将其添加到我们的 Azu
在学习 Azure AD 以便我最终可以切换我们的应用程序以开始使用它时,我注意到我们拥有的任何帐户似乎都能够登录到该应用程序...我的本地上只有一个 Web 应用程序PC,我将其添加到我们的 Azu
我有一个有 say 命令的机器人,我想将这个命令公开给所有人,但一个可能的风险是他们可以通过机器人的消息。 如果有人有办法缓解这种情况并防止机器人对每个人执行 ping 操作,请告诉我。 我的代码:
我们的应用程序允许用户在\\foo\bar$ 的共享中读写文件。管理员授予“所有人”对共享权限 和安全 选项卡的读写权限。当域用户尝试写入该共享时,我们的应用程序会记录以下内容: TYPE: Syst
我需要有关如何使用 C++ 将“所有人”添加到文件夹的共享选项属性的帮助。 这是我关于如何创建新文件夹的代码 #include int main() { mkdi
我正在使用 log4j 来执行每日滚动日志。 我正在尝试找到一种方法来在创建新日志文件时设置权限,这将为“每个人”提供读写访问权限。 该程序只能在Win7和WinXP上运行。 最佳答案 默认情况下,新
可以定义(客户端):now.function = function(){console.log('test');} ...由服务器调用:everyone.function() - 但它只能在特定客户端
我是一名优秀的程序员,十分优秀!