go稀疏数组

news/2024/10/19 3:23:12/

稀疏数组

  • 稀疏数组

稀疏数组

在这里插入图片描述
在这里插入图片描述

go">package testimport ("encoding/json""fmt""io/ioutil""log""reflect""testing"
)type ValNode struct {Row int `json:"row"`Col int `json:"col"`Val int `json:"val"`
}func TestSparseArray(t *testing.T) {// 1 创建一个原始数组var chessMap [11][11]intchessMap[1][2] = 1chessMap[2][3] = 2// 2 输出看看原始数组for _, v := range chessMap {for _, v2 := range v {fmt.Printf("%d\t", v2)}fmt.Println()}// 3 转成稀疏数组var sparseArray []ValNodesparseArray = append(sparseArray, ValNode{len(chessMap), len(chessMap[0]), 0})for i, v := range chessMap {for j, v2 := range v {if v2 != 0 {// 创建一个值节点valNode := ValNode{Row: i,Col: j,Val: v2,}sparseArray = append(sparseArray, valNode)}}}// 输出稀疏数组for i, valNode := range sparseArray {fmt.Printf("%d: %d\t%d\t%d\n", i, valNode.Row, valNode.Col, valNode.Val)}// 将这个稀疏数组存盘// Serialize slice of ValNodemarshal, err := json.Marshal(sparseArray)if err != nil {log.Fatal("json.Marshal", err)}log.Println("Serialized slice of ValNode:", string(marshal))// to-dberr = ioutil.WriteFile("./output.txt", marshal, 0644)if err != nil {log.Fatal("写入文件时发生错误:", err)}log.Println("数据成功写入文件。")// read-dbdata, err := ioutil.ReadFile("./output.txt")if err != nil {log.Fatal("读取文件时发生错误:", err)}log.Println("数据成功写入文件。")// Deserialize slice of ValNodevar unmarshal []ValNodeerr = json.Unmarshal(data, &unmarshal)if err != nil {log.Fatal("json.Unmarshal", err)}log.Println("Deserialized slice of ValNode:", unmarshal)log.Println("Type of Deserialized slice of ValNode:", reflect.TypeOf(unmarshal))// 创建一个原始数组// 创建一个二维切片,包含 11 行chessMap2 := make([][]int, unmarshal[0].Row)// 初始化每一行元素为包含 11 个元素的切片for i := range chessMap2 {chessMap2[i] = make([]int, unmarshal[0].Col)}for i, valNode := range unmarshal {if i != 0 {chessMap2[valNode.Row][valNode.Col] = valNode.Val}}// 看看chessMap2 是不是恢复// 输出稀疏数组for _, v := range chessMap2 {for _, v2 := range v {fmt.Printf("%d\t", v2)}fmt.Println()}
}

http://www.ppmy.cn/news/1443377.html

相关文章

软考-论文写作-论架构风格论文

题目 素材 框架 一、 摘要 2020年12月,我参加了某省政协委员履职系统的开发。该系统为政协机关人员线上开展各项工作以及委员完成各项履职提供了全方位的软件支撑。我在该项目重担任系统架构师一职,负责履职系统的架构设计。本文结合实践,以委员履职系统为例,主要讨论软件…

GraphQL速学笔记

在学习开始前,我习惯先用gpt了解一个这是个什么东西: GraphQL是一种用于API开发的查询语言和运行时环境。它由Facebook于2012年开发并在2015年开源,旨在解决传统RESTful API的一些限制和缺点。 在GraphQL中,客户端可以通过发送查询…

力扣HOT100 - 105. 从前序与中序遍历序列构造二叉树

解题思路&#xff1a; 分治 以中序遍历为参照&#xff0c;用前序遍历的节点构建二叉树。 root 1 index - left表示前序遍历右子树的开始节点&#xff0c;即当前节点的下一个节点左子树长度。 class Solution {int[] preorder;HashMap<Integer, Integer> map new Ha…

FPM 快速报表开发

背景&#xff1a; 使用FPM开发报表时&#xff0c;如果报表字段过多&#xff0c;页面拖拽等操作不方便 报表数量过多时&#xff0c;新建应用操作步骤较为繁琐 更习惯通过少量代码而非页面操作去实现功能 处理&#xff1a; 将FPM报表开发简化为类似GUI端ALV的开发过程:&#xff…

Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容&#xff0c;提升用户的阅读体验。除了在PDF中添加图片外&#xff0c;有时也需要替换或删除其中的图片&#xff0c;以改进视觉效果或更新信息。文本将提供以下三个示例&#xff0c;介绍如何使用Python 操作PDF文件中的图片&#xff1a; 目录 …

12_认识QT

在一些高版本qtcreator上源码中会出现各种警告&#xff0c;但是可以编译通过&#xff0c; 这是ClangCodeModel 模块导致的&#xff0c;解决办法&#xff1a; help->About Plugins…->C>ClangCodeModel去掉勾选&#xff0c;再重启creator即可

无人机在测绘领域的应用

你知道吗&#xff1f;无人机在测绘领域的应用已经掀起了一场技术革命&#xff01; &#x1f680;它不仅可以高效完成测绘任务&#xff0c;还能在恶劣环境下工作&#xff0c;真是测绘界的超级英雄啊&#xff01; 想象一下&#xff0c;无人机像一只自由翱翔的鸟儿&#xff0c;在…

关于google search console工具提交sitemap.xml无法抓取的问题解决办法

其实这个问题很好解决。 第一种情况&#xff1a;利用工具为我们的网站自动生成静态的sitemap.xml文件。这种可以检查下是否完整&#xff0c;然后上传到根目录下去&#xff0c;再去google search console提交我们的网站地图。 第二种情况&#xff1a;同样利用工具自动生成动态s…