この記事はWeChatの公開アカウント「Magic Programmer K」から転載したもので、著者はMagic Programmer Kです。この記事を転載する場合は、マジカルプログラマーKの公開アカウントまでご連絡ください。 序文行列があります。ロボットは座標 (0,0) のグリッドから移動を開始できます。ロボットは一度に 1 つのグリッドを左、右、上、または下に移動できますが、行と列の座標の合計が K より大きいグリッドには入ることができません。ロボットが移動できるグリッドの合計数と移動軌跡を求めます。 この記事では、この問題の解決策を紹介します。興味のある開発者は、ぜひこの記事をお読みください。 実装のアイデアマトリックス内のパスの検索に関する前回の記事では、バックトラッキング アルゴリズムを使用してマトリックス内のグリッドにアクセスする方法を学びました。この記事で説明する問題は、グリッドにアクセスする前に判断のレイヤーを作成します。条件が満たされている場合は入力できますが、そうでない場合は入力できません。 私たちが下すべき判断は、訪問するグリッドの座標の桁の合計を計算することです。それが K (最大アクティビティ範囲) より大きい場合、訪問できません。 桁の合計: 数値内の各位置の値の合計と値の合計。たとえば、19 の数字の合計は 1 + 9 = 10 です。 現在のグリッドが訪問されたかどうかを判定するまず、ロボットがこのグリッドまで歩いたかどうかを示すために、元の行列と同じサイズの行列を作成する必要があります。 js では指定サイズの 2 次元配列を直接作成することはできません。作成の考え方は以下のとおりです。
グリッドにアクセスできるかどうかを判断するグリッドにアクセスするときは、アクセスするグリッドがアクセス可能かどうかを判断する必要があります。行座標と列座標の合計を計算し、それらを合計して、結果がロボットの最大動作範囲 (K) より大きいかどうかを判断する必要があります。 数字の合計を計算する方法は 2 つあります。
ロボットを動かし始めるロボットを動かすときには、次の 7 つのパラメータが必要です。
まず、境界条件の判定(再帰終了条件)を行う必要があります。条件が満たされた場合、グリッドにアクセスできず、トラバース可能なグリッドは 0 であることを意味します(直接 0 を返します)。
上記の条件がすべて満たされている場合、現在のグリッドにアクセスできることを意味します。現在のグリッドの値はアクションの軌跡に保存され、現在のグリッドは訪問済みとしてマークされ、歩いたグリッドの数 + 1 になり、現在のグリッドの他の 4 方向のグリッドに入ることができるかどうかを再帰的に確認します。 再帰スタックがクリアされると、ロボットが進入できるグリッドの合計数とその移動軌跡が取得されます。 実装コード次に、上記のアイデアを TypeScript コードに変換します。 グリッドは関数を入力できますか?まず、現在のグリッドに入ることができるかどうかを判断する関数の実装を見てみましょう。
ロボット移動機能ロボットを指定されたグリッドに移動するためのコードは次のとおりです。
主な機能最後に、以下に示すように、メイン関数の実装を見てみましょう。
完全なコードについては、Backtracking.ts#L80 をご覧ください。 テストケースの作成次に、上記のコードが正しく実行できるかどうかを確認するために、以下に示すように行列を作成します。
実行結果は次のとおりです。 |
<<: 交通分野における人工知能、ビッグデータ、その他の技術の応用に関する簡単な議論
[[316623]] 【51CTOオリジナル記事】先週、WeMallは大規模なシステム障害に見舞わ...
何十年もの間、ニュースの見出しやSF小説では、トラック運転手やショッピングモールの警備員から芸術家や...
オラクルの株価は現地時間9月12日に13.5%急落し、20年以上で最大の下落を記録した。その理由は、...
CVPR 2020 に採択された論文「PULSE: 生成モデルの潜在空間探索による自己教師あり写真ア...
スマートシティ建設が国家戦略となり、ハイテクが急速に発展するにつれて、スマートシティはバージョン1....
北京市宜荘市内の約60平方キロメートルの制限区域内で、数十台のロボタクシー(無人タクシー)が現在、公...
[[380706]]この記事はWeChatパブリックアカウント「Full-Stack Cultiva...
[[342437]]著者は、正確なタイミング タスクと遅延キュー処理機能を備えた、高同時実行シナリ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
目が覚めているのと眠っているのを同時に経験したことがありますか?実はここは現実と夢を繋ぐ中継駅なので...
第3回HUAWEI CONNECT 2018が2018年10月10日に上海万博展示コンベンションセン...
自動車業界のデジタル変革により、車両の構想、組み立て、運用の方法が再定義されています。 テクノロジー...
エクストリームラーニングマシンExtreme Learning Machine は、これまでで最も賢...
大切な人が亡くなったら、その人の記憶をAIに引き渡しますか?「The Debaters」のこの討論テ...