leetcode-hot100-矩阵:73矩阵置零-54螺旋矩阵-48旋转图像-240搜索二维矩阵
73矩阵置零题目给定一个m x n的矩阵如果一个元素为 0 则将其所在行和列的所有元素都设为 0 。请使用原地算法。我们可以用两个标记数组分别记录每一行和每一列是否有零出现。具体地我们首先遍历该数组一次如果某个元素为 0那么就将该元素所在的行和列所对应标记数组的位置置为 true。最后我们再次遍历该数组用标记数组更新原数组即可。classSolution{publicvoidsetZeroes(int[][]matrix){intmmatrix.length;intnmatrix[0].length;boolean[]rownewboolean[m];boolean[]colnewboolean[n];for(inti0;im;i){for(intj0;jn;j){if(matrix[i][j]0){row[i]col[j]true;}}}for(inti0;im;i){for(intj0;jn;j){if(row[i]||col[j]){matrix[i][j]0;}}}}}54螺旋矩阵题目给你一个m行n列的矩阵matrix 请按照顺时针螺旋顺序返回矩阵中的所有元素。边界收缩classSolution{publicListIntegerspiralOrder(int[][]matrix){inttop0;intbottommatrix.length-1;intleft0;intrightmatrix[0].length-1;ListIntegerresultnewArrayList();while(topbottomleftright){for(intjleft;jright;j){result.add(matrix[top][j]);}for(intitop1;ibottom;i){result.add(matrix[i][right]);}if(topbottom){for(intjright-1;jleft;j--){result.add(matrix[bottom][j]);}}if(leftright){for(intibottom-1;itop;i--){result.add(matrix[i][left]);}}top;bottom--;left;right--;}returnresult;}}48旋转图像题目给定一个n × n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1输入matrix [[1,2,3],[4,5,6],[7,8,9]]输出[[7,4,1],[8,5,2],[9,6,3]]顺时针旋转90后位于 (i,j) 的元素去哪了。竖着看第一列的元素去到第一行。第二列的元素去到第二行。第 j 列的元素去到第 j 行。横着看第一行的元素去到最后一列。第二行的元素去到倒数第二列。第 i 行的元素去到第n−1−i 列。i 从 0 开始。所以位于 i 行 j 列的元素去到 j 行 n−1−i 列即 (i,j)→(j,n−1−i)。(i,j)→(j,n−1−i) 可以通过两次翻转操作得到先转置再行翻转。classSolution{publicvoidrotate(int[][]matrix){intnmatrix.length;for(inti0;in;i){for(intj0;ji;j){// 遍历对角线下方元素inttempmatrix[i][j];matrix[i][j]matrix[j][i];matrix[j][i]temp;}}for(int[]row:matrix){for(intj0;jn/2;j){inttemprow[j];row[j]row[n-1-j];row[n-1-j]temp;}}}}240搜索二维矩阵题目编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性每行的元素从左到右升序排列。每列的元素从上到下升序排列。classSolution{publicbooleansearchMatrix(int[][]matrix,inttarget){inti0;intjmatrix[0].length-1;while(imatrix.lengthj0){if(matrix[i][j]target){returntrue;}if(matrix[i][j]target){i;}else{j--;}}returnfalse;}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2413996.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!