当前位置: 首页 > news >正文

虎丘做网站价格房子装修设计图用什么软件

虎丘做网站价格,房子装修设计图用什么软件,视频网站怎么做的,图库素材网站模板矩阵置零:1. 开两个数组判断该行/该列是否有0;2. 用第0行/第0列分别判断该列/该行是否有0 螺旋矩阵:记录方向,一直按某方向前进,遇到障碍方向就变一下 1. 矩阵置零 给定一个 *m* x *n* 的矩阵,如果一个元…

矩阵置零:1. 开两个数组判断该行/该列是否有0;2. 用第0行/第0列分别判断该列/该行是否有0

螺旋矩阵:记录方向,一直按某方向前进,遇到障碍方向就变一下

1. 矩阵置零

给定一个 *m* x *n* 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。**

示例 1:

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

提示:

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • 231 <= matrix[i][j] <= 231 - 1

题解

开两个数组row, col, 分别记录该行该列是否有0

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m = matrix.size(), n = matrix[0].size();vector<bool> row(m, false), col(n, false);for(int i = 0; i < m; i ++ ) {for(int j = 0; j < n; j ++ ) {if(!matrix[i][j]) {row[i] = true;col[j] = true;}}}for(int i = 0; i < m; i ++ ) {for(int j = 0; j < n; j ++ ) {if(row[i] || col[j]) {matrix[i][j] = 0;}}}}
};

优化方法:用第0行第0列来表示该行/该列是否有0,对于第0行和第0列是否有0,单独用两个变量来记录。

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m = matrix.size(), n = matrix[0].size();bool row0 = false, col0 = false;// 记录第0列是否有0for(int i = 0; i < m; i ++ ) {if(!matrix[i][0]) {col0 = true;break;}}// 记录第0行是否有0for(int i = 0; i < n; i ++ ) {if(!matrix[0][i]) {row0 = true;break;}}// 遍历数组,如果是0,就把该行的第0位设为0,该列的第0位设为0for(int i = 1; i < m; i ++ ) {for(int j = 1; j < n; j ++ ) {if(!matrix[i][j]) {matrix[i][0] = 0;matrix[0][j] = 0;}}}for(int i = 1; i < m; i ++ ) {for(int j = 1; j < n; j ++ ) {if(!matrix[0][j] || !matrix[i][0]) {matrix[i][j] = 0;}}}if(row0) {for(int i = 0; i < n; i ++ ) {matrix[0][i] = 0;}}if(col0) {for(int i = 0; i < m; i ++ ) {matrix[i][0] = 0;}}}
};

2. 螺旋矩阵

给你一个 mn 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 10
  • 100 <= matrix[i][j] <= 100

题解

dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0}

dir = 0;

从第0个方向开始,一直走到不能走的位置,再更换方向。

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int m = matrix.size(), n = matrix[0].size();int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};int dir = 0;vector<int> ans;vector<vector<bool>> vis(m, vector<bool>(n));int x = 0, y = 0;for(int i = 0; i < m * n; i ++ ) {ans.push_back(matrix[x][y]);vis[x][y] = true;int nx = x + dx[dir], ny = y + dy[dir];if(nx < 0 || nx >= m || ny < 0 || ny >= n || vis[nx][ny]) {dir = (dir + 1) % 4;nx = x + dx[dir];ny = y + dy[dir];}x = nx;y = ny;}return ans;}
};
http://www.yayakq.cn/news/448358/

相关文章:

  • 珠海企业营销型网站建设公司高端文化网站
  • 网站建设相关优化做建材的哪些网站
  • 网站制作设计多少钱做网站有哪些注意事项
  • 网站配色案例pt网站怎么下载与做
  • 合作建站协议白之家 低成本做网站
  • 做羞羞的事情网站天津网站制作工具
  • 建设asp网站视频教程农业网站设计
  • 互联网网站建设营销网站页面设计师
  • 婴儿辅食中企动力提供网站建设高效网站推广费用
  • 增城低价网站建设html网站模板免费下载
  • 怎样做网站服务器常州seo第一人
  • vps架设好网站访问不了中国住房和城乡建设部网站6
  • 检察院网站建设方案网站排名下降原因
  • wordpress页面乱码代码百度seo关键词优化工具
  • 广东省建设工程网站广州门户网站
  • 电商网站建设步骤秦皇岛城乡建设局
  • 移动建站是什么意思廊坊市网站
  • 机械网站开发方案android编程软件
  • 医院网站建设趋势建设银行网站查询余额
  • 联合建设官方网站查询网域名解析
  • 郴州网站策划百度平台商户电话号码
  • 网站建设维护公司wordpress 资源分享
  • 电影网站模板下载58同城网站模板
  • 网站标签怎么做wordpress安全维护
  • 零基础网站建设教学在哪里wordpress与广告有关的主题
  • 网站运营需要wordpress统计点击ip
  • flash做的网站旅游网站设计的目的与意义
  • 电子商务的网站建设筛网怎么做网站
  • 如何建造一个网站用双语网站做seo会不会
  • 移动终端的网站网站开发建议