Leetcodeコンテスト毎週179試合(4)------------ 1377. T秒後のカエルの位置

1からまでの番号が付けられた頂点を持つn個の頂点で構成される無向ツリーを作成し  nます。カエルは頂点1からジャンプし   ます。ルールは次のとおりです。

  • それは現在の蛙飛びされた第二の、内の別の頂点  未訪問  の頂点処理し(それらが直接結合している場合)。
  • カエルは、訪れた頂点にジャンプすることはできません。
  • カエルが多くの異なる頂点にジャンプできる場合、それらのいずれかにジャンプする可能性は同じです。
  • カエルが未訪問の頂点にジャンプできない場合、カエルはジャンプするたびにその場所に留まります。

無向アレイを有するツリーエッジは  edges 、記載されて  edges[i] = [fromi, toi] 直接通信手段の存在  fromi と  toi 2つの頂点の縁。

カエルがt 秒後にターゲット頂点に  target ある確率を返します 

 

例1:

入力: n = 7、エッジ= [[1,2]、[1,3]、[1,7]、[2,4]、[2,6]、[3,5]]、t = 2 target = 4
 出力: 0.16666666666666666 
 説明:上の図は、カエルのジャンプパスを示しています。頂点からカエル1つのオフ、第1の第 2頂点1/3スキップの確率で、そして第2秒間 2秒位置する頂点確率が1/3である4カエルそう後4頂点1/2スキップの確率で、 * 1/2 = 1/6 = 0.16666666666666666。 

例2:

入力: n = 7、エッジ= [[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にジャンプします。 

例3:

入力: n = 7、エッジ= [[1,2]、[1,3]、[1,7]、[2,4]、[2,6]、[3,5]]、t = 20ターゲット= 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 内の結果が正しいと判断されます。

 

私のコード:

class Solution:
    def frogPosition(self, n: int, edges: List[List[int]], t: int, target: int) -> float:
        from collections import defaultdict
        graph = defaultdict(set)
        for e in edges:
            start, end = e[0], e[1]
            if start > end:
                start, end = end, start
            graph[start].add(end)
            
        chance, s, step = 1, [(1,1)], 0
        while s and step <= t:
            n_s = []
            for node, chance in s:
                if node == target and step == t:
                    return chance
                
                if len(graph[node]):
                    n_chance = 1/len(graph[node])
                    for n in graph[node]:
                        n_s.append((n,chance*n_chance))
                else:
                    n_s.append((node,chance))
            step+=1
            s = n_s
        return 0

 

公開された230元の記事 ウォンの賞賛160 ビュー820 000 +

おすすめ

転載: blog.csdn.net/happyAnger6/article/details/104870382