279. Perfect Squares
来源:互联网 发布:软件自动升级方案设计 编辑:程序博客网 时间:2024/05/17 01:24
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[0] = 0 dp[1] = dp[0]+1 = 1dp[2] = dp[1]+1 = 2dp[3] = dp[2]+1 = 3dp[4] = Min{ dp[4-1*1]+1, dp[4-2*2]+1 } = Min{ dp[3]+1, dp[0]+1 } = 1dp[5] = Min{ dp[5-1*1]+1, dp[5-2*2]+1 } = Min{ dp[4]+1, dp[1]+1 } = 2...dp[13] = Min{ dp[13-1*1]+1, dp[13-2*2]+1, dp[13-3*3]+1 } = Min{ dp[12]+1, dp[9]+1, dp[4]+1 } = 2...dp[n] = Min{ dp[n - i*i] + 1 }, n - i*i >=0 && i >= 1
根据上式 dp[0] = min(dp[n - j*j] + 1) 可以下代码如下:public class Solution { public int numSquares(int n) { int[] dp = new int[n + 1]; dp[0] = 0; for (int i = 1; i <= n; i ++) { int j = 1; int min = Integer.MAX_VALUE; while (i - j * j >= 0) { min = Math.min(min, dp[i - j * j] + 1); dp[i] = min; j ++; } } return dp[n]; }}
0 0
- 279.Perfect Squares
- [leetcode] 279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares LeetCode
- leetcode 279. Perfect Squares
- leetcode 279. Perfect Squares
- [LeetCode]279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- LeetCode-279.Perfect Squares
- LeetCode *** 279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- leetcode.279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- Spring Data MongoDB : Query document(MongoDB中使用Query时的Query的编写和调用方式)
- windows10系统下删除文件提醒权限不够,抄袭
- View的工作原理一(基础知识点)
- 自定义控件--快速索引(二)
- nmap学习之目标说明
- 279. Perfect Squares
- 串口通讯
- 【NDN安全】Coordination Supports Security: A New Defence Mechanism Against Interest Flooding in NDN 学习笔记
- CF432D 求等于原串前缀的后缀子串,输出子串的长度和出现次数
- 日期类Date、Calendar
- 无题
- 【git】git push免用户名密码,用公钥
- JVM调优实战
- MySql 5.6性能优化