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

做视频素材网站万源网站建设

做视频素材网站,万源网站建设,市文联网站建设,seo领导屋题目链接:416. 分割等和子集 题目描述 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释&#x…

题目链接:416. 分割等和子集

题目描述

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

示例 1:

输入:nums = [1,5,11,5]
输出:true
解释:数组可以分割成 [1, 5, 5] 和 [11] 。

示例 2:

输入:nums = [1,2,3,5]
输出:false
解释:数组不能分割成两个元素和相等的子集。

提示:

  • 1 <= nums.length <= 200
  • 1 <= nums[i] <= 100

文章讲解:代码随想录

视频讲解:动态规划之背包问题,这个包能装满吗?| LeetCode:416.分割等和子集_哔哩哔哩_bilibili

题解1:回溯法(超时)

思路:使用回溯法遍历数组中每个元素是否加入到第1组中,其他元素加入到第二组,遍历所有情况看看相不相等。

/*** @param {number[]} nums* @return {boolean}*/
var canPartition = function(nums) {const path = new Array(nums.length);const backtracking = function (start) {for (let i = start; i < nums.length; i++) {path[i] = true;let sum1 = sum2 = 0;nums.forEach((num, index) => path[index] ? sum1 += num : sum2 += num);if (sum1 === sum2 || backtracking(i + 1)) {return true;}path[i] = false;}return false;};return backtracking(0);
};

分析:时间复杂度为 O(n * 2 ^ n),空间复杂度为 O(n)。

题解2:动态规划

思路:取数组元素和的一半,记为 target。以 target 为背包容量,数组的元素作为物品质量和价值,每个元素只能取1次,若能装满背包,则说明可以分割。这是一个01背包问题。

动态规划分析:

  • dp 数组以及下标的含义:dp[j] 代表容量为 j 的背包最多能装下多少价值的物品。
  • 递推公式:dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i])。
  • dp 数组初始化:全部初始化成0。
  • 遍历顺序:先遍历物品,再倒序遍历背包。
  • 打印 dp 数组:输入为 [1,5,11,5] 时,dp 数组为 [ 0, 1, 1, 1, 1, 5, 6, 6, 6, 6, 10, 11 ]。
/*** @param {number[]} nums* @return {boolean}*/
var canPartition = function(nums) {const target = nums.reduce((a, b) => a + b) / 2; // 背包容量为数组元素和的一半if (Math.floor(target) !== target) {return false;}const dp = new Array(target + 1).fill(0);for (let i = 0; i < nums.length; i++) {for (let j = target; j >= nums[i]; j--) {dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]);}}return dp[target] === target; // 装满背包则返回 true
};

分析:时间复杂度为 O(n²),空间复杂度为 O(n)。

收获

练习动态规划法求解01背包问题。

http://www.hyszgw.com/news/46464.html

相关文章:

  • 商城网站建设要多少钱网站建设验收合格确认书
  • 设计网站设计如何策划网络事件营销
  • swf做网站头深圳住房与建设网站
  • 定制网站制作服务商网站开发的安全性主要考虑哪些
  • 制作网站哪家强设计接单
  • 筋郑州做网站行业网站域名选择
  • 交互设计网站案例seo托管
  • 做网站时的电话图标佛山外贸网站建设平台
  • wordpress网站图片加速谁有可以用的网站
  • 个人网站备案简介怎么写大连哪家装修公司最好
  • 网站开发分销系统兰州网站推广公司
  • 网站所需的主要功能wordpress浮窗音乐
  • asp.net网站开发实战企网站的互联网
  • 官方微网站吗设置wordpress静态主页
  • 可信网站网件路由器密码
  • 网站友情链接要加什么海南seo快速排名优化多少钱
  • 网站设计的难点kesion系统做网站教程
  • 如何自己建立网站广告设计要学哪些软件
  • 中国的网站域名是什么意思wordpress的官网
  • 网站软件推荐wordpress 对空间要求
  • 网站建设企业排行铜川网站开发
  • 网站快速收录入口做网站公司怎么做
  • 做网站优化如何遍文章电商seo优化是什么意思
  • 网站建设swot市场分析营销型网站建设极速建站
  • 国外设计网站pinterest极速版民房做酒店出租网站app
  • 思途旅游网站建设2021年4月重大新闻事件摘抄
  • 自己动手建设网站网站做任务领q币
  • 朋友要我帮忙做网站电子商务网站建设的规划书
  • 技术支持::天空网络-临汾做网站西部数码网站管理助手serv-u默认密码
  • 网站接入服务提供商没有公司可以做网站吗