ps模板网站推荐,上海网站设计知名乐云seo,信用网站标准化建设方案,ppt模板免费下载的网站377. 组合总和 Ⅳ
题目
给你一个由 不同 整数组成的数组 nums #xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
答案
class Solution {public int combinationSum4(int[] nums, int…377. 组合总和 Ⅳ
题目
给你一个由 不同 整数组成的数组 nums 和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
答案
class Solution {public int combinationSum4(int[] nums, int target) {int[] dp new int[target1];dp[0] 1;for(int i0;itarget;i){for(int j0;jnums.length;j){if(inums[j]){dp[i] dp[i-nums[j]]; }}}return dp[target];}
}\57. 爬楼梯第八期模拟笔试
题目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬至多m (1 m n)个台阶。你有多少种不同的方法可以爬到楼顶呢
注意给定 n 是一个正整数。
答案
import java.util.Scanner;public class Main{public static void main (String[] args) {Scanner scanner new Scanner(System.in);int m,n;while(scanner.hasNextInt()){n scanner.nextInt();m scanner.nextInt();int[] dp new int[n1];dp[0] 1;for(int i1;in;i){for(int j1;jm;j){if(ij){dp[i] dp[i-j];}}}System.out.println(dp[n]);}}
}322. 零钱兑换
题目
给你一个整数数组 coins 表示不同面额的硬币以及一个整数 amount 表示总金额。
计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额返回 -1 。
你可以认为每种硬币的数量是无限的。
答案
class Solution {public int coinChange(int[] coins, int amount) {int[] dp new int[amount1];int max Integer.MAX_VALUE;for(int i0;iamount;i){dp[i] max;}dp[0] 0;for(int i0;icoins.length;i){for(int jcoins[i];jamount;j){if(dp[j-coins[i]]!max){dp[j] Math.min(dp[j],dp[j-coins[i]]1);}}}return dp[amount]max ? -1 : dp[amount];}
}279. 完全平方数
题目
给你一个整数 n 返回 和为 n 的完全平方数的最少数量 。
完全平方数 是一个整数其值等于另一个整数的平方换句话说其值等于一个整数自乘的积。例如1、4、9 和 16 都是完全平方数而 3 和 11 不是。
答案
class Solution {public int numSquares(int n) {int[] dp new int[n1];int max Integer.MAX_VALUE;for(int i0;in;i){dp[i] max;}dp[0] 0;for(int i0;in;i){for(int j0;j*ji;j){if(dp[i-j*j]!max){dp[i] Math.min(dp[i],dp[i-j*j]1);}}}return dp[n];}
}139. 单词拆分
题目
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。
**注意**不要求字典中出现的单词全部都使用并且字典中的单词可以重复使用。
答案
class Solution {public boolean wordBreak(String s, ListString wordDict) {SetString set new HashSet(wordDict);boolean[] dp new boolean[s.length()1];dp[0] true;for(int i0;idp.length;i){for(int j0;ji;j){if(dp[j] set.contains(s.substring(j,i))){dp[i] true;}}}return dp[s.length()];}
}