当前位置: 首页 > news >正文

深圳个性化网站建设公司编写一个android应用程序

深圳个性化网站建设公司,编写一个android应用程序,农村做网站赚钱,好的网站模板克隆图 https://leetcode.cn/problems/clone-graph/description/ 描述 给你无向 连通 图中一个节点的引用#xff0c;请你返回该图的 深拷贝#xff08;克隆#xff09;。 图中的每个节点都包含它的值 val#xff08;int#xff09; 和其邻居的列表#xff08;list[No…克隆图 https://leetcode.cn/problems/clone-graph/description/ 描述 给你无向 连通 图中一个节点的引用请你返回该图的 深拷贝克隆。 图中的每个节点都包含它的值 valint 和其邻居的列表list[Node]。 class Node {public int val;public ListNode neighbors; }测试用例格式 简单起见每个节点的值都和它的索引相同。例如第一个节点值为 1val 1第二个节点值为 2val 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 。示例 2 输入adjList [[]] 输出[[]] 解释输入包含一个空列表。该图仅仅只有一个值为 1 的节点它没有任何邻居。示例 3 输入adjList [] 输出[] 解释这个图是空的它不含任何节点。示例 4 输入adjList [[2],[1]] 输出[[2],[1]]提示 节点数不超过 100 。每个节点值 Node.val 都是唯一的1 Node.val 100。无向图是一个简单图这意味着图中没有重复的边也没有自环。由于图是无向的如果节点 p 是节点 q 的邻居那么节点 q 也必须是节点 p 的邻居。图是连通图你可以从给定节点访问到所有节点。 算法实现 1 深度优先遍历 /*** Definition for Node.* class Node {* val: number* neighbors: Node[]* constructor(val?: number, neighbors?: Node[]) {* this.val (valundefined ? 0 : val)* this.neighbors (neighborsundefined ? [] : neighbors)* }* }*/// 深度优先遍历方法 function cloneGraph(node: Node | null): Node | null {if(!node) return;const visited new Map(); // 记录哪些节点被访问以及节点的映射关系const dfs (n: Node | null) {// console.log(n.val);let nCopy new Node(n.val); // 克隆了一个节点visited.set(n, nCopy); // 将每个拷贝的节点和之前的节点做一个映射的关系// 空数组的forEach不会执行(n.neighbors || []).forEach(ne {if(!visited.has(ne)) {dfs(ne);}nCopy.neighbors.push(visited.get(ne));});};dfs(node);return visited.get(node); // 将起始节点的拷贝作为克隆图的引用返回 }解题思路 拷贝所有节点拷贝所有边 解题步骤 深度或广度优先遍历所有节点拷贝所有的节点存储起来将拷贝的节点按照原图的连接方法进行连接 时间复杂度O(n) 访问了图的所有节点 空间复杂度O(n) Map结构存储了所有的节点 2 广度优先遍历 /*** Definition for Node.* class Node {* val: number* neighbors: Node[]* constructor(val?: number, neighbors?: Node[]) {* this.val (valundefined ? 0 : val)* this.neighbors (neighborsundefined ? [] : neighbors)* }* }*/function cloneGraph(node: Node | null): Node | null {if(!node) return;const visited new Map(); // 记录哪些节点被访问以及节点的映射关系// visited.set(node, true); // 标记第一个节点被访问过visited.set(node, new Node(node.val)); // 克隆一个起始节点并和原始节点做关联const q [node];while(q.length) {const n q.shift();// console.log(n.val);(n.neighbors || []).forEach(ne {if(!visited.has(ne)) {q.push(ne);visited.set(ne, new Node(ne.val)); // 拷贝节点}// 拷贝边visited.get(n).neighbors.push(visited.get(ne));})}return visited.get(node); }时间复杂度 O(n) 遍历所有节点 空间复杂度 O(n) 一个队列
http://www.dnsts.com.cn/news/67068.html

相关文章:

  • 泰来县城乡建设局网站湖州网站建设公司
  • 网站平台建设意见医生可以自己做网站吗
  • 有什么教做甜品的网站重庆网站推广公司电话
  • 免费响应式模板网站模板下载中国建设行业峰会网站
  • 建设网站机构wordpress爆破工具
  • xml做网站大型购物网站建设费用
  • 何炅做的代言网站什么是全网营销推广
  • 成都企业网站建设费用wordpress注册未发送邮件
  • 网站开发电销常遇到问题怎样设计网站模板
  • 做网站用啥软件好网站推广平台
  • 如何做国外的社交网站wordpress重定向次数过多
  • 求个没封的w站2021你懂有账号密码网站怎么建设
  • 心理网站开发背景优秀网页欣赏
  • 手机网站怎么导入微信朋友圈自己建站网站
  • 海外网站搭建信誉好的龙岗网站制作
  • 企业网站创建需要多种语言吗公司要建立网站要怎么做
  • 贵州省建设厅建筑质监站网站定制网站开发多少钱
  • 怎么在网站上建设投票统计昆明制作企业网站
  • 提供温州手机网站制作多少钱佳木斯建网站的
  • 网站怎么解析绵阳哪个网站做外卖做的好
  • 做门窗网站wordpress pagination
  • 建网站公司销售企业服务有哪些
  • 挪威网站后缀建设广告网站
  • 乐清网站的建设网上注册公司流程和费用
  • 云南昌旅游的网站建设网页游戏软件制作专业
  • 网络推广网站制作上海学习网站建设
  • 网站字体大小是多少合适全网营销实战培训
  • 怎么做英文的网站建网站找谁
  • 摄影的网站设计特点怎样把自己做的网站上传到网上
  • 网站开发买什么书jing.me wordpress主题