【编程学习】数组转矩阵

一、题目:

给定一个一维数组,要求是将数组转化成一个矩阵。数组的输入作为矩阵的第一列,之后每一列的数值,都要比上一列下移一行。

举例

输入:

复制代码
[1,2,3,4,5,6,7,8,9,10]

输出:

复制代码
1 10 9 8 7 6 5 4 3 2
2 1 10 9 8 7 6 5 4 3
3 2 1 10 9 8 7 6 5 4
4 3 2 1 10 9 8 7 6 5
5 4 3 2 1 10 9 8 7 6
6 5 4 3 2 1 10 9 8 7
7 6 5 4 3 2 1 10 9 8
8 7 6 5 4 3 2 1 10 9
9 8 7 6 5 4 3 2 1 10
10 9 8 7 6 5 4 3 2 1

二、解题

解题思路:动态规划

从题目和举例看,第一列,就是输入的数组值竖排,那么:

从第二列开始,取值相比第一列,相当于一个环,往下转动了一行,然后赋值,在dp上,应该是:

示例代码:Go

复制代码
func ConvertToMatrix(input []int32) (error, [][]int32) {
	dataLen := int32(len(input))
	if (input == nil) || (dataLen == 0) {
		return errors.New("invalid Input"), nil
	}

	dp := make([][]int32, dataLen)
	for i := range dp {
		dp[i] = make([]int32, dataLen)
	}

	for i := int32(0); i < dataLen; i++ {
		dp[i][0] = input[i]
	}

	for j := int32(1); j < dataLen; j++ {
		dp[0][j] = dp[dataLen-1][j-1]
		for i := int32(1); i < dataLen; i++ {
			dp[i][j] = dp[i-1][j-1]
		}
	}

	return nil, dp
}
相关推荐
Kurisu5756 小时前
深度解析:Go 语言 GMP 调度器模型与内核线程探测
java·数据库·golang
半导体守望者6 小时前
MKS RPS AX7657-85 故障分析与可能解决方案
学习·机器人·自动化·制造·模块测试
Han.miracle6 小时前
Java HashMap 与 ConcurrentHashMap 核心原理总结:从 Hash 冲突到 LongAdder
java·算法·哈希算法
菜菜的顾清寒6 小时前
力扣HOT100(35)回溯-全排列
算法·leetcode·职场和发展
weixin_468466856 小时前
目标识别算法落地实战:从选型到部署的全流程指南
图像处理·人工智能·python·算法·目标检测·机器视觉·目标识别
MicroTech20256 小时前
微算法科技(NASDAQ :MLGO)量子启发进化算法(QEA)与区块链(BC)集成技术:构建高可靠去中心化创新方案
科技·算法·量子计算
RD_daoyi6 小时前
Google 官方调整抓取工具 IP 文件路径:SEO 与服务器安全策略要变了?
服务器·人工智能·学习·tcp/ip·搜索引擎·chatgpt
CQU_JIAKE6 小时前
5.27【A】
算法
小陈phd6 小时前
多模态大模型学习笔记(四十一)——从 “能看“ 到 “会想“:一文看懂多模态大模型的三代演进之路
人工智能·笔记·学习
江屿风6 小时前
C++OJ题经验总结(竞赛)3
开发语言·c++·笔记·算法