1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// @Title: 重塑矩阵 (Reshape the Matrix)
// @Author: 15816537946@163.com
// @Date: 2021-02-17 11:04:46
// @Runtime: 8 ms
// @Memory: 6.9 MB
func matrixReshape(nums [][]int, r int, c int) [][]int {
	row, column := len(nums), len(nums[0])
	if r*c != row*column {
		return nums
	}

	ret := make([][]int, r)
	for i := range ret {
		ret[i] = make([]int, c)
	}

	var lo, hi int
	for i, rows := range ret {
		for j := range rows {
			if hi > column-1 {
				hi = 0
				lo++
			}
			ret[i][j] = nums[lo][hi]
			hi++
		}
	}
	return ret

}