当前位置:网站首页>Leetcode-6111: spiral matrix IV
Leetcode-6111: spiral matrix IV
2022-07-05 06:09:00 【Chrysanthemum headed bat】
leetcode-6111: Spiral matrix IV
subject
Topic linking
Here are two integers :m
and n
, Represents the dimension of the matrix .
Another head node of the integer linked list head
.
Please generate a size of m x n
The spiral matrix of , The matrix contains all integers in the linked list . The integers in the linked list are from the matrix top left corner Start 、 Clockwise Press screw Fill in order . If there are still remaining spaces , Then use -1
fill .
Return the generated matrix .
Example 1:
Input :m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0]
Output :[[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]]
explain : The figure above shows how the integers in the linked list are arranged in the matrix .
Be careful , The remaining spaces in the matrix are used -1 fill .
Example 2:
Input :m = 1, n = 4, head = [0,1,2]
Output :[[0,1,2,-1]]
explain : The figure above shows how the integers in the linked list are arranged from left to right in the matrix .
Be careful , The remaining spaces in the matrix are used -1 fill .
Problem solving
Method 1 : simulation
Spiral matrix series topics are similar , It's nothing more than using a linked list to get values .
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution {
public:
vector<vector<int>> spiralMatrix(int m, int n, ListNode* head) {
vector<vector<int>> matrix(m,vector<int>(n,-1));
vector<vector<int>> dirs={
{
0,1},{
1,0},{
0,-1},{
-1,0}};
int x=0,y=0;
int cur_d=0;
int top=0,down=m-1,left=0,right=n-1;
ListNode* cur=head;
while(cur){
matrix[x][y]=cur->val;
if(cur_d==0&&y==right){
top++;
cur_d++;
}
else if(cur_d==1&&x==down){
right--;
cur_d++;
}
else if(cur_d==2&&y==left){
down--;
cur_d++;
}
else if(cur_d==3&&x==top){
left++;
cur_d++;
}
cur_d%=4;
x+=dirs[cur_d][0];
y+=dirs[cur_d][1];
cur=cur->next;
}
return matrix;
}
};
边栏推荐
- 1041 Be Unique
- The sum of the unique elements of the daily question
- CF1634E Fair Share
- leetcode-1200:最小绝对差
- Matrixdb V4.5.0 was launched with a new mars2 storage engine!
- 【Rust 笔记】13-迭代器(下)
- SPI details
- 7. Processing the input of multidimensional features
- Overview of variable resistors - structure, operation and different applications
- 1.15 - 输入输出系统
猜你喜欢
Sqlmap tutorial (II) practical skills I
Appium自动化测试基础 — Appium测试环境搭建总结
Real time clock (RTC)
快速使用Amazon MemoryDB并构建你专属的Redis内存数据库
个人开发的渗透测试工具Satania v1.2更新
Introduction to LVS [unfinished (semi-finished products)]
How to adjust bugs in general projects ----- take you through the whole process by hand
R language [import and export of dataset]
数据可视化图表总结(二)
Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
随机推荐
[rust notes] 13 iterator (Part 2)
QT判断界面当前点击的按钮和当前鼠标坐标
【Rust 笔记】16-输入与输出(上)
shared_ Repeated release heap object of PTR hidden danger
The connection and solution between the shortest Hamilton path and the traveling salesman problem
Introduction to LVS [unfinished (semi-finished products)]
Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
In this indifferent world, light crying
SQLMAP使用教程(一)
1041 Be Unique
2022 极术通讯-Arm 虚拟硬件加速物联网软件开发
LeetCode 1200.最小绝对差
Convolution neural network -- convolution layer
Daily question 1688 Number of matches in the competition
leetcode-3:无重复字符的最长子串
Individual game 12
R语言【数据集的导入导出】
Configuration and startup of kubedm series-02-kubelet
leetcode-22:括号生成
Wazuh开源主机安全解决方案的简介与使用体验