首页 > 其他分享 >leetcode133. 克隆图

leetcode133. 克隆图

时间:2024-09-30 15:21:13浏览次数:10  
标签:node neighbors 克隆 val Node leetcode133 visited 节点

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。

图中的每个节点都包含它的值 valint) 和其邻居的列表(list[Node])。

class Node {
    public int val;
    public List<Node> neighbors;
}

测试用例格式:

简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。

邻接列表 是用于表示有限图的无序列表的集合。每个列表都描述了图中节点的邻居集。

给定节点将始终是图中的第一个节点(值为 1)。你必须将 给定节点的拷贝 作为对克隆图的引用返回。

示例 1:

输入:adjList = [[2,4],[1,3],[2,4],[1,3]]
输出:[[2,4],[1,3],[2,4],[1,3]]
解释:
图中有 4 个节点。
节点 1 的值是 1,它有两个邻居:节点 2 和 4 。
节点 2 的值是 2,它有两个邻居:节点 1 和 3 。
节点 3 的值是 3,它有两个邻居:节点 2 和 4 。
节点 4 的值是 4,它有两个邻居:节点 1 和 3 。
/**
 * // Definition for a Node.
 * function Node(val, neighbors) {
 *    this.val = val === undefined ? 0 : val;
 *    this.neighbors = neighbors === undefined ? [] : neighbors;
 * };
 */

/**
 * @param {Node} node
 * @return {Node}
 */
// 主要考察对图的遍历,在遍历的过程中,进行拷贝
// 在递归函数里面,进行拷贝节点值,继续拷贝当前节点的邻居节点,最后返回拷贝完的节点
// 无向 没有闭合,死循环,遍历分为,已克隆,未克隆;
// 哈希
var cloneGraph = function(node,visited = {}) {
    if(!node) return;
    // visited
    if(node.val in visited) return visited[node.val];
    const newNode = new Node(node.val);
    visited[node.val] = newNode;

    const cloneNeighbors = [];
    for(const neighbor of node.neighbors){
        cloneNeighbors.push(cloneGraph(neighbor,visited));
    }
    newNode.neighbors = cloneNeighbors;
    return newNode;
}; 

标签:node,neighbors,克隆,val,Node,leetcode133,visited,节点
From: https://blog.csdn.net/Turboyiyi/article/details/142657675

相关文章

  • 打造属于自己的无限数字人平台:情感声音克隆+全套技术详解
    抖知书老师推荐:在这里强烈推荐一本改变未来创作方式的手册《情感声音克隆+数字人全套技术核心大公开》,如果你跟我一样对数字人感兴趣,却苦于市场上高昂的定制费用,这本手册你绝对不能错过!不仅仅是为了自己学习,随着数字人产业的兴起,越来越多的人开始关注这一领域。如果你想建......
  • ESXi 5.5 系统克隆到SD卡或USB磁盘上
    对于如何将安装在本地磁盘上的ESXi系统克隆到SD卡或USB磁盘上,以便快速实现ESXi主机的VSAN-Ready状态。正好猫猫也有点兴趣,所以,就研究了下这个方式,大致的工作思路就是“先通过dd命令将ESXi系统克隆到VMFSDatastore成为一个文件,然后再从文件弄到SD卡或USB磁盘即可”。具体操作步骤......
  • 尝试RVC音色克隆团长音色
    前言昨晚玩剑网3突发奇想,把团长声音克隆下来,利用语音喵制作成语音DBM。这样不管团长开不开团,打团也能有团长声音听了诶嘿嘿。于是当场关闭游戏声音录了打本的素材,本文就边做边记录。下载在B站找到了这个教程:【你的声音,现在是我的了!】https://www.bilibili.com/video/BV1P541......
  • 36. 克隆.clone()和复制.copy()
    克隆.clone()、复制.copy()是threejs很多对象都具有的方法,比如三维向量对象Vector3、网格模型Mesh、几何体、材质。克隆.clone()克隆.clone()简单说就是复制一个和原对象一样的新对象,下面以三维向量对象Vector3给大家举例,其他的threejs对象都可以参照类似的写法。constv1......
  • 火爆开源声音克隆工具:第二代GPT-SoVITS 让你的声音自由飞翔
    AI正在悄然编织一个日益魔幻的世界!马斯克跨界献舞,在线空间掀起科幻风潮!AI 恶搞《黑神话:悟空》博主,一天轻松揽获百万播放,十几万点赞!.......在AI快速发展的今天,你是不是也已经洞察到各种商机,却因为不懂技术而裹足不前?比如《黑神话:悟空》恶搞视频,小编都知道是通过AI克隆声音来实现的,......
  • 【第二代GPT-SoVITS教程】效果确实又好又快,小白也能轻松克隆任何声音!
    AI正编织出一个日益奇幻的世界!马斯克的跨界舞蹈、在线空间的科幻风潮,无不展现出AI技术的魔力。特别是《黑神话:悟空》恶搞视频,通过AI克隆声音,不仅听起来与原声几乎一致,而且趣味十足,赢得了百万播放量和数万点赞。.......在过去,实现高质量的声音克隆往往需要大量的语音样本和复杂的操......
  • 你的下一本有声书将有一个大反转:解说员...可能是一个(声音)克隆人!
    有声书业务正在蓬勃发展,但要想象高质量的表演者将每一本书都朗读出来几乎是不可能的。为了填补这一空白,亚马逊旗下的有声书服务Audible正在测试使用AI生成的声音克隆来加速这个过程。这个计划的设想是,大量增加具有音频格式的书籍,这个想法显然很有吸引力,但也带来了一些问题,比如......
  • Java.lang.CloneNotSupportedException 不支持克隆异常
    java.lang.CloneNotSupportedException是Java中表示一个对象无法被克隆的异常。在Java中,对象的克隆是通过实现Cloneable接口和重写Object类中的clone()方法来完成的。如果一个类没有实现Cloneable接口,并且尝试调用其clone()方法,那么就会抛出CloneNotSupportedExcep......
  • 通过AI大模型现实小红书笔记克隆以及自动化发布
    文章目录前言一、实现思路二、实现步骤1.引入库2.自动登录3.生成笔记4.发布笔记三、界面演示总结前言对于文案小白来说,通过大模型可以轻松帮我们生成各种风格的文案,比如小红书风格的超萌文案。只需要简单几步操作,就能得到让你惊艳的结果。通过自动化的操作,还可以减......
  • 列表与克隆体专题 scratch 20240916_182231
    体验克隆体变量scratch20240916_153936_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/12031738数据的容器列表scratch20240916_155811_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/12031757多组列表共同表达同一数据sc......