赞
踩
给定一个一维数组,要求是将数组转化成一个矩阵。数组的输入作为矩阵的第一列,之后每一列的数值,都要比上一列下移一行。
输入:
[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上,应该是:
- 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
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。