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中文网其他相关文章!