方法一:
思路:
- 如果reshape参数不合理直接返回原理的矩阵
假设现在reshape之后的矩阵的元素是第index个(从0开始),那么在原矩阵的第
index/len(mat[0])行(从0开始),在原矩阵的第index%len(mat[0])列(从0开始)func matrixReshape(mat [][]int, r int, c int) [][]int {//如果行为0 或者 列为0 或者 参数不合理 直接返回原来的矩阵if len(mat) == 0 || len(mat[0]) == 0 || len(mat) * len(mat[0]) != r * c {return mat}//初始化结果矩阵ret := make([][]int, r)for i := 0; i < r; i++ {ret[i] = make([]int, c)}index := 0//处理for i := 0; i < r; i++ {for j := 0; j < c; j++ {index = i*c + j//现在是第i*c + j个元素ret[i][j] = mat[index/len(mat[0])][index%len(mat[0])]}}//返回结果return ret}
