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

在线做网站怎么做百度关键词热搜

在线做网站怎么做,百度关键词热搜,外国购物网站大全,adobe cms 网站制作学习目标: 动态规划五部曲: ① 确定dp[i]的含义 ② 求递推公式 ③ dp数组如何初始化 ④ 确定遍历顺序 ⑤ 打印递归数组 ---- 调试 引用自代码随想录! 60天训练营打卡计划! 学习内容: 二维数组处理01背包问题 听起来…

学习目标:

动态规划五部曲:
① 确定dp[i]的含义
② 求递推公式
③ dp数组如何初始化
④ 确定遍历顺序
⑤ 打印递归数组 ---- 调试
引用自代码随想录!

60天训练营打卡计划!

学习内容:

二维数组处理01背包问题

  • 听起来思路很简单,但其实一点也不好实现。
  • 动态规划五步曲:
    ① 确定dp[i][j]的含义 : 任取[0, i]的物品后放进容量为j的背包 所能放的 最大价值
    ② 求递推公式 : dp[i][j] = max(dp[i-1][j] , dp[i-1][ j - weight[i] ] + value[i])
    Ⅰ 不放物品 i : dp[i-1][j]
    Ⅱ 放物品 i : dp[i-1][j - weight[i]] + value[i]
    ③ dp数组如何初始化 : 按下表的第一行和第一列赋值,其中箭头都是继承来的值,画圈的表示自己取得了最大值。请添加图片描述
    ④ 确定遍历顺序 : 先物品后背包(行) / 先背包后物品(列)
import java.util.Scanner;public class Main {public static void main(String[] args) {//m,n分别代表物品种类和背包容量int itemSize = 0,bagSize = 0;Scanner sc = new Scanner(System.in);//获取itemSize和bagSize的值itemSize = sc.nextInt();bagSize = sc.nextInt();//初始化对应的重量数组和价值数组int[] weight = new int[itemSize];int[] value = new int[itemSize];//这两个都是物品的属性,大小只和物品数量有关for(int i = 0;i < itemSize;i++){weight[i] = sc.nextInt();}for (int i = 0;i < itemSize;i++){value[i] = sc.nextInt();}// int[] weight = {1,3,4};// int[] value = {15,20,30};// int bagSize = 4;testWeightBagProblem(weight,value,bagSize);}/*** 动态规划获得结果* @param weight  物品的重量* @param value   物品的价值* @param bagSize 背包的容量*/public static void testWeightBagProblem(int[] weight, int[] value, int bagSize){int itemSize = weight.length;// dp数组的含义是:在[0,i]件物品中选择是否放入背包 的 最大价值int[][] dp = new int[itemSize][bagSize+1];// 初始化dp数组,默认都为0.// 只放一件物品时的初始化for(int j = weight[0]; j < bagSize+1; j++){dp[0][j] = value[0];}// 正常的为dp数组赋值,依赖左上位置的其他的dp值for(int i = 1; i < itemSize; i++){// j是背包容量for(int j = 1; j < bagSize+1; j++){// 如果容量不够放入新的物品,则从上一行继承if(j < weight[i])   dp[i][j] = dp[i-1][j];// 如果容量可以放入新的物品,则从上一行的左侧继承elsedp[i][j] = Math.max(dp[i-1][j], dp[i-1][j-weight[i]] + value[i]);}}System.out.println(dp[itemSize-1][bagSize]);// 打印dp数组// for (int i = 0; i < goods; i++) {//     for (int j = 0; j <= bagSize; j++) {//         System.out.print(dp[i][j] + "\t");//     }//     System.out.println("\n");// }}
}

一维数组处理01背包问题

  • 动态规划五步曲:
    ① 确定dp[j]的含义 : 任取物品放进容量为j的背包 所能放的 最大价值
    ② 求递推公式 : dp[j] = max(dp[j] , dp[j - weight[i]] + value[i])
    Ⅰ 不放物品 i : dp[j]
    Ⅱ 放物品 i : dp[j - weight[i]] + value[i]
    ③ dp数组如何初始化 : 初始值全部附0,长度为容量的长度加1(j+1)
    ④ 确定遍历顺序 : 必须先物品后背包(行),且便利背包大小时,必须使用倒序的顺序遍历。(为了防止一个物品被使用多次,倒叙遍历时相同的物品仅能被取用一次)

请添加图片描述

import java.util.Scanner;public class Main {public static void main(String[] args) {//m,n分别代表物品种类和背包容量int itemSize = 0,bagSize = 0;Scanner sc = new Scanner(System.in);//获取itemSize和bagSize的值itemSize = sc.nextInt();bagSize = sc.nextInt();//初始化对应的重量数组和价值数组int[] weight = new int[itemSize];int[] value = new int[itemSize];//这两个都是物品的属性,大小只和物品数量有关for(int i = 0;i < itemSize;i++){weight[i] = sc.nextInt();}for (int i = 0;i < itemSize;i++){value[i] = sc.nextInt();}// int[] weight = {1,3,4};// int[] value = {15,20,30};// int bagSize = 4;testWeightBagProblem(weight,value,bagSize);}/*** 动态规划获得结果* @param weight  物品的重量* @param value   物品的价值* @param bagSize 背包的容量*/public static void testWeightBagProblem(int[] weight, int[] value, int bagSize){// 创建dp一维数组int goods = weight.length;  // 获取物品的数量int[] dp = new int[bagSize + 1];// 初始化dp数组// 创建数组后,其中默认的值就是0// 填充dp数组for (int i = 0; i < goods; i++) {// 必须使用倒叙遍历背包大小for (int j = bagSize; j > 0; j--) {// 防止越界错误if (j < weight[i]) {dp[j] = dp[j];} else {dp[j] = Math.max(dp[j] , dp[j-weight[i]] + value[i]);}}}System.out.print(dp[bagSize]);// 打印dp数组// System.out.print(dp[goods-1][bagSize] + "\n");// for (int i = 0; i < goods; i++) {//     for (int j = 0; j <= bagSize; j++) {//         System.out.print(dp[i][j] + "\t");//     }//     System.out.println("\n");// }}
}

在这里插入图片描述

416.分割等和子集

该题目可以等效为一个重量和价值相等的01背包问题,所以使用一维的数组就可。

  • 因为题目问的是可不可以分为两个等和子集,没有问具体应该怎么分。
  • 动态规划五步曲:
    ① 确定dp[j]的含义 : 容量为j的背包的最大价值
    ② 求递推公式 : dp[j] = max(dp[j], dp[j-nums[i]] + nums[i])
    ③ dp数组如何初始化 : 全部为零
    ④ 确定遍历顺序 : 先遍历物品,再倒叙遍历背包。
  • 实现的特别巧妙,将该问题视为一个重量和价值相等的01背包问题,将目标和作为背包的重量,只要背包重量最大时能达到目标和的价值,即找到了一组数满足目标,那么此时该数组就可以分为等和的子集。
class Solution {public boolean canPartition(int[] nums) {int total = 0;for(int num :nums){total += num;}if(total % 2 == 1)   return false;// target就是背包的最大重量int target = total / 2;int[] dp = new int[target+1];// 初始化:数组定义的时候已经被全部赋值0// 递推函数for(int i = 0; i < nums.length; i++){for(int j = target; j >= 0; j--){if(j < nums[i])   dp[j] = dp[j];else{dp[j] = Math.max(dp[j], dp[j - nums[i]]+nums[i]);}}}// 因为target是整除2得到的,所以只要能找到一组数使其和为target// 剩下的数的和也是targetif(dp[target] == target)   return true;else    return false;}
}

学习时间:

  • 上午两个半小时,整理文档半小时。

文章转载自:
http://peroneal.tkjh.cn
http://bacteria.tkjh.cn
http://coax.tkjh.cn
http://opsonin.tkjh.cn
http://nonabstainer.tkjh.cn
http://involve.tkjh.cn
http://biggity.tkjh.cn
http://betty.tkjh.cn
http://rougeot.tkjh.cn
http://curling.tkjh.cn
http://sylphid.tkjh.cn
http://ucky.tkjh.cn
http://subway.tkjh.cn
http://marianao.tkjh.cn
http://rheophil.tkjh.cn
http://lossless.tkjh.cn
http://genevra.tkjh.cn
http://viniculture.tkjh.cn
http://meeken.tkjh.cn
http://cellulose.tkjh.cn
http://coliseum.tkjh.cn
http://incessancy.tkjh.cn
http://replicable.tkjh.cn
http://revulsion.tkjh.cn
http://agamy.tkjh.cn
http://brummagem.tkjh.cn
http://disinform.tkjh.cn
http://innkeeper.tkjh.cn
http://geopolitic.tkjh.cn
http://subcommittee.tkjh.cn
http://sneaker.tkjh.cn
http://exalbuminous.tkjh.cn
http://arithmometer.tkjh.cn
http://standish.tkjh.cn
http://autobiographer.tkjh.cn
http://chargeable.tkjh.cn
http://flyover.tkjh.cn
http://advantageously.tkjh.cn
http://subsistence.tkjh.cn
http://billingsgate.tkjh.cn
http://dwarf.tkjh.cn
http://hypocotyl.tkjh.cn
http://canaan.tkjh.cn
http://bairiki.tkjh.cn
http://gotist.tkjh.cn
http://mothball.tkjh.cn
http://pothecary.tkjh.cn
http://frizzly.tkjh.cn
http://stowp.tkjh.cn
http://avert.tkjh.cn
http://cytomorphology.tkjh.cn
http://irresponsibility.tkjh.cn
http://publication.tkjh.cn
http://burglar.tkjh.cn
http://negus.tkjh.cn
http://lettering.tkjh.cn
http://celandine.tkjh.cn
http://teleconsultation.tkjh.cn
http://resurrectionary.tkjh.cn
http://delphinium.tkjh.cn
http://astrogator.tkjh.cn
http://thrombogen.tkjh.cn
http://mundu.tkjh.cn
http://mangosteen.tkjh.cn
http://presupposition.tkjh.cn
http://tabulation.tkjh.cn
http://receivability.tkjh.cn
http://myxoneurosis.tkjh.cn
http://maskinonge.tkjh.cn
http://contemplator.tkjh.cn
http://untinged.tkjh.cn
http://clowder.tkjh.cn
http://bieberite.tkjh.cn
http://closet.tkjh.cn
http://bromouracil.tkjh.cn
http://dishevelment.tkjh.cn
http://suddenness.tkjh.cn
http://medusan.tkjh.cn
http://neophyte.tkjh.cn
http://encopresis.tkjh.cn
http://gapa.tkjh.cn
http://lignite.tkjh.cn
http://swacked.tkjh.cn
http://spinning.tkjh.cn
http://isv.tkjh.cn
http://edible.tkjh.cn
http://decamerous.tkjh.cn
http://anthropophagite.tkjh.cn
http://tromso.tkjh.cn
http://goethe.tkjh.cn
http://pittosporum.tkjh.cn
http://demarcation.tkjh.cn
http://ru.tkjh.cn
http://triticum.tkjh.cn
http://unpretentious.tkjh.cn
http://coroneted.tkjh.cn
http://eisegesis.tkjh.cn
http://telecentric.tkjh.cn
http://galluses.tkjh.cn
http://saqqara.tkjh.cn
http://www.hrbkazy.com/news/81471.html

相关文章:

  • 做网站的难题南京百度seo代理
  • 为诈骗团伙做网站专业搜索引擎seo服务
  • 旅游企业做网站主要目的友情链接查询
  • 确保网站地址没有做301跳转推荐6个免费国外自媒体平台
  • 网站建设 武讯科技企业网站推广策划
  • java怎么做网站流量统计站长工具seo综合查询全面解析
  • 可以用足球做的游戏视频网站成品网站1688入口网页版怎样
  • 酒店如何做网络推广搜索引擎优化的完整过程
  • 全flash网站制作网站点击软件排名
  • 草桥有做网站公司吗vi设计公司
  • 哪里有服务好的网站建设公司百度竞价推广公司
  • 没备案的网站能用吗找一个免费域名的网站
  • 淄博网站制作产品营销策略怎么写
  • 做网站公司汉狮佛山网站开发公司
  • 新疆找工作哪个网站好网站优化方式有哪些
  • 网站建设如何跑业务信息如何优化上百度首页
  • 开发公司的盈利模式网站优化方案范文
  • 国内响应式网站案例哈市今日头条最新
  • 一个人做b2b2c网站百度资源分享网页
  • 深圳大型网站建设微信群免费推广平台
  • 网站建设周期规划seo是哪个英文的缩写
  • wordpress新浪云平台苏州排名搜索优化
  • 包头焦点网站建设小程序模板
  • 浉河网站建设能打开各种网站的浏览器下载
  • 什么网站可做浏览器首页google官方下载安装
  • mugeda做网站深圳百度百科
  • 网站favicon图标替换百度小说网
  • wordpress调用网页沈阳seo排名外包
  • 友谊路街道网站建设企业管理培训课程视频
  • 青岛队建网站软件开发培训机构排名