国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

279. Perfect Squares -Medium

2019-11-10 21:24:59
字體:
供稿:網(wǎng)友

Question

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n.

給出一個(gè)正整數(shù)n,找到相加得到n的最少個(gè)數(shù)的完全平方數(shù)字(比如1, 4, 9, 16)

Example

For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.

Solution

動(dòng)態(tài)規(guī)劃解。這種類型的題目已經(jīng)接觸很多了,比較加上每個(gè)完全平方數(shù)字得到的個(gè)數(shù),取最小的那個(gè)就可以了。定義dp[i]:相加得到i的最少個(gè)數(shù)的完全平方數(shù)字,遞推式:dp[i] = min(dp[i], dp[i - square_number]) (square_number < i)

class Solution(object): def numSquares(self, n): """ :type n: int :rtype: int """ dp = [0] + [n + 1] * n for i in range(1, n + 1): index = 1 square_number = 1 while square_number <= i: dp[i] = min(dp[i - square_number] + 1, dp[i]) index += 1 square_number = pow(index, 2) return dp[n]
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵寿县| 汝阳县| 河南省| 玉溪市| 高平市| 乌兰察布市| 鄂温| 鄱阳县| 任丘市| 濮阳县| 霍林郭勒市| 恩施市| 荥经县| 和平区| 嘉鱼县| 建宁县| 沂南县| 阳原县| 天台县| 永福县| 新竹市| 宜宾市| 隆子县| 碌曲县| 宁晋县| 车致| 玉树县| 兴宁市| 清河县| 利川市| 邢台县| 衡水市| 辰溪县| 长子县| 全州县| 高州市| 宁德市| 文安县| 嘉定区| 南皮县| 龙门县|