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

上海网站建设关键词排名邯郸铸邯网络信息科技有限公

上海网站建设关键词排名,邯郸铸邯网络信息科技有限公,小饭店普通装修,低俗网站推广哪里找73. 矩阵置零 给定一个 m x n 的矩阵#xff0c;如果一个元素为 0 #xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 法一#xff1a; var setZeroes function(matrix) {let setX new Set(); // 用于存储需要置零的行索引let setY new Set(); //…73. 矩阵置零 给定一个 m x n 的矩阵如果一个元素为 0 则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 法一 var setZeroes function(matrix) {let setX new Set(); // 用于存储需要置零的行索引let setY new Set(); // 用于存储需要置零的列索引let row matrix.length;let col matrix[0].length;for(let i0;irow;i){for(let j0;jcol;j){if(matrix[i][j]0){setX.add(i);setY.add(j);}}}// 将需要置零的行全置为 0for(let i of setX){for(let j0;jcol;j){matrix[i][j]0;}}// 将需要置零的列全置为 0for(let i of setY){for(let j0;jrow;j){matrix[j][i]0;}} };时间复杂度O(m*n)空间复杂度O(mn)额外使用了两个set来存储行和列索引 法二 解题思路 使用矩阵的第一行和第一列作为标记区域 用第一行标记需要置零的列。用第一列标记需要置零的行。 步骤概述 第一步先遍历整个矩阵记录哪些行和列需要置零但不要急着修改矩阵。 使用第一行的元素记录某一列是否需要置零。使用第一列的元素记录某一行是否需要置零。此外需要一个变量标记第一行和第一列本身是否需要置零。 第二步根据第一行和第一列的标记修改矩阵对应的行和列为零。第三步单独处理第一行和第一列因为它们被用作标记最后再更新。 var setZeroes function(matrix) {let row matrix.length;let col matrix[0].length;// 标记第一列和第一行是否需要置零let firstRowZero false;let firstColZero false;for (let i 0; i row; i) { // 检查第一列是否需要置零if (matrix[i][0] 0) {firstColZero true;break;}}for (let j 0; j col; j) { // 检查第一行是否需要置零if (matrix[0][j] 0) {firstRowZero true;break;}}for (let i 1; i row; i) { // 使用第一行和第一列标记需要置零的行和列for (let j 1; j col; j) {if (matrix[i][j] 0) {matrix[i][0] 0; // 标记该行需要置零matrix[0][j] 0; // 标记该列需要置零}}}for (let i 1; i row; i) { // 遍历矩阵根据标记置零跳过第一行和第一列for (let j 1; j col; j) {if (matrix[i][0] 0 || matrix[0][j] 0) {matrix[i][j] 0;}}}if (firstColZero) { // 根据标记处理第一列for (let i 0; i row; i) {matrix[i][0] 0;}}if (firstRowZero) { // 根据标记处理第一行for (let j 0; j col; j) {matrix[0][j] 0;}} }; 时间复杂度O(m*n)空间复杂度O(1) 54 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix 请按照 顺时针螺旋顺序 返回矩阵中的所有元素。 思路 定义边界使用四个变量 top、bottom、left、right 分别表示矩阵的上、下、左、右边界。遍历顺序按照顺时针方向依次遍历上边界、右边界、下边界和左边界。调整边界每遍历完一个边界后调整相应的边界。重复遍历直到所有元素都被遍历。 代码实现 var spiralOrder function(matrix) {let res [];// 维护四个边界let left 0;let right matrix[0].length-1;let top 0;let bottom matrix.length-1;// 遍历while(leftrighttopbottom){for(let ileft;iright;i){ // 遍历上边界res.push(matrix[top][i]);}top;for(let itop;ibottom;i){ // 遍历右边界res.push(matrix[i][right]);}right--;if(topbottom){for(let iright;ileft;i--){ // 遍历下边界res.push(matrix[bottom][i]);}bottom--;}if(leftright){for(let ibottom;itop;i--){ // 遍历左边界res.push(matrix[i][left]);}left;}}return res; };48. 旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 思路 转置矩阵将矩阵的行和列互换即 matrix[i][j] 和 matrix[j][i] 交换。翻转每一行将转置后的矩阵的每一行反转。 代码实现 var rotate function(matrix) {for(let i0;imatrix.length;i){for(let ji;jmatrix.length;j){[matrix[i][j],matrix[j][i]] [matrix[j][i],matrix[i][j]];}}for(let i0;imatrix.length;i){matrix[i].reverse();} };240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 思路从右上角或左下角开始搜索 从右上角开始 初始化指针在矩阵的右上角即 row 0col n - 1。如果当前元素等于 target返回 true。如果当前元素大于 target说明目标值不可能在当前列因此向左移动一列col–。如果当前元素小于 target说明目标值不可能在当前行因此向下移动一行row。重复上述步骤直到找到目标值或指针越界。 从左下角开始 初始化指针在矩阵的左下角即 row m - 1col 0。如果当前元素等于 target返回 true。如果当前元素大于 target说明目标值不可能在当前行因此向上移动一行row–。如果当前元素小于 target说明目标值不可能在当前列因此向右移动一列col。重复上述步骤直到找到目标值或指针越界。 代码实现从右上角开始 var searchMatrix function(matrix, target) {if (matrix.length 0 || matrix[0].length 0) return false;let row 0;let col matrix[0].length-1;while(rowmatrix.length col0){if(matrix[row][col]target){return true;}else if(matrix[row][col]target){col--;}else{row;}}return false; };
http://www.w-s-a.com/news/518712/

相关文章:

  • 旅游短租公寓网站建设深圳龙岗招聘网
  • 做海淘是在哪个网站网络查控系统设计方案
  • o2o网站建设代理商微信公众号开发文档
  • 网站设计课程总结关于网站备案的公告
  • 网站建设与运营意义到哪查找网站域名
  • 网站及单位网站建设情况眉县住房和城市建设局网站
  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw