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

网站开发与开发网站建设方案策划书ppt模板

网站开发与开发,网站建设方案策划书ppt模板,wordpress 侧边悬浮框,网络营销推广的主要形式为题意理解#xff1a; 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - #xff0c;然后串联起所有整数#xff0c;可以构造一个 表达式 #xff1a; 例如#xff0c;nums [2, 1] #xff0c;可以在 2 之前添加 #xff0c;在 1 之前添… 题意理解         给你一个非负整数数组 nums 和一个整数 target 。         向数组中的每个整数前添加  或 - 然后串联起所有整数可以构造一个 表达式  例如nums [2, 1] 可以在 2 之前添加  在 1 之前添加 - 然后串联起来得到表达式 2-1 。         返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。                  简单来说就是在元素前面加‘’或‘-’使其结果值为target。         可以将其思路转换为将数组元素分为两部分其差为target。         则有part1-part2targetpart1part2sum         part1(sumtarget)/2                  固有我们需要将数组元素分为两部分一部分较大的为part1(sumtarget)/2,较小的部分为part2(sum-target)/2。         此时我们再次转变思路将其构造成0-1背包问题         背包大小为m(sumtarget)/2         物品为[0,n]的元素其价值和重量都是nums[]         接下来使用动态规划中的0-1背包思路解决问题。 解题思路       首先理解题意将其转换为一个背包问题使用动态规划的思路来求解。          动态规划五部曲         1dp[i][j]或dp[i]的含义         2递推公式         3根据题意初始化         4遍历求解:先遍历包还是先遍历物品         5打印——debug 1.动态规划二维dp数组 dp[i][j]表示[0,i]的元素装满大小为j的背包有多少种方法。递推公式dp[i][j]dp[i-1][j]dp[i-1][j-nums[i]]​​​​​​​​​​​​​ 当当前物品大于当前背包的大小时放满大小为j的背包的方法数仍就为dp[i-1][j].当当前物品小于等于当前背包的大小时放满大小为j的背包的方法数dp[i-1][j]dp[i-1][j-nums[i]]其中dp[i-1][j-nums[i]]是增加了物品nums[i]后增加的方法数。​​​​​​​​​​​​​初始化初始化第一列其中特别的放满背包大小0 有多少种方法——要么什么也不放要么放入大小为0的物品。初始化时要根据问题具体分析。遍历由于二维数组保留了两个维度所有值所以先便利包还是先遍历物品都可以 public int findTargetSumWays(int[] nums, int target) {int sum0;for(int num:nums){sumnum;}//是否能按照需求分成两部分if((sumtarget)%2!0) return 0;if((sum-target)%2!0) return 0;//把所有值当作整数分成两部分一正一负即可所以如果target总保持为正数if(target0) target-target;int size (int)Math.ceil((float)(sumtarget)/2);int dp[][]new int[nums.length][size1];//初始化for(int[] temp:dp) Arrays.fill(temp,0);int countZero0;for(int i0;inums.length;i){if(nums[i]0) countZero;dp[i][0]countZero1;}for(int j1;jsize;j){if(nums[0]j) dp[0][j]1;else dp[0][j]0;}//遍历顺序for(int i1;i nums.length;i){for(int j0;jsize;j){if(jnums[i]){dp[i][j]dp[i-1][j];}else{dp[i][j]dp[i-1][j]dp[i-1][j - nums[i]];}}}return dp[nums.length-1][size];} 2.一维滚动数组——存储压缩 dp[j]表示装满大小为j的背包有多少种方式。递推公式dp[j]max(dp[j],dp[j-weight[i]]values[i])初始化右边的值总是由最左边的值推导而来,dp[0]表示使背包价值为0有多少种放置方法——要么什么也不放要么放大小为0的物品。遍历由于以为滚动数组是二维dp数组的动态行滚动更新所以遍历顺序总是先物品后背包。注意为了防止用同层修改过的值修改本行其他值导致物体重复放置故采用倒序遍历背包。 public int findTargetSumWays(int[] nums, int target) {int sum0;for(int num:nums) sumnum;if((sumtarget)%2!0) return 0;if((sum-target)%2!0) return 0;if(target0) target-target;int size (int)Math.ceil((float)(sumtarget)/2);int dp[]new int[size1];//初始化Arrays.fill(dp,0);dp[0]1;//遍历顺序for(int i0;i nums.length;i){for(int jsize;jnums[i];j--){dp[j] dp[j - nums[i]];}}return dp[size];} 3.分析 时间复杂度O() 空间复杂度         二维O(n*size)         一维O(size)
http://www.hkea.cn/news/14376084/

相关文章:

  • 政协系统网站建设服务器上发布网站
  • 网站开发需求收集广告发布是什么意思
  • 怎么做外贸企业网站wordpress get_categories depth
  • 企业网站优化方案手机连接wordpress
  • 国外刺绣图案设计网站360°网站标签旋转显示特效
  • 湖北建站管理系统信息网站建设详细需求说明书
  • 代加工网站有哪些珠海网站建设专业设计
  • 陕西省建设资质是哪个网站拓者设计吧首页
  • 网络营销的定义与特点北京债务优化公司
  • 谁家网站做的好wordpress二级分类别名重名
  • 物流怎么弄网站wordpress相册幻灯片
  • 网站编程学习镇江网站建设和优化推广多少钱
  • 网站前台模块包括什么软件wordpress简约高端企业通用产品
  • php企业网站开发教程关于建立企业网站的方案内容
  • 网站优化建设广州家具设计师常去的网站
  • 下关汇做网站的公司徐州便民信息网
  • 怎么做才能设计出好的网站网络服务器忙
  • 电子商务网站对比分析海豚一键做淘宝网站
  • 泉州做网站公司科技资讯网站有哪些
  • org域名网站宁波做网站皆选蓉胜网络
  • 一个网站的开发周期物流运输 有哪些网站可以做推广
  • 购买域名后怎么建网站网站公司必须帮备案
  • 如何做专题网站海建网站
  • 网站用html做框架asp做主页seo案例分享
  • 中小企业网站制作过程中要注意什么国外网站在国内备案
  • 盐城市建设局网站设计备案资料漫画app软件定制开发
  • 不懂外贸做外贸网站好做吗网站导航栏条源码
  • wordpress 网站备案号基于html5的旅游网站的设计
  • 考生登录贵州省住房和城乡建设厅网站建筑网片产品资料
  • 网站收录查询站长工具锦州网站建设排行榜