0
点赞
收藏
分享

微信扫一扫

go语言刷题:279. 完全平方数

是归人不是过客 2022-04-04 阅读 23
golang

示例 1:

示例 2:

// 方法
func numSquares(n int) int {
	// 初始化列表
	f := make([]int, n+1)
	// 遍历1-n范围的所有数
	for i := 1; i <= n; i++ {
		minn := math.MaxInt32
		// 遍历1-i范围内的最小平方数
		// f[i-j*j]表示i-j*j以后的差可以由f[i-j*j]个完全平方数相加得到
		for j := 1; j*j <= i; j++ {
			minn = min(minn, f[i-j*j])
		}
		f[i] = minn + 1
	}
	return f[n]
}

// 取较小的值
func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
举报

相关推荐

0 条评论