Perfect Squares
来源:互联网 发布:淘宝卖家开通花呗条件 编辑:程序博客网 时间:2024/06/06 09:52
Perfect Squares
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...
) which sum to n.
For example, given n = 12
, return 3
because 12 = 4 + 4 + 4
; given n = 13
, return 2
because 13 = 4 + 9
.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
递归求解每个状态,开始直接递归求解,因为有很多重复计算,超时,后来开辟一个dp数组记录每个状态的值减少冗余计算。
代码:
class Solution {public: int numSquares(int n) { int ans=INT_MAX; vector<int>dp(n+1,0); dp[1]=1; return Numsq(n,dp); } int Numsq(int n,vector<int>&dp) { int ans=INT_MAX; int temp=sqrt(n); if (temp*temp==n) return 1; for (int i=temp; i>0; i--) { int tempans=0; if (dp[n-i*i]) { tempans=dp[n-i*i]; } else { dp[n-i*i]=Numsq(n-i*i,dp); } ans=min(ans,dp[n-i*i]+1); } dp[n]=ans; return ans; } };
0 0
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- Perfect Squares
- NYOJ257郁闷的C小加(一)_中缀转后缀
- Hive,Hbase,HDFS,MapReduce等之间的关系
- Alamofire报错:dyld: Library not loaded
- TCP和UDP的区别(转)
- Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
- Perfect Squares
- 【ios】int 和 NSInteger区别
- maven打包时报致命错误: 在类路径或引导类路径中找不到程序包 java.lang
- RoundedImageView的使用
- 设备树学习之(四)ADC 又见中断
- 表单校验
- 时间复杂度
- js 给某个div增加class 样式(三种方式)
- Halcon矩阵操作最小二乘