题解 | 之字形打印矩阵

之字形打印矩阵

https://www.nowcoder.com/practice/7df39c7556424eada267d8f793961a1e

解题思路

这是一个矩阵"之"字形打印的问题。需要按照从左到右、从右到左交替的顺序打印每一行。

关键点:

  1. 根据行号判断打印方向
  2. 偶数行从左到右打印
  3. 奇数行从右到左打印
  4. 需要记录当前打印位置

算法步骤:

  1. 创建结果数组
  2. 遍历矩阵的每一行
  3. 根据行号决定打印方向
  4. 按顺序存储打印结果

代码

class Printer {
public:
    vector<int> printMatrix(vector<vector<int> >& mat, int n, int m) {
        vector<int> result(n * m);
        int index = 0;
        
        // 遍历每一行
        for (int i = 0; i < n; i++) {
            // 偶数行从左到右
            if (i % 2 == 0) {
                for (int j = 0; j < m; j++) {
                    result[index++] = mat[i][j];
                }
            }
            // 奇数行从右到左
            else {
                for (int j = m - 1; j >= 0; j--) {
                    result[index++] = mat[i][j];
                }
            }
        }
        
        return result;
    }
};


import java.util.*;

public class Printer {
    public int[] printMatrix(int[][] mat, int n, int m) {
        int[] result = new int[n * m];
        int index = 0;
        
        // 遍历每一行
        for (int i = 0; i < n; i++) {
            // 偶数行从左到右
            if (i % 2 == 0) {
                for (int j = 0; j < m; j++) {
                    result[index++] = mat[i][j];
                }
            }
            // 奇数行从右到左
            else {
                for (int j = m - 1; j >= 0; j--) {
                    result[index++] = mat[i][j];
                }
            }
        }
        
        return result;
    }
}
#!/usr/bin/env python
# -*- coding: utf-8 -*-

class Printer:
    def printMatrix(self, mat, n, m):
        result = []
        
        # 遍历每一行
        for i in range(n):
            # 偶数行从左到右
            if i % 2 == 0:
                for j in range(m):
                    result.append(mat[i][j])
            # 奇数行从右到左
            else:
                for j in range(m-1, -1, -1):
                    result.append(mat[i][j])
                    
        return result


算法及复杂度

  • 算法:模拟
  • 时间复杂度:,需要遍历整个矩阵
  • 空间复杂度:,需要存储结果数组
全部评论

相关推荐

明天不下雨了_人机版:让我们大声的说出来:以前的未来就是现在
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-23 16:31
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务