back function (return number)

remember the structure

class Solution {
int res = 0;
//List<List<Integer>> resList = new ArrayList<List<Integer>>();
public int combinationSum4(int[] nums, int target) {
Arrays.sort(nums);
return back(target, 0,nums,new HashMap<Integer,Integer>());
}
int back(int target, int sum, int[] nums, Map<Integer,Integer> map){
if(sum == target){
return 1;
}else if(sum > target) return 0;
if(map.containsKey(sum)) return map.get(sum);
int count = 0;
for(int i = 0; i<nums.length; i++){
count+= back(target, sum+nums[i],nums,map);
}
map.put(sum,count);
return count;
}
}

Solution 2:

dp keywards: how many ways and optimal

class Solution {
public int combinationSum4(int[] nums, int target) {
int[] dp = new int[target+1]; // how many cases for each number
Arrays.sort(nums);
for(int num:nums){
if(num>target) continue;
dp[num] = 1;
}
for(int i = 1;i <=target; i++){ for(int num : nums){
if(i<num) continue;
dp[i] += dp[i-num];
} }
return dp[target];
}
}

70. Climbing Stairs

class Solution {
//dp[n] = dp[n-1] + dp[n-2]
//dp[1] : 1, dp[0] = 1 ,dp[2] = 2, dp[3] = 3
public int climbStairs(int n) {
int[] dp = new int[n+1];
dp[0] = 1; dp[1] = 1;
for(int i = 2; i<=n; i++){
dp[i] = dp[i-1]+dp[i-2];
}
return dp[n];
}
}

最新文章

  1. spring aop 环绕通知around和其他通知的区别
  2. [Azure附录]1.在Windows Server 2012中安装Active Directory域服务
  3. 【JAVA中String、StringBuffer、StringBuilder类的使用】
  4. 转:对TCP/IP网络协议的深入浅出归纳
  5. fancybox 点击 js脚本判断验证,fancybox的宽度高度设置
  6. jQuery插件面向对象开发
  7. Windows Media Player axWindowsMediaPlayer1 分类: C# 2014-07-28 12:04 195人阅读 评论(0) 收藏
  8. C# foreach 有用方法具体解释
  9. js真乃神器也
  10. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-2项目说明和源码下载
  11. StringUtils工具类常用方法汇总(截取、去除空白、包含、查询索引)
  12. 学习windows编程 day6 之处理鼠标移动
  13. 15-算法训练 P1103
  14. react native 第一次下载app的欢迎页+每次启动app的启动页设计
  15. Java 多线程之 Thread 类 和 Runnable 接口初步使用
  16. 系统管理员常用的Linux命令
  17. 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】
  18. 安装phoenix时,执行命令./sqlline.py hostname1,hostname2.hostname3..... 时报错 ImportError: No module named argparse
  19. [PY3]——IO——文件读写
  20. VirtualBox虚拟机扩容

热门文章

  1. 1047 邮票面值设计 (DFS+DP)
  2. php5 编译安装
  3. vue--钩子函数1
  4. 2019.03.21 读书笔记 readonly与const
  5. [转]jQuery的.live()和.die()
  6. [转]js 判断js函数、变量是否存在
  7. Murano Weekly Meeting 2015.08.11
  8. malloc(0)分配多少内存?(译文)
  9. 利用Serv-U搭建FTP服务器
  10. FileZila