当前位置:网站首页>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;
}
};
边栏推荐
- 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
- SQLMAP使用教程(二)实战技巧一
- 884. Uncommon words in two sentences
- Data visualization chart summary (II)
- [practical skills] how to do a good job in technical training?
- [jailhouse article] jailhouse hypervisor
- Personal developed penetration testing tool Satania v1.2 update
- Fried chicken nuggets and fifa22
- 1040 Longest Symmetric String
- leetcode-6109:知道秘密的人数
猜你喜欢

2017 USP Try-outs C. Coprimes

可变电阻器概述——结构、工作和不同应用

Implement a fixed capacity stack

RGB LED infinite mirror controlled by Arduino

wordpress切换页面,域名变回了IP地址

Navicat連接Oracle數據庫報錯ORA-28547或ORA-03135

MIT-6874-Deep Learning in the Life Sciences Week 7

Some common problems in the assessment of network engineers: WLAN, BGP, switch

Dynamic planning solution ideas and summary (30000 words)

1.14 - 流水线
随机推荐
1.15 - 输入输出系统
Open source storage is so popular, why do we insist on self-development?
【Rust 笔记】14-集合(下)
In this indifferent world, light crying
MatrixDB v4.5.0 重磅发布,全新推出 MARS2 存储引擎!
打印机脱机时一种容易被忽略的原因
Appium自动化测试基础 — Appium测试环境搭建总结
数据可视化图表总结(二)
Smart construction site "hydropower energy consumption online monitoring system"
Daily question 2006 Number of pairs whose absolute value of difference is k
Brief introduction to tcp/ip protocol stack
智慧工地“水电能耗在线监测系统”
How many checks does kubedm series-01-preflight have
Wazuh开源主机安全解决方案的简介与使用体验
CF1634 F. Fibonacci Additions
[rust notes] 17 concurrent (Part 2)
SQLMAP使用教程(一)
Navicat连接Oracle数据库报错ORA-28547或ORA-03135
1.13 - RISC/CISC
Matrixdb V4.5.0 was launched with a new mars2 storage engine!