lintcode 125 · 背包问题(二)

news/2024/10/17 21:28:54/

描述

有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值.

问最多能装入背包的总价值是多大?

  1. A[i], V[i], n, m 均为整数
  2. 你不能将物品进行切分
  3. 你所挑选的要装入背包的物品的总大小不能超过 m
  4. 每个物品只能取一次
  5. m <= 1000m<=1000\

len(A),len(V)<=100len(A),len(V)<=100

样例

样例 1:

输入:

 
m = 10
A = [2, 3, 5, 7]
V = [1, 5, 2, 4]

输出:

 
9

解释:

装入 A[1] 和 A[3] 可以得到最大价值, V[1] + V[3] = 9

样例 2:

输入:

 
m = 10
A = [2, 3, 8]
V = [2, 5, 8]

输出:

 
10

解释:

装入 A[0] 和 A[2] 可以得到最大价值, V[0] + V[2] = 10

挑战

O(nm) 空间复杂度可以通过, 你能把空间复杂度优化为O(m)吗?

class Solution {
public:/*** @param m: An integer m denotes the size of a backpack* @param a: Given n items with size A[i]* @param v: Given n items with value V[i]* @return: The maximum value*/int backPackII(int m, vector<int> &a, vector<int> &v) {// write your code hereint n=a.size();vector<vector<int>>temp(n+1,vector<int>(m+1,0));for(int i=1;i<n+1;i++){for(int j=1;j<m+1;j++){temp[i][j]=a[i-1]>j ? temp[i-1][j] : max(temp[i-1][j],temp[i-1][j-a[i-1]]+v[i-1]);}}return temp[n][m];}
};

动态规划


http://www.ppmy.cn/news/787.html

相关文章

大数据 | Hadoop、Hive、Spark的关系

文章总括图 数据存储 单机数据库时代 所有数据在单机都能存的下&#xff0c;数据处理的任务都是IO密集型&#xff0c;更谈不上分布式系统 一个典型的2U服务器可以插6块硬盘&#xff0c;每块硬盘4T&#xff0c;共24T原始容量&#xff0c;再加上一些数据包的可用冗余&#xf…

1.2 无监督学习和强化学习

1.2 无监督学习和强化学习无监督学习定义无监督学习与监督学习的区别相关概念流程图强化学习无监督学习 定义 无监督学习 (Unsupervised Learning&#xff09;是指从无标注数据中学习预测模型的机器学习问题&#xff0c;其本质是学习数据中的统计规律或潜在结构。 无监督学习…

unity---Mesh网格编程(六)

目录 1.模型切割 2.代码 1.模型切割 如图&#xff0c;对3D模型的Mesh网格进行切割&#xff0c;会经过若干个三角面。而切割后&#xff0c;将会产生新的面来组成左右两边的物体。 要记录每个顶点与顶点下标&#xff0c;新的面要顺时针绘制&#xff0c; 2.代码 using System.…

云服务连续三年增长150%,网宿科技开拓新赛道

摘要&#xff1a;开拓云服务市场&#xff0c;网宿科技的打法。 提到网宿科技&#xff0c;很多人还停留在传统IT服务商的印象中。其实&#xff0c;网宿科技已经在一条新赛道加速前行&#xff0c;这就是云服务。 “借助亚马逊云科技的持续赋能&#xff0c;网宿科技积累了丰富的云…

【数据结构趣味多】时间复杂度和空间复杂度

算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间&#xff0c; 在计…

React基础

文章目录1.简介1.1 react与vue1.1.1 相同点1.1.2 不同点1.1.3 函数式组件的特点&#xff08;什么是函数式组件&#xff09;a.幂等b.无副作用用&#xff1a;1.1.4 虚拟dom的作用1.1.5 vue当中template与render的关系&#xff1a;1.2 MVC、MVVM、MVP模式1.2.1 MVC1.2.2 MVVM1.2.3…

MySQL介绍与安装(超详细)

数据库介绍 数据库(database)简称DB&#xff0c;实际上就是一个文件集合&#xff0c;是一个存储数据的仓库&#xff0c;本质就是一个文件系统&#xff0c;数据库是按照特定的格式把数据存储起来&#xff0c;用户可以对存储的数据进行增删改查等操作。 数据库存储数据特点 ●…

Java处理数据成为树状结构

如题所示&#xff0c;项目中需要将部分数据处理成为树状结构&#xff0c;实现过程如下&#xff1a; 注&#xff1a;也可以使用sql达到该目的&#xff0c;但此处数据不多&#xff0c;故在代码中处理&#xff0c;主要是sql处理不是很会 // 获取需要封装的数据List<Data> d…