運動の範囲は、安全性のオファー---- 13の質問のロボットを証明します

リンク:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/

 

アイデア:

  DFS

コード:

クラス解決{
 パブリックINT get_single_sum(INT X){
         int型、S = 0 一方、(X){ 
            S + = X%10 
            X / = 10 
        } 
        戻りS。
    } 

    INT get_sum(対< INTINT > P){
         戻り get_single_sum(p.first)+ get_single_sum(p.second)。
    } 

    INT movingCount(INT M、整数 nは、INT K){
         int型 RES = 0 もし(!!M || n)のリターン 0 ; 
        ベクター <ベクトル< BOOL >> ST(M、ベクトル< BOOL >(N、))。
        キュー <ペア< int型int型 >> Q;
        INTの DX [ 4 ] = { - 1010 }、DY [ 4 ] = { 010、 - 1 }。

        q.push({ 00 })。
        一方、(q.size()){ 
            オートT = )(q.front。
            q.pop(); 

            もし(get_sum(T)> K || ST [t.first] [t.second])続けます
            解像度 ++ ; 
            ST [t.first] [t.second] = ; 

            以下のためにINT iが= 0 ; I < 4 ; ++ {I)
                 INT X = t.first + DX [i]は、Y = t.second + DY [I]を、
                もし(x> = 0 && X <M && Y> =0 && Y < N){ 
                    q.push({X、Y})。
                } 
            } 
        } 
        戻りRES。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/clown9804/p/12331568.html