当前位置:网站首页>54. Spiral matrix & 59 Spiral matrix II ●●
54. Spiral matrix & 59 Spiral matrix II ●●
2022-07-05 04:50:00 【chenyfan_】
54. Spiral matrix ●●
To give you one m That's ok n Columns of the matrix matrix , Please follow Clockwise spiral sequence , Returns all elements in the matrix .
Input :matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Output :[1,2,3,4,8,12,11,10,9,5,6,7]
- simulation
The four edges traverse in order , Move 、 Judgement boundary .
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int m = matrix.size(); // m That's ok
int n = matrix[0].size(); // n Column
int top = 0, right = n-1, left = 0, buttom = m-1; // Boundary index value
int numsize = m*n;
int num = 0;
vector<int> ans(numsize);
while(true){
for(int i = left; i <= right; i++){
ans[num++] = matrix[top][i];
}
top++;
if(top>buttom) break; // Traverse Judgement boundary
for(int i = top; i <= buttom; i++){
ans[num++] = matrix[i][right];
}
right--;
if(left>right) break;
for(int i = right; i >= left; i--){
ans[num++] = matrix[buttom][i];
}
buttom--;
if(top>buttom) break;
for(int i = buttom; i >= top; i--){
ans[num++] = matrix[i][left];
}
left++;
if(left>right) break;
}
return ans;
}
};
59. Spiral matrix II ●●
Give you a positive integer n , Generate a include 1 To n 2 n^2 n2 All the elements , And the element press Clockwise order Spirally arranged n x n square matrix matrix .
Input :n = 3
Output :[[1,2,3],[8,9,4],[7,6,5]]
- Generate a n×n Empty matrix ans, Then simulate the whole inward surrounding filling process :
- Define the current left and right upper and lower boundaries l,r,t,b, Initial value num = 1, Iteration termination value numsize = n * n;
- When num <= numsize when , Always follow From left to right From top to bottom From right to left From bottom to top Fill in the sequence loop , After each filling :
- perform num += 1: Get the next number to fill in ;
- Update boundaries : For example, after filling in from left to right , Upper boundary t += 1, Equivalent to the upper boundary shrinking inward 1.
- Use num <= numsize instead of l < r || t < b As an iterative condition , In order to Solve when n In an odd number of , The problem that the central number of the matrix cannot be filled in during the iteration .
- Eventually return ans that will do .
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ans(n, vector<int>(n, 0));
int up = 0, down = n-1, left = 0, right = n-1;
int cnt = 1, num = n*n;
while(cnt <= num){
// Iteration conditions , Number of fillings <= Lattice number
for(int i = left; i <= right; ++i) ans[up][i] = cnt++; // Move right
++up;
for(int i = up; i <= down; ++i) ans[i][right] = cnt++; // Move down
--right;
for(int i = right; i >= left; --i) ans[down][i] = cnt++; // Move left
--down;
for(int i = down; i >= up; --i) ans[i][left] = cnt++; // Move upward
++left;
}
return ans;
}
};
边栏推荐
- Solutions and answers for the 2021 Shenzhen cup
- Neural networks and deep learning Chapter 5: convolutional neural networks reading questions
- The remainder operation is a hash function
- [ideas] 2021 may day mathematical modeling competition / May Day mathematical modeling ideas + references + codes
- MySQL audit log Archive
- 计组笔记(1)——校验码、原补码乘除计算、浮点数计算
- Cookie learning diary 1
- 2022 thinking of mathematical modeling a problem of American college students / analysis of 2022 American competition a problem
- 【acwing】240. food chain
- English topic assignment (26)
猜你喜欢
[groovy] closure (closure call is associated with call method | call () method is defined in interface | call () method is defined in class | code example)
2022-2028 global and Chinese virtual data storage Market Research Report
AutoCAD - isometric annotation
2022 thinking of mathematical modeling a problem of American college students / analysis of 2022 American competition a problem
An article takes you to thoroughly understand descriptors
[groovy] closure (closure call | closure default parameter it | code example)
2022 thinking of Mathematical Modeling B problem of American college students / analysis of 2022 American competition B problem
Special information | finance, accounting, audit - 22.1.23
Séparation et combinaison de la construction du système qualité
windows下Redis-cluster集群搭建
随机推荐
Pdf to DWG in CAD
[groovy] closure (closure parameter list rule | default parameter list | do not receive parameters | receive custom parameters)
Function template
2022 U.S. college students' mathematical modeling e problem ideas / 2022 U.S. game e problem analysis
AutoCAD - scaling
[groovy] closure (Introduction to closure class closure | closure parametertypes and maximumnumberofparameters member usage)
2021 Higher Education Club Cup mathematical modeling national tournament ABCD problem - problem solving ideas
【acwing】528. cheese
Wenet: E2E speech recognition tool for industrial implementation
Matplotlib draws three-dimensional scatter and surface graphs
Use assimp library to read MTL file data
【acwing】837. Number of connected block points
You Li takes you to talk about C language 7 (define constants and macros)
[groovy] closure (Introduction to closure class closure | this, owner, delegate member assignment and source code analysis)
Detailed introduction of OSPF header message
The principle of attention mechanism and its application in seq2seq (bahadanau attention)
History of web page requests
JMeter -- distributed pressure measurement
CUDA Programming atomic operation atomicadd reports error err:msb3721, return code 1
Pointer function (basic)