408算法题leetcode--第37天

devtools/2024/10/19 14:11:36/

1049. 最后一块石头的重量 II

题目地址:1049. 最后一块石头的重量 II - 力扣(LeetCode)

题解思路:01背包

时间复杂度:O(n*m)

空间复杂度:O(m)

代码:

class Solution {
public:int lastStoneWeightII(vector<int>& stones) {// 01背包,容量和价值一样,即目标是最大化使用容量// 如[abcd],抵消后可以为a+b+c-d,也可以是a+b-c-d,即一堆和-另一堆和的最小值// 第一堆 = sum - dp[sum/2],第二堆 = dp[sum / 2]// 接下来开始dp,转化为找dp[]的最大值// dp[]: 容量为j的背包的最大值// 转移:dp[j] = max(dp[j], dp[j - stones[i]] + stones[i])// 初始化:dp[i] = 0// 顺序:先种类,后重量vector<int>dp(15001, 0);int sum = 0;for(auto i : stones) sum += i;int target = sum / 2;int size = stones.size();for(int i = 0; i < size; i++){for(int j = target; j >= stones[i]; j--){dp[j] = max(dp[j], dp[j - stones[i]] + stones[i]);}}return sum - dp[target] - dp[target];}
};

416. 分割等和子集

题目地址:416. 分割等和子集 - 力扣(LeetCode)

题解思路:dp,01背包

时间复杂度:O(n^2)

空间复杂度:O(n)

代码:

class Solution {
public:bool canPartition(vector<int>& nums) {// 01背包,容量和价值一样,即目标是最大化使用容量// dp[]:容量为j的背包的最大价值// dp[i] = i,只要dp[sum / 2] = sum / 2就返回true// 初始化:dp[0] = 0// 顺序:种类,容量vector<int>dp(10001, 0);  // 200 * 100 / 2int sum = 0;for(auto i : nums) sum += i;int size = nums.size();for(int i = 0; i < size; i++){for(int j = sum / 2; j >= nums[i]; j--){dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);}}return dp[sum / 2] * 2 == sum;  // 可以前面提前判断,如果sum为奇数,返回false}
};

http://www.ppmy.cn/devtools/127029.html

相关文章

Java基于SSM微信小程序物流仓库管理系统设计与实现(源码+lw+数据库+讲解等)

选题背景 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

JS中Array的常用方法

文章目录 1. 创建和初始化数组2. 添加和删除元素3. 查找元素4. 遍历数组5. 数组转换6. 排序和反转7. 其他方法 JavaScript 中的 Array 对象提供了许多常用的方法&#xff0c;这些方法可以帮助你更方便地操作数组。以下是一些常用的 Array 方法及其用法&#xff1a; 1. 创建和…

【学术会议-6】激发灵感-计算机科学与技术学术会议邀您参与,共享学术盛宴,塑造明天的科技梦想!

【学术会议-6】激发灵感-计算机科学与技术学术会议邀您参与&#xff0c;共享学术盛宴&#xff0c;塑造明天的科技梦想&#xff01; 【学术会议-6】激发灵感-计算机科学与技术学术会议邀您参与&#xff0c;共享学术盛宴&#xff0c;塑造明天的科技梦想&#xff01; 文章目录 【…

Llama3-Factory模型部署新手指南

一、介绍 为了保持其公司在人工智能开源大模型领域的地位&#xff0c;社交巨头Meta推出了旗下最新开源模型。当地时间4月18日&#xff0c;Meta在官网上宣布公布了旗下最新大模型Llama 3。目前&#xff0c;Llama 3已经开放了80亿&#xff08;8B&#xff09;和700亿&#xff08;…

量子计算机的原理与物理实现

量子计算机的原理与物理实现很复杂 指导性原则 首先思考制备一台量子计算机需要些什么&#xff1f; 需要量子比特——二能级量子系统。除了量子计算机需要满足一些物理特性&#xff0c;它还必须要把量子比特绘制到某种初态上&#xff0c;以及测量系统的输出态。 而实验上的挑战…

面试22222

好的&#xff0c;我会逐步解释这些面试问题&#xff0c;并给出一些应答建议。我们先从第一个问题开始&#xff1a; 1. 介绍一下你的学术背景和工作经验&#xff0c;以及为什么对生物信息学感兴趣。 回答思路&#xff1a; 首先简单概述你的学术背景&#xff0c;比如你的专业、…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——7.list(无习题)

C 中的 list 容器详细总结 1. 什么是 list&#xff1f; list文档 list 是 C 标准模板库 (STL) 中的一种容器类型&#xff0c;采用双向链表的数据结构来存储数据。双向链表意味着每个节点包含一个数据元素和两个指针&#xff0c;分别指向前一个和后一个节点。list 适用于需要…

后台管理员登录实现--系统篇

我的小系统后台原来就有一个上传图片的功能还夹带个删除图片的功能&#xff0c;还嵌到了一个菜单里面。之前效果如下 那么现在为了加大安全力度&#xff0c;想增加一个登录页面。通过登录再到这个页面。看着貌似很简单&#xff0c;但是听我细细说来&#xff0c;要新增些什么东西…