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

leetcode:416.分割等和子集【01背包】【动态规划】

学习要点

  1. 灵活使用背包思想
  2. 进一步理解动态规划

题目链接

        416. 分割等和子集 - 力扣(LeetCode)

题目描述

        

解法:动态规划


class Solution {
public:bool canPartition(vector<int>& nums) {int n = nums.size();int sum = accumulate(nums.begin(),nums.end(),0);if( sum % 2 != 0)return false;int avg = sum / 2; //背包最大容量vector<vector<int>> dp(n,vector<int>(avg+1));for(int i = 0; i<= avg; i++){if(i >= nums[0]){dp[0][i] = nums[0];}}for(int i =1;i<=n-1;i++){for(int j =1;j<=avg;j++){if(nums[i] > j){dp[i][j] = dp[i-1][j];}else{dp[i][j] = max(dp[i-1][j],dp[i-1][j-nums[i]] + nums[i]);}}}return dp[n-1][avg] == avg;}
};
http://www.dtcms.com/a/264995.html

相关文章:

  • 光照解耦和重照明
  • 接口测试用例设计
  • Shader Graph学习——屏幕uv采样
  • 智能学号抽取系统 V3.7.5 —— 一个基于 Vue.js 的交互式网页应用
  • Arduino CH552 PWM的使用
  • 项目开发基本流程
  • 深入理解Unicode:字符编码的终极指南
  • RGB下的色彩变换:用线性代数解构色彩世界
  • vue3 JavaScript localeCompare 比较两个字符串 localeCompare is not a function
  • 如何将文件从 iPhone 传输到 Android(新指南)
  • Spring Boot 集成 GeoTools 详解
  • 昇腾机器节点磁盘状态检查与问题处理方法
  • 智能攻击原理和架构
  • 深入Flink核心概念:解锁大数据流处理的奥秘
  • vue-36(为组件编写单元测试:属性、事件和方法)
  • 【Linux】Rocky Linux 安装教程
  • vscode基本使用
  • armv8汇编码分析
  • QGIS+CesiumIon
  • 多模态进化论:GPT-5V图文推理能力在工业质检中的颠覆性应用
  • 媲美 GPT-4o,Kontext 实现高效文本驱动图像编辑
  • vscode、openocd 使用
  • Excel 如何让数据自动按要求排序或筛选?
  • Learning PostgresSQL读书笔记: 第16章 Configuration and Monitoring
  • PostgreSQL大表创建分区实战
  • Arduino CH552 ADC的使用
  • NumPy 或 PyTorch/TensorFlow 中的张量理解
  • Servlet开发流程(包含IntelliJ IDEA项目添加Tomcat依赖的详细教程)
  • 【论文阅读】DeepEyes: Incentivizing “Thinking with Images” via Reinforcement Learning
  • 【新手小白的嵌入式学习之路】-STM32的学习_GPIO 8种模式学习心得