A
题目思路:因为我们都有关系,所以我们可以计算出我个人信任的人和我个人信任的人。然后,我们只需要找一个法官。
我们可以通过使用单个向量并跟踪信任balance进一步简化此过程。只有拥有N - 1信任balance的人才会被所有人信任,而谁也不信任。
int findJudge(int N, vector>& trust) {
vector balance(N +1);
for(auto&t : trust)
--balance[t[0]], ++balance[t[1]];
for(auto i =1; i <= N; ++i)
if(balance[i] == N -1)
return i;
return-1;
}
R
论文A Universal Music Translation Network中,FaceBook AI研究院的四位研究人员详细介绍了音乐转换网络背后的原理。
让音乐转变风格,甚至将口哨变成交响乐的秘密,都藏在一个通用的音乐转换网络里了。
这是一种横跨乐器、流派和风格的音乐转换方法,在多域Wavenet自编码器的基础上改造而来。
论文:
[1805.07848] A Universal Music Translation Network
开源地址:
T
二叉树中两个节点最近的公共父节点
首先需要明白,根节点肯定是二叉树中任意两个节点的公共父节点(不一定是最近的),因此二叉树中2个节点的最近公共父节点一定在从根节点到这个节点的路径上。因此我们可以先分别找到从根节点到这2个节点的路径,再从这两个路径中找到最近的公共父节点。
/**
* 二叉树中两个节点最近的公共父节点
*
* @param nodeA 第一个节点
* @param nodeB 第二个节点
* @param rootNode 二叉树根节点
*
* @return 最近的公共父节点
*/
+ (BinaryTreeNode *)parentOfNode:(BinaryTreeNode *)nodeA andNode:(BinaryTreeNode *)nodeB inTree:(BinaryTreeNode *)rootNode {
if (!rootNode || !nodeA || !nodeB) {
return nil;
}
if (nodeA == nodeB) {
return nodeA;
}
//从根节点到节点A的路径
NSArray *pathA = [self pathOfTreeNode:nodeA inTree:rootNode];
//从根节点到节点B的路径
NSArray *pathB = [self pathOfTreeNode:nodeB inTree:rootNode];
//其中一个节点不在树中,则没有公共父节点
if (pathA.count == 0 || pathB == 0) {
return nil;
}
//从后往前推,查找第一个出现的公共节点
for (NSInteger i = pathA.count-1; i>=0; i--) {
for (NSInteger j = pathB.count - 1; j>=0; j--) {
if ([pathA objectAtIndex:i] == [pathB objectAtIndex:j]) {
//找到
return [pathA objectAtIndex:i];
}
}
}
return nil;
}
S
谷歌给TensorFlow加入了计算机图形处理功能TensorFlow Graphics,让神经网络可以更好地理解计算机世界里的图形操作。
计算机图形(Computer Graphics)和计算机视觉(Computer Vision)是一对孪生兄弟,二者互为逆过程。
计算机图形是预先知道3D物体的形状、位置、材料构成,以及场景的灯光和相机,然后渲染出场景。
计算机视觉是已知拍到的图像,从中推断出有哪些物体,它们由什么材料制成,以及它们的3D位置和方向。
官方介绍:
项目页:
GitHub - tensorflow/graphics: TensorFlow Graphics: Differentiable Graphics Layers for TensorFlow