赞
踩
- class Solution {
- public:
- /* void setZeroes(vector<vector<int>>& matrix) {
- int m=matrix.size();
- int 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(0== matrix[i][j]) {
- row[i]=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;
- }
- }
- }
-
-
- }*/
- void setZeroes(vector<vector<int>>& matrix) {
- int m = matrix.size();
- int n = matrix[0].size();
- bool flagRow0 = false;
- bool flagCol0 = false;
- for (int i = 0; i < m; i++) {
- if (0 == matrix[i][0]) {
- flagCol0 = true;
- }
- }
-
- for (int j = 0; j < n; j++) {
- if (0 == matrix[0][j]) {
- flagRow0 = true;
- }
- }
-
- for (int i = 1; i < m; i++) {
- for (int j = 1; j < n; j++) {
- if (0 == matrix[i][j]) {
- matrix[i][0] = matrix[0][j] = 0;
- }
- }
- }
-
- for (int i = 1; i < m; i++) {
- for (int j = 1; j < n; j++) {
- if (!matrix[i][0] || !matrix[0][j]) {
- matrix[i][j] = 0;
- }
- }
- }
-
- if (flagRow0) {
- for (int j = 0; j < n; j++) {
- matrix[0][j] = 0;
- }
- }
-
- if (flagCol0) {
- for (int i= 0; i < m; i++) {
- matrix[i][0] = 0;
- }
- }
- }
- };
矩阵旋转:
- class Solution {
- public:
- void rotate(vector<vector<int>>& matrix) {
- int n = matrix.size();
- // 水平翻转
- for (int i = 0; i < n / 2; ++i) {
- for (int j = 0; j < n; ++j) {
- swap(matrix[i][j], matrix[n - i - 1][j]);
- }
- }
- // 主对角线翻转
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < i; ++j) {
- swap(matrix[i][j], matrix[j][i]);
- }
- }
-
- }
- };
- void rotate(int** matrix, int matrixSize, int* matrixColSize){
- int revertedMatrix[matrixSize][* matrixColSize];
- for(int i=0; i<matrixSize; i++) {
- for(int j=0; j<* matrixColSize; j++) {
- revertedMatrix[j][matrixSize-i-1]=matrix[i][j];
- }
- }
-
- for(int i=0; i<matrixSize; i++) {
- for(int j=0; j<* matrixColSize; j++) {
- matrix[i][j]=revertedMatrix[i][j];
- printf(" %d ", matrix[i][j] );
- }
- printf("\n");
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。