Redian新闻
>
今天看到一片好贴讲王石为何众叛亲离
avatar
今天看到一片好贴讲王石为何众叛亲离# Joke - 肚皮舞运动
a*r
1
// Write a function that takes this data as input and returns two
collections: one containing all individuals with zero known parents, and one
containing all individuals with exactly one known parent.
// Parents are above children:
// 1 2 4
// / /
// 3 5 8
// /
// 6 7 10
// findNodesWithZeroAndOneParents(parentChildPairs) => [
// [1, 2, 4], // Individuals with zero parents
// [5, 7, 8, 10] // Individuals with exactly one parent
// ]
The input is
// (parent, child)
vector> parentChildPairs = {
std::make_pair(1, 3),
std::make_pair(2, 3),
std::make_pair(3, 6),
std::make_pair(5, 6),
std::make_pair(5, 7),
std::make_pair(4, 5),
std::make_pair(4, 8),
std::make_pair(8, 10)
};
用unordered_map了,但Individuals with zero parents没弄对,大牛能不能贡献一下
C++ code
avatar
d*f
2
原因就是王石不顾朋友圈的反对扶正小三,给同事造成很大的困扰,需要不停安抚小三
小四。。。小x。很有道理阿。所谓的Leadership也是要牺牲很多东西的
avatar
T*u
3
C加加的话当然用unordered map
avatar
t*u
4
make sense。小三也可以抱团。
avatar
j*d
5
题目不懂啊
avatar
a*r
6

pair (1, 3) 代表3 的parent是1, 根据这个意思画个图你就懂了

【在 j*****d 的大作中提到】
: 题目不懂啊
avatar
p*r
7
这算是个入门的dag问题,
有个hashmap存下每个点的入度,
接下来直接就是搜索了。
从看题到写完大概5分钟,包括测试代码。
Time Complexity: o(n)
Space Complexity: o(n) hash map
//results
Persons with 0 Parents:
1, 2, 4
Persons with 1 Parents:
5, 7, 8, 10
Persons with 2 Parents:
3, 6
//Testing
public void Test()
{
for (int i = 0; i < 3; i++)
{
op("Persons with " + i + " Parents: ");
opArray(getPersonsByParentsAmount(getRelationship(), i));
}
}
//Search
public int[] getPersonsByParentsAmount(List parents, int
parentsAmount)
{
Dictionary dict = getParents(parents);
return dict.Where(m => m.Value == parentsAmount).Select(m => m.Key).
ToArray();
}
//build DAG
public Dictionary getParents(List parents)
{
Dictionary dict = new Dictionary();
foreach(int[] arr in parents)
{
//我估计你漏了下面这行代码
if (!dict.ContainsKey(arr[0])) dict.Add(arr[0], 0);
if (!dict.ContainsKey(arr[1])) dict.Add(arr[1], 0);
dict[arr[1]]++;
}
return dict;
}
//input data
public List getRelationship()
{
List data = new List();
data.Add(new int[] { 1, 3 });
data.Add(new int[] { 2, 3 });
data.Add(new int[] { 3, 6 });
data.Add(new int[] { 5, 6 });
data.Add(new int[] { 5, 7 });
data.Add(new int[] { 4, 5 });
data.Add(new int[] { 4, 8 });
data.Add(new int[] { 8, 10 });
return data;
}

【在 a********r 的大作中提到】
:
: pair (1, 3) 代表3 的parent是1, 根据这个意思画个图你就懂了

avatar
p*r
8
btw,如果给的都是数字,range不大的话,直接用array代替unorder hashmap会更高效
一点。
avatar
a*r
9
谢谢大牛,我是没想到
if (!dict.ContainsKey(arr[0])) dict.Add(arr[0], 0);
总是说孩子是key

【在 p**r 的大作中提到】
: 这算是个入门的dag问题,
: 有个hashmap存下每个点的入度,
: 接下来直接就是搜索了。
: 从看题到写完大概5分钟,包括测试代码。
: Time Complexity: o(n)
: Space Complexity: o(n) hash map
: //results
: Persons with 0 Parents:
: 1, 2, 4
: Persons with 1 Parents:

avatar
p*r
10
哈哈,现实也差不多。
很多人只想着父母的付出,
却忘记了他们以前也是被捧在手心的娃。
为了我们才劳累和承担。

【在 a********r 的大作中提到】
: 谢谢大牛,我是没想到
: if (!dict.ContainsKey(arr[0])) dict.Add(arr[0], 0);
: 总是说孩子是key

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。