2326。螺旋矩陣 IV
難度:中
主題:陣列、鍊錶、矩陣、模擬
給定兩個整數 m 和 n,它們代表矩陣的維度。
您還將獲得一個整數鍊錶的頭。
產生 m x n 矩陣,其中包含以 螺旋 順序(順時針)呈現的鍊錶中的整數,從矩陣的 左上角 開始。如果還有剩餘的空格,則用-1填滿。
傳回產生的矩陣.
範例1:
範例2:
範例 3:
約束:
提示:
解:
我們將模擬 m x n 矩陣的螺旋遍歷,並用鍊錶中的值填滿它。其餘沒有對應鍊錶值的位置將以-1填滿。
解的架構如下:
讓我們用 PHP 實作這個解:2326。螺旋矩陣 IV
<?php class ListNode { public $val = 0; public $next = null; function __construct($val = 0, $next = null) { $this->val = $val; $this->next = $next; } } /** * @param Integer $m * @param Integer $n * @param ListNode $head * @return Integer[][] */ function spiralMatrix($m, $n, $head) { ... ... ... /** * go to ./solution.php */ } // Helper function to print the matrix (for debugging) function printMatrix($matrix) { foreach ($matrix as $row) { echo implode(" ", $row) . "\n"; } } // Example usage: // Create the linked list: [3,0,2,6,8,1,7,9,4,2,5,5,0] $head = new ListNode(3); $head->next = new ListNode(0); $head->next->next = new ListNode(2); $head->next->next->next = new ListNode(6); $head->next->next->next->next = new ListNode(8); $head->next->next->next->next->next = new ListNode(1); $head->next->next->next->next->next->next = new ListNode(7); $head->next->next->next->next->next->next->next = new ListNode(9); $head->next->next->next->next->next->next->next->next = new ListNode(4); $head->next->next->next->next->next->next->next->next->next = new ListNode(2); $head->next->next->next->next->next->next->next->next->next->next = new ListNode(5); $head->next->next->next->next->next->next->next->next->next->next->next = new ListNode(5); $head->next->next->next->next->next->next->next->next->next->next->next->next = new ListNode(0); $m = 3; $n = 5; $matrix = spiralMatrix($m, $n, $head); printMatrix($matrix); ?>
矩陣初始化:矩陣初始化為-1,因此任何未填滿的空間預設保持-1。
螺旋運動:
鍊錶遍歷:
邊界與方向變化:
聯絡連結
如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!
如果您想要更多類似的有用內容,請隨時關注我:
以上是螺旋矩陣 IV的詳細內容。更多資訊請關注PHP中文網其他相關文章!