。スパイラルマトリックスIII
885。スパイラルマトリックスⅢ
中
トピック: 配列、行列、シミュレーション
東向きの行 x 列グリッドのセル (rStart、cStart) から開始します。北西の角はグリッドの最初の行と列にあり、南東の角は最後の行と列にあります。
時計回りの螺旋状に歩き、このグリッド内のすべての位置を訪問します。グリッドの境界の外に移動するたびに、グリッドの外を歩き続けます (ただし、後でグリッドの境界に戻る可能性があります)。最終的には、グリッドのすべての行 * 列スペースに到達します。
訪問した順序でグリッドの位置を表す座標の配列を返します。
例 1:
- 入力: 行 = 1、列 = 4、rStart = 0、cStart = 0
- 出力: [[0,0],[0,1],[0,2],[0,3]]
例 2:
- 入力: 行 = 5、列 = 6、rStart = 1、cStart = 4
- 出力: [[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3] 、[0,4]、[0,5]、[3,5]、[3,4]、[3,3]、[3,2]、[2,2]、[1,2]、[ 0,2]、[4,5]、[4,4]、[4,3]、[4,2]、[4,1]、[3,1]、[2,1]、[1、 1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]
制約:
- 1
- 0 行
- 0
解決策:
この問題を解決するには、次の手順に従います:
- 方向配列 : 方向配列を使用すると、正しい順序 (東→南→西→北) での移動が容易になります。各方向では、行インデックスと列インデックスが対応して変更されます。
- 歩数管理 : 各方向に進む歩数を制御する必要があります。最初は東に 1 歩、次に南に 1 歩、西に 2 歩、北に 2 歩というように移動します。
- 境界チェック : 移動するたびに、新しい位置がグリッドの境界内にあるかどうかを確認してください。存在する場合は、それを結果配列に追加します。
- 停止条件 : すべての行 * 列の位置を訪問したら、ループを停止します。
このソリューションを PHP で実装してみましょう: 885。スパイラルマトリックスⅢ
<?php // Example Usage: print_r(spiralMatrixIII(1, 4, 0, 0)); // [[0,0],[0,1],[0,2],[0,3]] print_r(spiralMatrixIII(5, 6, 1, 4)); // [[1,4],[1,5],[2,5],[2,4], ...] ?>
ログイン後にコピー
説明:
- 方向 : 方向配列は、東、南、西、北に移動するための行と列の変化を保持します。
- 動き : (rStart, cStart) から開始し、らせんパターンの方向に従って動きます。
- 境界チェック : グリッド内にある場合のみ、結果に位置を追加します。
- 歩数制御 : stepCount は、方向転換する前に現在の方向に何歩進むかを管理します。 2ターン後に増加します。
- 終了 : グリッド内のすべての位置が訪問されるまでループが継続します。
このアプローチにより、グリッド内のすべてのセルを必要なスパイラル順序で確実に訪問できるようになります。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ
にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
- GitHub
以上が。スパイラルマトリックスIIIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7315
9


Java チュートリアル
1625
14


CakePHP チュートリアル
1348
46


Laravel チュートリアル
1261
25


PHP チュートリアル
1208
29



LaravelのバックエンドでReactアプリを構築する:パート2、React
