leetcode279:Perfect Squares
来源:互联网 发布:遥感图像拼接软件 编辑:程序博客网 时间:2024/05/22 14:23
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
.
题目分析:属于离散背包问题,背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。本题计算在n时,可以为n-j*j的值加1,这样的话就可以考虑使用动态规划。当当前值跟之前的值有一定的联系的时候,我们可以考虑使用动态规划。
具体代码如下
public int numSquares(int n) { if(n<=0) return 0; int[] dp=new int[n+1]; dp[0]=0; dp[1]=1; for(int i=2;i<=n;i++) { int min=Integer.MAX_VALUE; int j=1; //找到合适的j,当j*j<=i时可以不断尝试 while(j*j<=i) { if(j*j==i) { min=1; break; } //更新min min=Math.min(min, dp[i-j*j]+1); j++; } dp[i]=min; } return dp[n]; }
0 0
- leetcode279:Perfect Squares
- [leetcode279] perfect squares
- LeetCode279. Perfect Squares
- leetcode279-Perfect Squares
- leetcode279. Perfect Squares
- LeetCode279——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
- SVN帮助文档
- 使用iLO远程管理HP系列服务器英文版操作步骤
- request.getQueryString()是什么意思
- 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“
- erlang nif 测试
- leetcode279:Perfect Squares
- 用tomcat搭建web服务器
- Android基础入门教程——2.4.7 构建一个可复用的自定义BaseAdapter
- Datastax文档Apache Cassandra v2.1 第二部分 理解Cassandra架构之架构概要
- ThreadLocal实现线程隔离
- ubuntu安装的时候遇到的问题
- OCUI界面设计:滚动视图与表格视图嵌套布局
- SQL 获取系统当前时间的函数
- ListView 笔记