😶一分耕耘,一分收获😶
💪💪💪此系列仅为记录本人补充学习数据结构相关知识,有兴趣的,大家可以共同学习👏👏👏
[= 重塑矩阵 =]
题目描述
解题思路
1、判断是否满足重塑条件 原矩阵元素个数是否与重塑矩阵个数相同
2、不满足条件 直接返回原矩阵
3、满足条件:先构建初始化重塑矩阵
4、遍历原矩阵,并填充重塑矩阵
解题方法
func matrixReshape(mat [][]int, r int, c int) [][]int {
//判断是否满足条件 m*n = r*c
if len(mat)*len(mat[0]) != r*c {
return mat
}
// 满足条件 构建重塑矩阵
res := make([][]int, r)
for i:=0;i<r;i++{
res[i] = make([]int, c)
}
// 遍历原矩阵 填充新矩阵
newR, newC := 0,0
for i := 0;i<len(mat);i++{
for j:=0;j<len(mat[0]);j++{
res[newR][newC] = mat[i][j]
newC++
// 满足列数,则换行,同时重置列值为0
if newC == c {
newR++
newC=0
}
}
}
return res
}
[= 杨辉三角 =]
题目描述
解题思路
纯数学的解法 刚开始连杨辉三角都不知道,头疼😱😱😱😱😱😱😱😱😱😱
解题方法
func generate(numRows int) [][]int {
// 纯数学的东西,很头疼呀
ans := make([][]int, numRows)
for i := range ans {
// 循环行
ans[i] = make([]int, i+1)
// 首尾都是1
ans[i][0] = 1
ans[i][i] = 1
// 填充每行的中间列
for j := 1;j<i;j++{
ans[i][j] = ans[i-1][j-1] + ans[i-1][j]
}
}
return ans
}