当前位置: 首页 > news >正文

wordpress图站兰州网络推广昔年下拉博客

wordpress图站,兰州网络推广昔年下拉博客,wordpress 设置文章模板,网站开发核心技术JAVA代码编写 139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 **注意#xff1a;**不要求字典中出现的单词全部都使用#xff0c;并且字典中的单词可以重复使用。 示例 1#xff1a; 输入: s **不要求字典中出现的单词全部都使用并且字典中的单词可以重复使用。 示例 1 输入: s leetcode, wordDict [leet, code] 输出: true 解释: 返回 true 因为 leetcode 可以由 leet 和 code 拼接成。示例 2 输入: s applepenapple, wordDict [apple, pen] 输出: true 解释: 返回 true 因为 applepenapple 可以由 apple pen apple 拼接成。注意你可以重复使用字典中的单词。示例 3 输入: s catsandog, wordDict [cats, dog, sand, and, cat] 输出: false教程https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 方法一动态规划 思路单词就是物品字符串s就是背包单词能否组成字符串s就是问物品能不能把背包装满。 还是有点反应不过来。 拆分时可以重复使用字典中的单词说明就是一个完全背包 步骤 定义dp [i] 字符串长度为i的话dp[i]为true表示可以拆分为一个或多个在字典中出现的单词。 递推公式 如果确定dp[j] 是true且 [j, i] 这个区间的子串出现在字典里那么dp[i]一定是true。j i 。 所以递推公式是 if([j, i] 这个区间的子串出现在字典里 dp[j]是true) 那么 dp[i] true。 dp数组初始化dp[0] true其他初值都是false 确定遍历顺序: 如果求组合数就是外层for循环遍历物品内层for遍历背包。 如果求排列数就是外层for遍历背包内层for循环遍历物品。 强调物品之间顺序。 所以说本题一定是 先遍历背包再遍历物品。 举例推导dp数组 以输入: s “leetcode”, wordDict [“leet”, “code”]为例dp状态如图 复杂度分析 时间复杂度 O ( n 2 ) O(n^2) O(n2)空间复杂度 O ( m a x ( m , n ) ) O(max(m, n)) O(max(m,n)) class Solution {public boolean wordBreak(String s, ListString wordDict) {HashSetString set new HashSet(wordDict);boolean[] valid new boolean[s.length() 1];valid[0] true;for (int i 1; i s.length(); i) {for (int j 0; j i !valid[i]; j) {if (set.contains(s.substring(j, i)) valid[j]) {valid[i] true;}}}return valid[s.length()];} }56. 携带矿石资源多重背包 题目描述 你是一名宇航员即将前往一个遥远的行星。在这个行星上有许多不同类型的矿石资源每种矿石都有不同的重要性和价值。你需要选择哪些矿石带回地球但你的宇航舱有一定的容量限制。 给定一个宇航舱最大容量为 C。现在有 N 种不同类型的矿石每种矿石有一个重量 w[i]一个价值 v[i]以及最多 k[i] 个可用。不同类型的矿石在地球上的市场价值不同。你需要计算如何在不超过宇航舱容量的情况下最大化你所能获取的总价值。 输入描述 输入共包括四行第一行包含两个整数 C 和 N分别表示宇航舱的容量和矿石的种类数量。 接下来的三行每行包含 N 个正整数。具体如下 第二行包含 N 个整数表示 N 种矿石的重量。 第三行包含 N 个整数表示 N 种矿石的价格。 第四行包含 N 个整数表示 N 种矿石的可用数量上限。 输出描述 输出一个整数代表获取的最大价值。 输入示例 10 3 1 3 4 15 20 30 2 3 2输出示例 90提示信息 数据范围 1 C 10000; 1 N 10000; 1 w[i], v[i], k[i] 10000;教程https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%E5%A4%9A%E9%87%8D%E8%83%8C%E5%8C%85.html#%E5%A4%9A%E9%87%8D%E8%83%8C%E5%8C%85 方法一动态规划 思路多重背包 有N种物品和一个容量为V 的背包。第i种物品最多有Mi件可用每件耗费的空间是Ci 价值是Wi 。求解将哪些物品装入背包可使这些物品的耗费的空间总和不超过背包容量且价值总和最大。 背包最大重量为10。 物品为 重量价值数量物品01152物品13203物品24302 每件物品是有限个 01背包和多重背包唯一不同就是物品的个数上我们直接针对遍历顺序经行分析 需要多加一个循环限制物品的数量 for (int i 0; i n; i) { // 遍历物品for (int j bagWeight; j weight[i]; j--) { // 遍历背包容量// 以上为01背包然后加一个遍历个数for (int k 1; k nums[i] (j - k * weight[i]) 0; k) { // 遍历个数dp[j] Math.max(dp[j], dp[j - k * weight[i]] k * value[i]);}} }dp状态图如下 复杂度分析 时间复杂度 O ( n ∗ b a g W e i g h t 2 ) O(n * bagWeight^2) O(n∗bagWeight2)其中n是物品的数量bagWeight是背包的容量。空间复杂度O(bagWeight)其中bagWeight是背包的容量。 class Solution {public static void main(String[] args) {int bagWeight 10;int[] weight new int[] {1,3,4};int[] value new int[] {15,20,30};int[] nums new int[] {2,3,2};int n weight.length;int[] dp new int[bagWeight 1];for (int i 0; i n; i) { // 遍历物品for (int j bagWeight; j weight[i]; j--) { // 遍历背包容量// 以上为01背包然后加一个遍历个数for (int k 1; k nums[i] (j - k * weight[i]) 0; k) { // 遍历个数dp[j] Math.max(dp[j], dp[j - k * weight[i]] k * value[i]);}}}System.out.println(dp[bagWeight]);} }
http://www.zqtcl.cn/news/413482/

相关文章:

  • 重庆seo网站推广工具济南网页设计师招聘信息
  • 甘肃永靖建设住建局网站深圳网络广告推广公司
  • 台州企业网站搭建电话厦门学网站建设
  • 做易经网站做网站布为网
  • 高端定制开发网站可以做网站的网络
  • 局政务网站建设管理工作总结wordpress ks主题
  • 网站集约化建设的意义网页制作成app
  • 建设银行大厂支行网站专业的营销型网站建设公司
  • 询盘网站苏州建设银行招聘网站
  • 制作网站图片手机网站跳转
  • 装修公司营销网站模板东莞家居网站建设
  • 网站模板建站教程视频德州极速网站建设百家号
  • 专做蔬菜水果的网站自学it从哪里学起
  • 邵阳红网站搭建平台聚合力
  • 滁州网站建设信息推荐软件开发技术方案模板
  • 商务网站建设有哪几个步骤拼多多网页qq登录
  • 厦门商城网站开发宜昌小程序开发公司
  • 东莞沙田网站建设榆林网站建设价格
  • 无锡网站制作建设wordpress写文章模板
  • 企业网站销售提升学历要多少钱
  • 打开建设银行官方网站首页wordpress 站库分离
  • 电子商务网站建设的试卷设计之家app
  • 抚养网站建设黔东南小程序开发公司
  • 网站建设相关行业有哪些wordpress 内容管理系统
  • 网站 备案地温州网站优化排名推广
  • 做网站的工作量国内 wordpress
  • 定制网站开发是什么大业推广网站
  • 网站建设每年需要交多少钱天津制作网站公司
  • 网站平台都有哪些wordpress 主题制作 视频
  • 中山网站建设方案家具网站开发目的