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

厚街镇做网站利用国外网站文章图片做书营利

厚街镇做网站,利用国外网站文章图片做书营利,wordpress script,找婚庆公司去什么网站文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 1377. T 秒后青蛙的位置 - 力扣(LeetCode) 2. 题目描述 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如…

文章目录

      • 1. 题目链接
      • 2. 题目描述
      • 3. 题目示例
      • 4. 解题思路
      • 5. 题解代码
      • 6. 复杂度分析

1. 题目链接


1377. T 秒后青蛙的位置 - 力扣(LeetCode)


2. 题目描述


给你一棵由 n 个顶点组成的无向树,顶点编号从 1n。青蛙从 顶点 1 开始起跳。规则如下:

  • 在一秒内,青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点(如果它们直接相连)。
  • 青蛙无法跳回已经访问过的顶点。
  • 如果青蛙可以跳到多个不同顶点,那么它跳到其中任意一个顶点上的机率都相同。
  • 如果青蛙不能跳到任何未访问过的顶点上,那么它每次跳跃都会停留在原地。

无向树的边用数组 edges 描述,其中 edges[i] = [ai, bi] 意味着存在一条直接连通 aibi 两个顶点的边。

返回青蛙在 t 秒后位于目标顶点 target 上的概率。与实际答案相差不超过 10-5 的结果将被视为正确答案。

3. 题目示例


示例 1 :

输入:n = 7, edges = [[1,2],[1,3],[1,7],[2,4],[2,6],[3,5]], t = 2, target = 4
输出:0.16666666666666666 
解释:上图显示了青蛙的跳跃路径。青蛙从顶点 1 起跳,第 1 秒 有 1/3 的概率跳到顶点 2 ,然后第 2 秒 有 1/2 的概率跳到顶点 4,因此青蛙在 2 秒后位于顶点 4 的概率是 1/3 * 1/2 = 1/6 = 0.16666666666666666 。

示例 2 :

输入:n = 7, edges = [[1,2],[1,3],[1,7],[2,4],[2,6],[3,5]], t = 1, target = 7
输出:0.3333333333333333
解释:上图显示了青蛙的跳跃路径。青蛙从顶点 1 起跳,有 1/3 = 0.3333333333333333 的概率能够 1 秒 后跳到顶点 7 。

4. 解题思路


  1. 问题理解
    • 青蛙从根节点1开始,每秒随机跳到一个子节点。
    • 求t秒后青蛙位于目标节点target的概率。
    • 如果时间没用完但到达叶子节点,青蛙会停在原地。
  2. 关键点
    • 概率计算:每次跳跃的选择概率是1/(当前节点的子节点数)。
    • 时间约束:必须在恰好t秒到达目标节点,或者提前到达但目标节点是叶子。
    • 树结构:无向树,但通过DFS转化为有向树(避免回溯)。
  3. DFS设计
    • 参数传递
      • prod:累积概率的倒数(即分支数的乘积),避免浮点数精度问题。
      • leftT:剩余时间,用于判断是否恰好到达。
    • 终止条件
      • 找到目标节点且时间用完或目标节点是叶子。
      • 时间用完但未找到目标节点。
  4. 提前终止
    • 一旦找到目标节点,立即返回结果,不再继续搜索。

5. 题解代码


class Solution {private double ans;  // 存储最终结果(青蛙位于目标节点的概率)public double frogPosition(int n, int[][] edges, int t, int target) {// 构建邻接表表示的树结构(节点编号从1开始)List<Integer>[] g = new ArrayList[n + 1];Arrays.setAll(g, e -> new ArrayList<>());// 添加虚拟父节点0,减少根节点1的特殊判断g[1].add(0);// 构建无向树for (var e : edges) {int x = e[0], y = e[1];g[x].add(y);g[y].add(x);}// 从根节点1开始DFS搜索dfs(g, target, 1, 0, t, 1);return ans;}// DFS搜索函数// 参数说明:// g: 邻接表// target: 目标节点// x: 当前节点// fa: 父节点(避免回溯)// leftT: 剩余时间// prod: 当前路径的概率乘积(即1/父节点分支数的累积乘积)private boolean dfs(List<Integer>[] g, int target, int x, int fa, int leftT, long prod) {// 终止条件1:当前是目标节点且(时间用完或当前是叶子节点)if (x == target && (leftT == 0 || g[x].size() == 1)) {ans = 1.0 / prod;  // 计算概率return true;       // 找到目标}// 终止条件2:当前是目标节点但时间没用完且不是叶子节点// 或者时间用完但没到达目标节点if (x == target || leftT == 0) return false;// 遍历当前节点的所有邻居(即子节点)for (int y : g[x]) {if (y != fa) {  // 避免回溯父节点// 递归搜索子节点,时间减1,概率乘积乘以分支数-1(因为要排除父节点)if (dfs(g, target, y, x, leftT - 1, prod * (g[x].size() - 1))) {return true;  // 如果找到目标,提前终止}}}return false;  // 未找到目标}
}

6. 复杂度分析


时间复杂度:O(n)

  • 每个节点最多被访问一次。
  • 最坏情况下需要遍历整棵树(当目标节点不存在或位于最后)。

空间复杂度:O(n)

  • 邻接表存储空间:O(n)。
  • 递归调用栈深度:最坏情况下(树退化为链表)为O(n)。
http://www.dtcms.com/wzjs/784687.html

相关文章:

  • 外贸网站制作怎么选邢台建手机网站流程
  • 公司注册资金实缴可以取出来吗seo优化找stso88效果好
  • 长沙哪里有创建网站的公司80 wordpress
  • 阜阳哪里有做网站的做网站要用什么编程语言
  • 西部数码网站建设助手dw网页制作过程
  • 动漫网站怎么做app网站及其特色
  • 普洱网站建设aspnet东莞网站建设价格
  • 网站后台上传不了文件家具设计作品
  • 网站建设与管理好处com域名和精品vip域名哪个好
  • 用vs2012做网站首页小蝌蚪xkdapp永久免费
  • 五金网站模板怎么注册公司教程
  • 做网站的实施过程seo排名优化方式方法
  • 做家具的外国网站聊天app开发需要多少钱
  • 推广网站制作深圳航空有限公司官网
  • WordPress表单支付插件网站建设优化服务特色
  • 服装企业网站策划书怎么制作app平台
  • 阿里巴巴网站备案做网站按钮
  • 做网站可以不写代码网站行业
  • 网站策划方案范文wordpress 添加网页
  • 海口网站建设策划方案外包公司驻场能不能去
  • 济宁网站制作公司每一个网站都要后台吗
  • 网站建设需要学多久知乎网站ome系统怎么做
  • 王璐 牟平 网站建设wordpress邮件key
  • 微信优惠券网站怎么做的赣州做网站jx25
  • 网站访问统计 曲线图wordpress 文章底部作者
  • 教育网站建设市场分析计划书网页制作考试题及答案
  • 网站建设搜狐网站在线留言的用途
  • 胡歌做的穿衣搭配的网站网页设计页面设计主要技术
  • 做网站的项目开发计划书wordpress支持视频播放器
  • 网站制作上海永久免费crm系统少年歌行