admin管理员组文章数量:1027805
【LeetCode 热题 100】矩阵置零 / 螺旋矩阵 / 旋转图像 / 搜索二维矩阵 II
矩阵
矩阵置零
- 矩阵置零
代码语言:javascript代码运行次数:0运行复制用两个数组分别标记行和列,判断这一行和这一列有没有出现0。
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
vector<int> row(m), col(n);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == 0)
{
row[i] = 1;
col[j] = 1;
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (row[i] || col[j])
{
matrix[i][j] = 0;
}
}
}
}
};
螺旋矩阵
- 螺旋矩阵
代码语言:javascript代码运行次数:0运行复制用方向数组来转换方向,当遇到边界、或这个位置已经遍历过了,就是变换方向的时候。
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
int m = matrix.size(), n = matrix[0].size();
vector<vector<bool>> used(m, vector<bool>(n));
vector<int> res(m * n);
int a = 0, b = 0, d = 1;
for (int i = 0; i < m * n; i++)
{
used[a][b] = true;
res[i] = matrix[a][b];
int x = a + dx[d], y = b + dy[d];
if (x < 0 || x == m || y < 0 || y == n || used[x][y])
{
d = (d + 1) % 4;
x = a + dx[d], y = b + dy[d];
}
a = x, b = y;
}
return res;
}
};
旋转图像
- 旋转图像
代码语言:javascript代码运行次数:0运行复制纯纯找规律题。先正对角线交换,然后逐行反转。
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < i; j++)
{
swap(matrix[i][j], matrix[j][i]);
}
}
for (int i = 0; i < m; i++)
{
reverse(matrix[i].begin(), matrix[i].end());
}
}
};
搜索二维矩阵 II
- 搜索二维矩阵 II
代码语言:javascript代码运行次数:0运行复制仔细观察发现,从右上角看这个矩阵近似一个搜索二叉树,那就可以像查找二叉搜索树那样查找目标值。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size(), n = matrix[0].size();
int x = 0, y = n - 1;
while (x < m && y >= 0)
{
if (target < matrix[x][y]) y--;
else if (target > matrix[x][y]) x++;
else return true;
}
return false;
}
};
本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-29,如有侵权请联系 cloudcommunity@tencent 删除搜索intleetcodematrix数组【LeetCode 热题 100】矩阵置零 / 螺旋矩阵 / 旋转图像 / 搜索二维矩阵 II
矩阵
矩阵置零
- 矩阵置零
代码语言:javascript代码运行次数:0运行复制用两个数组分别标记行和列,判断这一行和这一列有没有出现0。
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
vector<int> row(m), col(n);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == 0)
{
row[i] = 1;
col[j] = 1;
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (row[i] || col[j])
{
matrix[i][j] = 0;
}
}
}
}
};
螺旋矩阵
- 螺旋矩阵
代码语言:javascript代码运行次数:0运行复制用方向数组来转换方向,当遇到边界、或这个位置已经遍历过了,就是变换方向的时候。
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
int m = matrix.size(), n = matrix[0].size();
vector<vector<bool>> used(m, vector<bool>(n));
vector<int> res(m * n);
int a = 0, b = 0, d = 1;
for (int i = 0; i < m * n; i++)
{
used[a][b] = true;
res[i] = matrix[a][b];
int x = a + dx[d], y = b + dy[d];
if (x < 0 || x == m || y < 0 || y == n || used[x][y])
{
d = (d + 1) % 4;
x = a + dx[d], y = b + dy[d];
}
a = x, b = y;
}
return res;
}
};
旋转图像
- 旋转图像
代码语言:javascript代码运行次数:0运行复制纯纯找规律题。先正对角线交换,然后逐行反转。
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < i; j++)
{
swap(matrix[i][j], matrix[j][i]);
}
}
for (int i = 0; i < m; i++)
{
reverse(matrix[i].begin(), matrix[i].end());
}
}
};
搜索二维矩阵 II
- 搜索二维矩阵 II
代码语言:javascript代码运行次数:0运行复制仔细观察发现,从右上角看这个矩阵近似一个搜索二叉树,那就可以像查找二叉搜索树那样查找目标值。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size(), n = matrix[0].size();
int x = 0, y = n - 1;
while (x < m && y >= 0)
{
if (target < matrix[x][y]) y--;
else if (target > matrix[x][y]) x++;
else return true;
}
return false;
}
};
本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-29,如有侵权请联系 cloudcommunity@tencent 删除搜索intleetcodematrix数组本文标签: LeetCode 热题 100矩阵置零螺旋矩阵旋转图像搜索二维矩阵 II
版权声明:本文标题:【LeetCode 热题 100】矩阵置零螺旋矩阵旋转图像搜索二维矩阵 II 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747453775a2167113.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论