Leetcode Note: Go - Reshape the Matrix
Reshape the Matrix - LeetCode
https://leetcode.com/problems/reshape-the-matrix/
- Go 言語で取り組んだメモ
所感
- MITLAB で提供されている reshape 関数を実装する
- m x n の matrix を、元のデータを保持したままサイズ r x c の異なる matrix に reshape して
[][]int
として return する - 渡される引数:
- mat: m x n の matrix
- r, c: reshape したい matrix の number of rows, number of colums
回答
Go O(n) - LeetCode Discuss
https://leetcode.com/problems/reshape-the-matrix/discuss/2248978/Go-O(n)
func matrixReshape(mat [][]int, r int, c int) [][]int {
if r*c != len(mat)*len(mat[0]) {
return mat
}
res := make([][]int, r)
for i := 0; i < r; i++ {
res[i] = make([]int, c)
}
resRow, resCol := 0, 0
for row := 0; row < len(mat); row++ {
for col := 0; col < len(mat[0]); col++ {
res[resRow][resCol] = mat[row][col]
resCol++
if resCol > c-1 {
resRow++
resCol = 0
}
}
}
return res
}