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

长春电商网站建设公司电话企业推广是什么职业

长春电商网站建设公司电话,企业推广是什么职业,大型网站开发语言排名,珠海婚恋网站建设市场分析文章目录题目描述思路 代码1. 动态规划 O(nc) 、O(nc)2. 结合滚动数组 O(nc)、O(c)二刷打卡第十四天#xff5e;熬夜也得把题目补上 题目描述 初看题目#xff0c;想到的思路是用记忆化DFS来找结果来着。。看了题解才知道是背包问题 思路 代码 1… 文章目录题目描述思路 代码1. 动态规划 O(nc) 、O(nc)2. 结合滚动数组 O(nc)、O(c)二刷打卡第十四天熬夜也得把题目补上 题目描述 初看题目想到的思路是用记忆化DFS来找结果来着。。看了题解才知道是背包问题 思路 代码 1. 动态规划 O(nc) 、O(nc) 参考了liweiwei的这篇题解里面给背包问题讲了一些相关知识时空复杂度 n 是 nums 的长度c 是 sum 的长度。dp[i][j]从[0, i]下标组成的数集里选取元素相加能否构成 j 。状态转移方程【[0, i - 1] 可以构成 j】| 【[0, i - 1] 可以构成 j - nums[i]】满足任一种情况都可以保证 dp[i][j] true因此这里采用 | class Solution {public boolean canPartition(int[] nums) {// 题意转化找到一个集合满足其和等于 nums 总和的一半 sum / 2int sum 0;for(int num : nums) {sum num;}// 奇数肯定无法满足 sum / 2if(sum % 2 1) {return false;}// [0 ~ i 范围的元素][背包容量(包括0)]int target sum / 2;boolean[][] dp new boolean[nums.length][target 1];// 1. 边界第一个元素只能满足对应的容量if(nums[0] target) {dp[0][nums[0]] true;}// 2. 状态转移for(int i 1; i nums.length; i) {for(int j 0; j target; j) {// part 1: 先把上一轮的结果继承下来再说dp[i][j] dp[i - 1][j];// part 2: 状态转移方程看[0, i - 1]能不能满足 j - nums[i]再补上 nums[j]if(nums[i] j) {dp[i][j] | dp[i - 1][j - nums[i]];}}}return dp[nums.length - 1][target];} }2. 结合滚动数组 O(nc)、O© 在1的基础上通过滚动数组来减少空间复杂度。在剑指Offer 47 礼物的最大值里也有用到这个方法。加入 if(dp[target]) 的判断实现剪枝效果可以打败98%这里为了看起来简洁就不加上了注意逆序是为了达到无后效性的效果。如果正序会导致后面的列用到的不是上一行的结果而是当前行的结果会导致出错可以画图理解一下或者看上面1提到的题解的解释 class Solution {public boolean canPartition(int[] nums) {// 题意转化找到一个集合满足其和等于 nums 总和的一半 sum / 2int sum 0;for(int num : nums) {sum num;}// 奇数肯定无法满足 sum / 2if(sum % 2 1) {return false;}// [0 ~ i 范围的元素][背包容量(包括0)]int target sum / 2;boolean[] dp new boolean[target 1];// 1. 边界第一个元素只能满足对应的容量if(nums[0] target) {dp[nums[0]] true;}// 2. 状态转移for(int i 1; i nums.length; i) {// 逆序达到无后效性的效果for(int j target; j 0; j--) {// part 1: 先把上一轮的结果继承下来再说滚动数组不用考虑// part 2: 状态转移方程看[0, i - 1]能不能满足 j - nums[i]再补上 nums[j]if(nums[i] j) {dp[j] | dp[j - nums[i]];}}}return dp[target];} }二刷 背包 你就说你选不选吧指元素 你要能 true 我肯定选啊 O(nc)、O(nc) class Solution {public boolean canPartition(int[] nums) {int sum 0;for(int num : nums) {sum num;}if((sum 1) 1) {return false;}// dp[i][j]从 [0, i] 的下标中能找到和为 j 的值int target sum / 2;boolean[][] dp new boolean[nums.length][target 1];if(nums[0] target) {dp[0][nums[0]] true;}for(int i 1; i nums.length; i) {for(int j 0; j target; j) {// 继承结果 当前可行dp[i][j] (dp[i - 1][j]) | (nums[i] j ? dp[i - 1][j - nums[i]] : false);}}return dp[nums.length - 1][target];} }滚动数组逆序降低空间复杂度 class Solution {public boolean canPartition(int[] nums) {int sum 0;for(int num : nums) {sum num;}if((sum 1) 1) {return false;}int target sum / 2;boolean[] dp new boolean[target 1];if(nums[0] target) {dp[nums[0]] true;}for(int i 1; i nums.length; i) {for(int j target; j 0; j--) {dp[j] | (nums[i] j ? dp[j - nums[i]] : false);}}return dp[target];} }
http://www.huolong8.cn/news/256427/

相关文章:

  • 基木鱼建站陕西省建设网三类人员证书打印
  • 小企业网站建设菌算如何建站
  • 衣联网和一起做网站 哪家强备案域名出售是否违法
  • 怎么在网站上建设投票统计做网站的公司重庆
  • 好的公司网站有什么用公司网站建设费怎么做账
  • 和一起做网店类似的网站游戏网页设计模板图片
  • wordpress双语言设置seo社区
  • 外贸常用的网站对海尔网站建设水平的评价
  • 最全的网站大全山东泰安是几线城市
  • 设计图片网站今天广西紧急通知最新
  • 企业网站注册三明seo培训
  • 浙江国有建设用地出让网站利用access数据库做网站
  • 视频网站开发是什么网站平台开发
  • 网页设计与网站建设教材wordpress电影分享
  • 郴州市网站建设科技wordpress的登录界面
  • 河南商丘网站网址域名解析
  • 教育网站制作哪专业吾爱源码
  • 游戏网站用户建设需求昌大建设始建于哪个地区
  • 宿州市住房和城乡建设局网站新闻式软文经典案例
  • 做外贸兼职的网站有哪些网站备案 有什么用
  • 连接国外网站做端口映射怎么购买域名自己做网站
  • 东莞做网站系统wordpress私聊
  • 天津体验网站哈尔滨网站域名归那里管
  • 上海建网站手机app装修公司网络营销怎么做
  • 免费做视频网站怎么创个网站
  • 申请建设网站的报告邢台建一个网站多少钱
  • 网站app建设免费虚拟主机购买
  • 手机网站底部悬浮菜单wordpress demo data
  • 装修门户网站程序 cms域名大全免费看
  • 网页设计基础介绍北京seo关键词排名优化软件