找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2824|回复: 0

[代码与实例] Lintcode513 Perfect Squares solution 题解

4

主题

4

帖子

4

积分

贫民

积分
4
rockerrrr 发表于 2018-8-1 10:29:18 | 显示全部楼层 |阅读模式
【题目描述】
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.
给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。

【题目链接】
www.lintcode.com/en/problem/perfect-squares/

【题目解析】
用一个数组来记录已有的结果,初始化为正无穷(INT_MAX)。外层循环变量i从0到n,内层循环变量j在i的基础上依次加上每个整数的完全平方,超过n的不算。那么i + j*j这个数需要的最少的完全平方数的数量,就是数组中当前的数值,和i位置的数值加上一,这两者之间较小的数字。如果当前的值较小,说明我们已经找到过它需要的完全平方数的个数(最初都是正无穷)。否则的话,说明在i的基础上加上j的平方符合条件,所需的完全平方数的个数就是i需要的个数加上一。

【参考答案】
www.jiuzhang.com/soluti**/perfect-squares/


简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表