栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用动态编程将自然数表示为平方和

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用动态编程将自然数表示为平方和

我不确定DP是否是解决此问题的最有效方法,但是您要求使用DP。

min [i] = min(min [i-1] +1,1 + min [i-prev])其中prev是一个平方数 <i
这很接近,我将条件写为

min[i] = min(1 + min[i - prev]) for each square number 'prev <= i'

请注意,

i
您需要分别检查的不同可能值
prev

这是Java的简单实现。

Arrays.fill(min, Integer.MAX_VALUE);min[0] = 0;for (int i = 1; i <= n; ++i) {    for (int j = 1; j*j <= i; ++j) {        min[i] = Math.min(min[i], min[i - j*j] + 1);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号