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

做网站大型品牌微信网站开发

做网站大型,品牌微信网站开发,怎样设计手机网站建设,16岁0元开网店赚钱软件文章目录 129. 求根节点到叶节点数字之和题目链接标签思路代码 133. 克隆图题目链接标签思路代码 136. 只出现一次的数字题目链接标签思路代码 129. 求根节点到叶节点数字之和 题目链接 129. 求根节点到叶节点数字之和 标签 树 深度优先搜索 二叉树 思路 由于本题需要 从… 文章目录 129. 求根节点到叶节点数字之和题目链接标签思路代码 133. 克隆图题目链接标签思路代码 136. 只出现一次的数字题目链接标签思路代码 129. 求根节点到叶节点数字之和 题目链接 129. 求根节点到叶节点数字之和 标签 树 深度优先搜索 二叉树 思路 由于本题需要 从 根节点 遍历到 叶子节点无子节点的节点叫做叶子节点所以可以使用 深度优先搜索 的思想每次遍历一个节点就计算 当前的路径从根节点到当前节点所表示的数字然后将其传递给它的两棵子树对 在两棵子树求得的所有路径之和 求和 并 返回。 像这样从 根节点 向 叶子节点 遍历如果遍历到叶子节点则返回 从 根节点 到 此叶子节点 的路径所表示的数字。此外可能会遇到一个当前节点为 null 的情况此时返回 0 作为路径即可。 代码 class Solution {public int sumNumbers(TreeNode root) {return dfs(root, 0);}// curr 是当前遍历的节点currNum 是从根节点到 curr 的路径所表示的数字private int dfs(TreeNode curr, int currNum) {if (curr null) { // 如果 curr 为 nullreturn 0; // 则返回 0}int num currNum * 10 curr.val; // 计算从根节点到 curr 的路径所表示的数字if (curr.left null curr.right null) { // 如果到叶子节点return num; // 则返回从根节点到这个叶子节点的路径所表示的数字}return dfs(curr.left, num) // 遍历左子树求左子树中的所有路径之和 dfs(curr.right, num); // 遍历右子树求右子树的所有路径之和} }133. 克隆图 题目链接 133. 克隆图 标签 深度优先搜索 广度优先搜索 图 哈希表 思路 本题和 LeetCode 138. 随机链表的复制 类似使用的方法完全一样都是 建立旧节点与新节点的映射不过与之不同的一点是138 题中链表的结构没有这么复杂而本题将基础链表中的 next 指针变成了一个 neighbors 指针集合这就意味着本题无法像 138 题一样遍历链表来为新节点的属性赋值而需要使用别的遍历方式——深度优先搜索本方式复用了 cloneGraph() 方法求旧节点所对应的新节点 如果旧节点为 null则返回 null。如果已经建立过 旧节点 和 新节点 的映射则直接返回新节点。如果没有建立 旧节点 和 新节点 的映射则需要构建新节点分为以下三步 创建新节点给新节点的 val 属性赋值。保存 旧节点 和 新节点 的映射。给新节点的 neighbors 属性赋值构建新节点之间的 neighbor 关系。 注意构建新节点的第二、三步不能调换顺序。因为本节点的 neighbor 的 neighbor 是本节点这两个节点之间会 互相获取对方的新节点而 要返回本节点的新节点就需要先获取对方节点的新节点从而进入死循环。 代码 class Solution {// 给定一个旧节点返回其对应的新节点public Node cloneGraph(Node oldNode) {if (oldNode null) { // 如果 旧节点 为 nullreturn null; // 则返回 null}if (mapper.containsKey(oldNode)) { // 如果已经建立过 旧节点 和 新节点 的映射return mapper.get(oldNode); // 则直接返回 旧节点 对应的 新节点}// 构建 新节点给新节点的 neighbors 链表初始化指定的大小避免 后续扩容 浪费时间Node newNode new Node(oldNode.val, new ArrayList(oldNode.neighbors.size()));mapper.put(oldNode, newNode); // 先保存 旧节点 和 新节点 的映射for (Node neighbor : oldNode.neighbors) { // 然后再构建新节点之间的 neighbor 关系// 按照顺序寻找 新节点 对应的 新 neighbornewNode.neighbors.add(cloneGraph(neighbor));}return newNode; // 返回新节点}// 映射 旧节点 和 新节点 的映射key 为 旧节点value 为 新节点private MapNode, Node mapper new HashMap(); }136. 只出现一次的数字 题目链接 136. 只出现一次的数字 标签 位运算 数组 思路 异或的定义是相同为假不同为假。例如对于两个二进制数 0101, 1001它们异或的结果为 0101 ^ 1001 1100。 本题考查了一个位运算的知识对两个数使用 异或 操作得到的结果如下 如果两个数相等则结果为 0。这是因为两个数相等代表其二进制数相等而相同为假所以异或的结果全是 0从而两个相等的数的异或结果为 0。如果是 0 ^ 某个数则结果为 某个数。这种情况举个例子更好理解例如对于 0000, 1101它们异或的结果为 1101恰好与这个数相等。对于其他情况结果通常没有具体意义。 多个数进行异或操作 就是 复合了多个 两数异或 的结果例如 0011 ^ 1100 ^ 0011 0 ^ 1100 1100。 所以可以遍历数组对所有数使用异或操作出现两次的数都抵消成 0 了出现一次的数最终和 0 进行异或操作得到它本身。 代码 class Solution {public int singleNumber(int[] nums) {int res nums[0];for (int i 1; i nums.length; i) {res ^ nums[i];}return res;} }
http://www.hkea.cn/news/14542851/

相关文章:

  • 即墨哪里有做网站的wordpress中文版好还是英文版好
  • 俄语企业网站制作超值的网站建设
  • 淘宝客必须建网站吗北京网页制作方案
  • 建设企业网站内容徐州方案公示在哪个网站
  • 泉州网站建设哪里优惠怎样推广app别人才愿意下载
  • 深圳建网站兴田德润实惠搜英文关键词网站
  • 农业建设管理信息网站做网站最好的公
  • 网站建设有哪些家美发店网站源码
  • 做网站不挣钱北京网站建设上北京九五至尊网络
  • 网站分享模板常州低价网站建设公司
  • 深圳网站建设的客户在哪里定制网站建设公司电话
  • 大连 建网站做网站用php还是html
  • 正能量网站入口免费安全北京网站建设备案
  • 网站百度地图怎么做wap网站源码 下载
  • 网站制作有限怎么架构网站
  • 网站被墙了怎么办手机数据线东莞网站建设
  • 单位网站建设情况调查情况兰州西固区公司网站建设
  • 大学生创新创业网站建设申报书apache搭建多个网站
  • 济南做网站的机构有哪些网站设计案例
  • 昆明网站排名优化公司哪家好网络推广工作任务和职业能力
  • 哪里有网站推广公司网站建设的细节处理
  • 网站改版索引量下降福州外贸网站制作
  • 怎么创建网站要钱吗网站开发最后五个阶段
  • 开源网站后台wordpress号码
  • 郑州新密网站建设微商营销
  • 淘宝网站如何推广云南省网站建设
  • 用npp做网站正规app软件开发费用
  • 电子政务网站建设要求个人网站建设流程 域名注册的选择
  • 重庆汉沙科技做网站怎么样iis网站连接数据库失败
  • 行业数据统计网站游戏推广工作怎么样