LeetCode 1377. T 秒后青蛙的位置(BFS)

1. 题目

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

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

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

返回青蛙在 t 秒后位于目标顶点 target 上的概率。

示例 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 。 提示:
1 <= n <= 100
edges.length == n-1
edges[i].length == 2
1 <= edges[i][0], edges[i][1] <= n
1 <= t <= 50
1 <= target <= n
与准确值误差在 10^-5 之内的结果将被判定为正确。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/frog-position-after-t-seconds
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 广度优先搜索
class Solution {
public:double frogPosition(int n, vector<vector<int>>& edges, int t, int target) {if(n==1)return 1.0;//一个点if(target == 1)//多个点,最终目标不可能在1return 0;bool visited[n+1] = {false};queue<pair<int,double>> q;//idx, 概率int size, count;pair<int,double> tp;double prob = 1;bool found = false, noway = true;q.push({1,1.0});visited[1] = true;while(!q.empty()){size = q.size();t--;while(size--){tp = q.front();q.pop();count = 0;//tp连接着多少个未访问的点for(auto& e : edges){if((e[0] == tp.first && !visited[e[1]]) || (e[1]==tp.first &&  !visited[e[0]]) ){if(e[1] == target || e[0] == target)found = true;//找到 targetcount++;//计数}}for(auto& e : edges){if((e[0] == tp.first && !visited[e[1]]) || (e[1]==tp.first &&  !visited[e[0]]) ){	//将连接的点加入队列,并计算概率if(!visited[e[1]]){q.push({e[1], tp.second/count});visited[e[1]] = true;}else{q.push({e[0], tp.second/count});visited[e[0]] = true;};// 如果是 target,获取答案概率if(e[1] == target || e[0] == target)prob = tp.second/count;}}noway = true;//target 下面还有连接点吗?if(found){for(auto& e : edges){if(((e[0] == target && !visited[e[1]]))||(e[1]==target && !visited[e[0]])){	//有未访问的,则有路noway = false;break;}}}}if(found){if(t==0)//时间到了,刚好找到return prob;else if(t < 0)//时间不够,不可能到达return 0;else	//时间够{if(noway)//没有路,青蛙停留在targetreturn prob;return 0;//有路,青蛙肯定走过去了,在target 概率 0}}}return prob;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已删除

7.12更新:部分基金赎回的钱已经到账小金库了&#xff0c;今日从小金库提现时又提示银行卡已删除&#xff0c;不过这次可以点击重新绑定&#xff0c;重新绑定时会报错“绑定的卡与原卡一致”&#xff0c;流程没法走完。但这时候再退回去却发现“银行卡已删除”的提示没有了。于是…

即时配送的ETA问题之亿级样本特征构造实践

ETA&#xff08;Estimated time of Arrival&#xff0c;预计送达时间&#xff09;是外卖配送场景中最重要的变量之一&#xff08;如图1&#xff09;。 我们对ETA预估的准确度和合理度会对上亿外卖用户的订单体验造成深远影响&#xff0c;这关系到用户的后续行为和留存&#xff…

LeetCode 1376. 通知所有员工所需的时间(DFS)

1. 题目 公司里有 n 名员工&#xff0c;每个员工的 ID 都是独一无二的&#xff0c;编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。 在 manager 数组中&#xff0c;每个员工都有一个直属负责人&#xff0c;其中 manager[i] 是第 i 名员工的直属负责人。对于总负责人…

华为天才少年稚晖君做了一把模块化机械键盘,引起极客圈地震,网友:这才是真正的客制化...

作者 | 王玥、李梅&#xff0c;陈彩娴&#xff08;编辑&#xff09;来源 | AI科技评论他来了他来了&#xff0c;一人顶一个团队的稚晖君又一次带着一项硬核&#xff08;虽然他强调是“软核”&#xff09;黑科技来了&#xff01;稚晖君&#xff0c;真名彭志辉&#xff0c;三次元…

iPhone X 刘海打理指北

iPhone X 刘海机于9月13日发布&#xff0c;给科技小春晚带来一波高潮。作为开发人员却多出来一份忧虑&#xff0c;iPhone X 怎么适配&#xff1f;我们 App 的脑袋会不会也长一刘海出来&#xff1f;Tabbar 会不会被圆角&#xff1f;先来看一下美团 App 的表现&#xff1a; 图 1.…

大厂们终于无法忍受“加一秒”了,微软谷歌Meta等公司提议废除闰秒

文 | 萧箫 发自 凹非寺源 | 量子位 , 公众号 QbitAI大厂们再也无法忍受闰秒带来的一堆bug了。现在&#xff0c;谷歌Meta微软亚马逊等一众科技巨头发起了一项倡议&#xff1a;废除闰秒&#xff01;闰秒这玩意&#xff0c;说白了就是通过给“世界标准时间”加_&#xff08;或减&a…

LeetCode 1374. 生成每种字符都是奇数个的字符串

1. 题目 给你一个整数 n&#xff0c;请你返回一个含 n 个字符的字符串&#xff0c;其中每种字符在该字符串中都恰好出现 奇数次 。 返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串&#xff0c;则返回其中任意一个即可。 示例 1&#xff1a; 输入&…

Redux从设计到源码

本文主要讲述三方面内容&#xff1a; Redux 背后的设计思想源码分析以及自定义中间件开发中的最佳实践在讲设计思想前&#xff0c;先简单讲下Redux是什么&#xff1f;我们为什么要用Redux&#xff1f; Redux是什么&#xff1f; Redux是JavaScript状态容器&#xff0c;能提供可预…

LeetCode 1375. 灯泡开关 III

1. 题目 房间中有 n 枚灯泡&#xff0c;编号从 1 到 n&#xff0c;自左向右排成一排。最初&#xff0c;所有的灯都是关着的。 在 k 时刻&#xff08; k 的取值范围是 0 到 n - 1&#xff09;&#xff0c;我们打开 light[k] 这个灯。 灯的颜色要想 变成蓝色 就必须同时满足下…

MIT指出公开预训练模型不能乱用

文 | 林锐众所周知&#xff0c;用 Imagenet 预训练模型做 backbone&#xff0c;再接个下游任务的头去微调&#xff0c;是个简单有效的迁移学习方法。基本上&#xff0c;炼丹师用这种方法就能成功获得一个优秀的模型&#xff08;水一个实验室的项目&#xff09;。但是近些年一些…

从0到1:构建强大且易用的规则引擎

引言 2016年07月恰逢美团点评的业务进入“下半场”&#xff0c;需要我们在各个环节优化体验、提升效率、降低成本。技术团队需要怎么做来适应这个变化&#xff1f;这个问题直接影响着之后的工作思路。 美团外卖的CRM业务步入成熟期&#xff0c;规则类需求几乎撑起了这个业务所有…

LintCode 563. 背包问题 V(DP)

1. 题目 给出 n 个物品, 以及一个数组, nums[i] 代表第i个物品的大小, 保证大小均为正数, 正整数 target 表示背包的大小, 找到能填满背包的方案数。 每一个物品只能使用一次 样例 给出候选物品集合 [1,2,3,3,7] 以及 target 7 结果的集合为: [7] [1,3,3] 返回 22. 解题 dp[…

汽车博主因眼睛小被辅助驾驶误判为开车睡觉!何小鹏亲自回应 蔚来已成立专门研究小组...

源 | 每日经济新闻近日&#xff0c;一位汽车博主表示&#xff0c;他在驾驶小鹏汽车&#xff0c;使用小鹏辅助驾驶功能的时候&#xff0c;因为自己的眼睛比较小&#xff0c;所以被系统判定为“开车睡觉”&#xff0c;从而被扣除了智驾分。据了解&#xff0c;“智驾分”是小鹏汽车…

投资127亿!深圳,再添一所985

源 | 青塔综合转自 | 募格学术据深圳卫视近日消息&#xff0c;中山大学深圳校区多栋建筑将在暑假交付。报道称&#xff0c;中山大学深圳校区主楼正在进行工程最后收尾工作&#xff0c;预计本月底就能竣工验收&#xff0c;确保秋季新学期开始前投入使用。校区总建筑面积约127万平…

Android OOM案例分析

在Android&#xff08;Java&#xff09;开发中&#xff0c;基本都会遇到java.lang.OutOfMemoryError&#xff08;本文简称OOM&#xff09;&#xff0c;这种错误解决起来相对于一般的Exception或者Error都要难一些&#xff0c;主要是由于错误产生的root cause不是很显而易见。由…

NAACL最佳方法论文:课本上的A*搜索算法可以提升文本生成效果!

文 | Yimin_饭煲相信大多数学习过人工智能课程的读者&#xff0c;当听到算法的时候&#xff0c;都会有一种既熟悉又陌生的感觉。说算法熟悉&#xff0c;是因为一听到这个算法&#xff0c;就想起那本厚厚的《人工智能——一种现代的方法》&#xff0c;想起这个算法似乎是人工智能…

LeetCode 6. Z 字形变换(找规律)

1. 题目 将一个给定字符串根据给定的行数&#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; L C I R E T O E S I I G E D H N之后&#xff0c;你的输出需要从左往右逐行…

美团点评移动网络优化实践

本文根据第16期美团点评技术沙龙“移动开发实践&#xff08;上海站&#xff09;”演讲内容整理而成。 第18期沙龙&#xff1a;高可用系统背后的基础架构&#xff08;3月25日&#xff09;火热来袭&#xff01;快快点击报名吧。 网络优化对于App产品的用户体验至关重要&#xff0…

我终于逃离了互联网,却陷入了迷茫

大家好&#xff0c;我是卖萌酱。昨天跟一位成功逃离互联网的好姐妹小A约了个饭&#xff0c;这位姐妹的早期经历可以说是略带传奇色彩了&#xff0c;过程却比较崎岖&#xff0c;结局心情复杂&#xff0c;但却对普通人来说却很有启发意义。经过小A允许&#xff0c;卖萌酱将小A的故…

LintCode 633. 寻找重复的数(这个题要复习)

1. 题目 给出一个数组 nums 包含 n 1 个整数&#xff0c;每个整数是从 1 到 n (包括边界)&#xff0c;保证至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。 样例 1: 输入: [5,5,4,3,2,1] 输出: 5样例 2: 输入: [5,4,4,3,2,1] 输出: 4注意事项…