• 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代码
    评论

  • 相关阅读:
    11gR2 RAC手动添加节点数据库实例 转
    Oracle 11g rac添加删除集群数据库
    11gR2RAC更换CRS磁盘组文档
    Java堆、栈和常量池
    牛人博客
    异常的定义和分类
    java中Proxy(代理与动态代理)
    详解java定时任务
    世界上最大的风不是台风,而是枕边风
    tomcat 日志catalina.out 按天自动分割 设定时任务定时清除
  • 原文地址:https://www.cnblogs.com/waitmoon/p/14612741.html
Copyright © 2020-2023  润新知