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

vps网站访问不了游戏推广群

vps网站访问不了,游戏推广群,pc网站建设有什么功能,如何做网站建设方案第九章 动态规划part04● 01背包问题#xff0c;你该了解这些#xff01; ● 01背包问题#xff0c;你该了解这些#xff01; 滚动数组 ● 416. 分割等和子集 正式开始背包问题#xff0c;背包问题还是挺难的#xff0c;虽然大家可能看了很多背包问题模板代码#xf…第九章 动态规划part04● 01背包问题你该了解这些 ● 01背包问题你该了解这些 滚动数组 ● 416. 分割等和子集 正式开始背包问题背包问题还是挺难的虽然大家可能看了很多背包问题模板代码感觉挺简单但基本理解的都不够深入。 如果是直接从来没听过背包问题可以先看文字讲解慢慢了解 这是干什么的。如果做过背包类问题可以先看视频很多内容是自己平时没有考虑到位的。 背包问题力扣上没有原题大家先了解理论今天就安排一道具体题目。 详细布置 01背包问题 二维 https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 视频讲解https://www.bilibili.com/video/BV1cg411g7Y6 01背包问题 一维 https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-2.html 视频讲解https://www.bilibili.com/video/BV1BU4y177kY 416. 分割等和子集 本题是 01背包的应用类题目 https://programmercarl.com/0416.%E5%88%86%E5%89%B2%E7%AD%89%E5%92%8C%E5%AD%90%E9%9B%86.html 视频讲解https://www.bilibili.com/video/BV1rt4y1N7jEday41 01背包 方法一:二维数组 import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int bagweight sc.nextInt();int[] weight new int[n];int[] value new int[n];for(int i 0; i n; i){weight[i] sc.nextInt();}for(int i 0; in; i){value[i] sc.nextInt();}//dp[i][j]表示0~i的物品放在容量j的背包的最大价值int[][] dp new int[n][bagweight 1];//初始化,dp[i][j]来自dp[i - 1][j]和dp[i - 1][j - weight[i]],所以初始化第1行和第1列for(int j weight[0] ; j bagweight; j){dp[0][j] value[0];}for(int i 1; i n; i){//对于二维数组,先遍历物品还是背包容量都可以,因为都来自正上方和左上方for(int j 1; j bagweight; j){if(j weight[i]) dp[i][j] dp[i - 1][j];else dp[i][j] Math.max(dp[i - 1][j], dp[i - 1][j - weight[i]] value[i]);//注意可以更新压缩成一维数组,dp[i][j]都是由dp[i-1][j或者j-weight[i]]得来的}}System.out.println(dp[n - 1][bagweight]);}} 方法二:一维数组 //把[i]这个维度压缩了,滚动数组的时候从后往前遍历,因为每个数据都是需要上一行正上的数据和上一行左边的数据,在同一行操作的时候如果优先改了左边的数据,右边的数据更新会被影响import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int bagweight sc.nextInt();int[] weight new int[n];int[] value new int[n];for(int i 0; i n; i){weight[i] sc.nextInt();}for(int i 0; in; i){value[i] sc.nextInt();}int[] dp new int[bagweight 1];for(int j weight[0] ; j bagweight; j){dp[j] value[0];}for(int i 1; i n; i){for(int j bagweight; j weight[i]; j--){//if(j weight[i]) dp[j] dp[j];//判断多余了//else ​​​​​​​                dp[j] Math.max(dp[j], dp[j - weight[i]] value[i]);}}System.out.println(dp[bagweight]);}} 分割等和子集 //相当于weight[i]和value[i]相同的bagweight sum/2的01背包问题class Solution {public boolean canPartition(int[] nums) {if(nums null || nums.length 0) return false;int n nums.length;int sum 0;for(int num : nums) {sum num;}if(sum % 2 ! 0) return false;int target sum / 2;int[] dp new int[target 1];for(int i 0; i n; i) {for(int j target; j nums[i]; j--) {//物品 i 的重量是 nums[i]价值也是 nums[i]dp[j] Math.max(dp[j], dp[j - nums[i]] nums[i]);}//剪枝一下每一次完成內層的for-loop立即檢查是否dp[target] target優化時間複雜度26ms - 20ms//不用遍历完i,出现满足题意的装满的背包直接返回就行//为什么一定会在dp[target]处出现满足题意的背包,dp[target]有可能不正好是target,而是更大或者更小跳过正好是target的情况吗?//不可能,一个空间就是一个价值,target装满了最大就是target,只有可能是装满/不装满这两种情况,所以就是求最大价值的背包if(dp[target] target)return true;}return dp[target] target;}} 感谢大佬分享: 代码随想录-算法训练营day41【动态规划0401背包问题-滚动数组、分割等和子集】_分隔等和子集 [1,5,11,5] 背包 滚动数组-CSDN博客
http://www.hkea.cn/news/14534123/

相关文章:

  • 桂林生活网分类信息网站微信企业网站 源码
  • 阿里网站建设方案书阿里邮箱
  • 自己做网赌网站邢台做网站服务
  • 建水网站开发汕头响应式网站
  • 保定网站建设求职简历网页设计制作网站代码
  • 网站建设对电子商务的意义手机网站建设教程视频教程
  • 才做的网站怎么搜不到花市小说网站那里进
  • 石家庄建站模板源码专业微信网站建设公司首选公司
  • 怎么给网站上传附件名师工作室建设网站
  • 网站推广优化排名辽宁网站建设墨子
  • 管理网站建设公司好吗哈尔滨模板自助建站
  • 家用电脑做网站教程中国企业100强名单
  • 商标注册网站官网订做网站和app
  • 户外网站做假网站的域名
  • 营销型网站建设标准门户网站建设探究
  • 相城做网站的公司怎样建设电影网站
  • 内网网站建设所需硬件设备口碑营销中容易出现哪些问题
  • 上海交通大学网站建设与管理3网络营销经典失败案例
  • 公司网站开发费用如何做账云南做网站
  • 商业招商网站wordpress视频主题吾爱破解
  • 网站被主流搜索引擎收录的网页数量是多少单机游戏
  • 关于网站的建设论文中国机械加工制造网
  • 大红门做网站的公司中企动力是国企还是私企
  • 建站网络建立科技开发网站 留言板 制作
  • 那些网站可以做团购宁波seo推广优化怎么做
  • 广州市网站设计dede织梦仿站网站建设
  • 公司网站开发完成后怎么办wordpress框架是什么意思
  • 冶金建设网站开课啦wordpress主题下载
  • 创建自己网站的步骤石家庄最好的网站建设公司哪家好
  • 安卓盒子做网站网站设计可以吗