Go: Sparse Array

复制代码
package main

import (
  "fmt"
)

type Node struct {
  row int
  col int
  val int
}

func main() {
  var vail [7][9]int
  vail[2][8] = 5
  vail[5][3] = 6
  for _, row := range vail {
    for _, v := range row {
      print(v, " ")
    }
    println()
  }
  var sparseArray []Node
  sparseArray = append(sparseArray, Node{
    row: len(vail),
    col: len(vail[0]),
  })
  for i, row := range vail {
    for j, v := range row {
      if v != 0 {
        sparseArray = append(sparseArray, Node{
          row: i,
          col: j,
          val: v,
        })
      }
    }
  }
  fmt.Println("当前的稀疏数组是:::::")

  for i, v := range sparseArray {
    fmt.Printf("%d: %d %d %d\n", i, v.row, v.col, v.val)
  }

  var vale = make([][]int, sparseArray[0].row)
  for i := 0; i < len(vale); i++ {
    vale[i] = make([]int, sparseArray[0].col)
  }

  for i, v := range sparseArray {
    if i != 0 {
      vale[v.row][v.col] = v.val
    }
  }
  fmt.Println(vale)
  for _, row := range vale {
    for _, v := range row {
      fmt.Print(v, " ")
    }
    println()
  }
}
复制代码

 

posted @   ascertain  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示