zoukankan      html  css  js  c++  java
  • 2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。[[0,1,2],[3,4,5],[6,7,8]]的打印顺序是0,1,3,6,4,2,5,7,8。

    2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。[[0,1,2],[3,4,5],[6,7,8]]的打印顺序是0,1,3,6,4,2,5,7,8。

    福大大 答案2021-04-02:

    两个for循环嵌套。
    外层循环。先遍历第一列,再遍历不包含列号为0的最后一行。每循环一次,修改标志位。
    内层循环。根据标志位判断,从左下到右上,还是从右上到左下。

    代码用golang编写。代码如下:

    package main
    
    import "fmt"
    
    func main() {
        arr := [][]int{
            {0, 1, 2},
            {3, 4, 5},
            {6, 7, 8}}
        printMatrixZigZag(arr)
    }
    func printMatrixZigZag(matrix [][]int) {
        row := len(matrix)
        col := len(matrix[0])
        fromUp := false
        //遍历第一列
        for i := 0; i < row; i++ {
            if fromUp {
                //找最右上的位置
                j := 0
                for ; i-j >= 0 && j < col; j++ {
                }
                j--
    
                //右上到左下
                for ; j >= 0; j-- {
                    fmt.Print(matrix[i-j][0+j], " ")
                }
            } else {
                //左下到右上
                for j := 0; i-j >= 0 && j < col; j++ {
                    fmt.Print(matrix[i-j][0+j], " ")
                }
            }
            fromUp = !fromUp
        }
    
        //遍历最后一行
        for j := 1; j < col; j++ {
            if fromUp {
                //找最右上的位置
                i := 0
                for ; row-1-i >= 0 && j+i < col; i++ {
                }
                i--
    
                //右上到左下
                for ; i >= 0; i-- {
                    fmt.Print(matrix[row-1-i][j+i], " ")
                }
            } else {
                //左下到右上
                for i := 0; row-1-i >= 0 && j+i < col; i++ {
                    fmt.Print(matrix[row-1-i][j+i], " ")
                }
            }
            fromUp = !fromUp
        }
    }
    

    执行结果如下:
    在这里插入图片描述


    左神java代码
    评论

  • 相关阅读:
    为页面上某些文本框添加离开验证输入事件
    学习之UML类图符号
    djangomagic blog
    验证码识别基础方法及源码
    LINQ TO XML实用解析
    解决ASP.NET中的各种乱码问题
    ASP.NET 1.1 ~ 4.0 中的哈希碰撞漏洞
    断点续传下载文件
    SQL Server资源
    Python图片浏览器
  • 原文地址:https://www.cnblogs.com/waitmoon/p/14612741.html
Copyright © 2011-2022 走看看