当前位置:网站首页>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;
}
};
边栏推荐
- Collection: programming related websites and books
- 数据可视化图表总结(一)
- 1039 Course List for Student
- Personal developed penetration testing tool Satania v1.2 update
- 1.13 - RISC/CISC
- Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
- R语言【数据集的导入导出】
- R language [import and export of dataset]
- Control unit
- Matrixdb V4.5.0 was launched with a new mars2 storage engine!
猜你喜欢
随机推荐
Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135
【Rust 笔记】17-并发(下)
可变电阻器概述——结构、工作和不同应用
Introduction to LVS [unfinished (semi-finished products)]
网络工程师考核的一些常见的问题:WLAN、BGP、交换机
Simple knapsack, queue and stack with deque
1041 Be Unique
【Rust 笔记】15-字符串与文本(下)
多屏电脑截屏会把多屏连着截下来,而不是只截当前屏
【Jailhouse 文章】Jailhouse Hypervisor
一些工具的记录2022
Overview of variable resistors - structure, operation and different applications
EOJ 2021.10 E. XOR tree
【Rust 笔记】13-迭代器(中)
2022 极术通讯-Arm 虚拟硬件加速物联网软件开发
Introduction et expérience de wazuh open source host Security Solution
One question per day 1447 Simplest fraction
Règlement sur la sécurité des réseaux dans les écoles professionnelles secondaires du concours de compétences des écoles professionnelles de la province de Guizhou en 2022
How many checks does kubedm series-01-preflight have
Solution to game 10 of the personal field