この記事は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 をご覧ください。 テストケースの作成次に、上記のコードが正しく実行できるかどうかを確認するために、以下に示すように行列を作成します。
実行結果は次のとおりです。 |
<<: 交通分野における人工知能、ビッグデータ、その他の技術の応用に関する簡単な議論
2021 年に AI は創薬、在宅勤務、エッジ コンピューティングをどのように変えるのでしょうか?...
0×00 背景形式手法は、私たちのほとんどにとっては非常に高度なものです。せいぜい授業で聞いたこと...
スマートホーム テクノロジーの登場により、私たちが生活空間と関わる方法は大きく変わりました。音声制御...
一歩前進、そしてまた一歩前進し、2019年が終わりました。 12月24日、百度研究所は2020年のト...
[[345484]]誰もが Google 翻訳をよく知っているはずですが、ほぼすべての既知の言語を私...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
今日の急速に変化する世界では、最先端技術のシームレスな統合がイノベーションの基盤となっています。その...
[[428874]]現代では、社会の発展と時代の進歩に伴い、伝統と現代の衝突、古典と革新の融合が、...
人工知能の概念は、60年以上前の1950年代に初めて提案されました。しかし、モノのインターネット、ビ...
[[421174]]基数ソートコンセプト基数ソートは、整数をビットごとにソートする非比較整数ソート ...
[[120276]]ハッシュアルゴリズムのヒルベルト曲線図 (Ian Boyd 提供) Google...
人工知能開発の世界的なブームは今も急速に進んでおり、止まる気配はありません。現在、数十カ国が経済成長...