この記事は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 をご覧ください。 テストケースの作成次に、上記のコードが正しく実行できるかどうかを確認するために、以下に示すように行列を作成します。
実行結果は次のとおりです。 |
<<: 交通分野における人工知能、ビッグデータ、その他の技術の応用に関する簡単な議論
市販の AI ツールを使えば、自分でコードを 1 行も書かずに完全な「Angry Birds」を作れ...
大規模言語モデル (LLM) の機能を最大限に活用するには、効果的なプロンプト設計ソリューションが不...
[[438361]]次世代自動運転システムの設計における反復的な更新は、主に新機能の継続的な反復に反...
2022年3月、DeepMindの論文「計算最適化大規模言語モデルのトレーニング」では、構築されたC...
米国現地時間の水曜日、マスク氏はソーシャルメディア上で、同社が今週、一部の選ばれた顧客に対して初の「...
2020 年のサイバーセキュリティは転換点を迎えています。人工知能と機械学習の進歩はサイバーセキュリ...
清華大学金融学科教授の李道奥氏は、ハーバード大学で経済学の博士号を取得。スタンフォード大学フーバー研...
[[425799]] Java のガベージ コレクションに関しては、私と同じように、多くの友人が、...
[[219763]]著者:ROSIEBROWN編纂者:彭祥偉、江宝尚、小玉ウォール・ストリート・ジャ...
AI アシスタントの将来について語るとき、アイアンマン シリーズに登場する魅力的な AI アシスタン...
オープンソース フレームワークの分野では、PyTorch と TensorFlow の間で常に議論が...