题解 | #最少的完全平方数#

最少的完全平方数

https://www.nowcoder.com/practice/4b2f5d4c00f44a92845bdad633965c04

package main

import (
	"fmt"
	"math"
)

func solution(n int) int {
	f := make([]int, n+1)
	for i := 1; i <= n; i++ {
		minNum := math.MaxInt
		for j := 1; j*j <= i; j++ {
			minNum = min(minNum, f[i-j*j])
		}
		f[i] = minNum + 1
	}
	return f[n]
}

func min(a, b int) int {
	if a > b {
		return b
	}
	return a
}

/*
*
输入5
输出2
说明:1 + 2*2 = 5
*/
func main() {
	var n int
	fmt.Scan(&n)
	fmt.Println(solution(n))
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务