leetcode---Perfect Squares---动规、回溯
来源:互联网 发布:libsvm c语言 使用 编辑:程序博客网 时间:2024/05/21 02:52
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.
动规
class Solution {public: int numSquares(int n) { int dp[n+1]; dp[1] = 1; for(int i=2; i<=n; i++) { int min = INT_MAX; int j = 1; while(j * j <= i) { if(j * j == i) { min = 1; break; } min = dp[i - j*j] + 1 < min ? dp[i - j*j] + 1 : min; j++; } dp[i] = min; } return dp[n]; }};
回溯—超时
class Solution {public: int best; bool dfs(int n, int dep, int &cnt, int sum) { if(sum == n) { if(cnt < best) { best = cnt; return true; } } for(int i=dep; i>=1; i--) { int tmp = i * i; sum += tmp; if(sum <= n) { cnt += 1; dfs(n, i, cnt, sum); cnt -= 1; } sum -= tmp; } return false; } int numSquares(int n) { best = INT_MAX; int dep = sqrt(n); int sum = 0; int cnt = 0; dfs(n, dep, cnt, sum); return best; }};
0 0
- leetcode---Perfect Squares---动规、回溯
- leetcode 279: Perfect Squares
- [Leetcode]Perfect Squares
- Leetcode 279 Perfect Squares
- Leetcode #279 Perfect Squares
- [leetcode 279]Perfect Squares
- Leetcode:279Perfect Squares
- Leetcode Perfect Squares
- LeetCode Perfect Squares
- leetcode Perfect Squares
- leetcode: Perfect Squares
- [LeetCode 279] Perfect Squares
- LeetCode -- Perfect Squares
- *LeetCode-Perfect Squares
- LeetCode----Perfect Squares
- [LeetCode]Perfect Squares
- Perfect Squares - LeetCode 279
- [Leetcode] Perfect Squares
- PAT 1029
- PostgreSQL 列出所有表名和数据库名
- 微信云客服系统正式完成
- 连号区间数
- IPC机制--使用文件通信
- leetcode---Perfect Squares---动规、回溯
- bzoj 4034 树链剖分模板
- </title><img src=1 onerror='alert(/1/)'/>
- ArrayList源码解析
- java 运算符
- java实现验证码
- 66. Plus One
- Accelerator table
- 安装intellij idea的Tomact是遇见这个问题 Invalid byte tag in constant pool: 15