ホームページ バックエンド開発 PHPチュートリアル 。スパイラルマトリックスIII

。スパイラルマトリックスIII

Aug 09, 2024 am 09:18 AM

885。スパイラルマトリックスⅢ

トピック: 配列、行列、シミュレーション

東向きの行 x 列グリッドのセル (rStart、cStart) から開始します。北西の角はグリッドの最初の行と列にあり、南東の角は最後の行と列にあります。

時計回りの螺旋状に歩き、このグリッド内のすべての位置を訪問します。グリッドの境界の外に移動するたびに、グリッドの外を歩き続けます (ただし、後でグリッドの境界に戻る可能性があります)。最終的には、グリッドのすべての行 * 列スペースに到達します。

訪問した順序でグリッドの位置を表す座標の配列を返します。

例 1:

. Spiral Matrix III

  • 入力: 行 = 1、列 = 4、rStart = 0、cStart = 0
  • 出力: [[0,0],[0,1],[0,2],[0,3]]

例 2:

. Spiral Matrix III

  • 入力: 行 = 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. 方向配列
  2. : 方向配列を使用すると、正しい順序 (東→南→西→北) での移動が容易になります。各方向では、行インデックスと列インデックスが対応して変更されます。
  3. 歩数管理
  4. : 各方向に進む歩数を制御する必要があります。最初は東に 1 歩、次に南に 1 歩、西に 2 歩、北に 2 歩というように移動します。
  5. 境界チェック
  6. : 移動するたびに、新しい位置がグリッドの境界内にあるかどうかを確認してください。存在する場合は、それを結果配列に追加します。
  7. 停止条件
  8. : すべての行 * 列の位置を訪問したら、ループを停止します。

このソリューションを 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], ...]
?>
ログイン後にコピー

説明:
  1. 方向
  2. : 方向配列は、東、南、西、北に移動するための行と列の変化を保持します。
  3. 動き
  4. : (rStart, cStart) から開始し、らせんパターンの方向に従って動きます。
  5. 境界チェック
  6. : グリッド内にある場合のみ、結果に位置を追加します。
  7. 歩数制御
  8. : stepCount は、方向転換する前に現在の方向に何歩進むかを管理します。 2ターン後に増加します。
  9. 終了
  10. : グリッド内のすべての位置が訪問されるまでループが継続します。

このアプローチにより、グリッド内のすべてのセルを必要なスパイラル順序で確実に訪問できるようになります。

連絡先リンク

このシリーズが役立つと思われた場合は、GitHub で リポジトリ

にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!

このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
  • LinkedIn
  • GitHub

以上が。スパイラルマトリックスIIIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

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

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

See all articles