笔试的时候没做出来,就顺手截图了。

虽然知道要用动态规划做,但我一直就不太懂动态规划。笔试完又花了2小时把它做出来了。也不知道性能怎么样,但还好做出来了。

def solution(n, toltal_money, until_price, until_hot):
# 二维数组,每一行代表0到total_money每一个数对应的解(解是一个数组,第0列是最高热度值,后面分别是凑成此热度的因子)
# 因为不允许重复采购同一个商品,所以需要标识一下凑成此热度值时已经购买的商品,方便后面的解用到时查看那些商品是已经购买了的。
price_hot = [[0 for a in range(n+1)] for k in range(toltal_money + 1)]
for i in range(toltal_money + 1):
j = 0
# 临时数组,保存的是二维数组的每一行的值(0到total_money的某些数值的解可能会有多个解法,
# 但我们需要找出热度值最高的哪一个,所以这里需要临时保存一下,在确定了最高热度值得时候再把这个解复制到二维数组中去)
temp = [0 for i in range(n+1)]
# 构造最优解
while j < n:
if (i - until_price[j]) >= 0:
# 判断是否重复买了商品,需要将上一个最高热度值得因子组成复制下来。
for x in range(1, n+1):
temp[x] = price_hot[i - until_price[j]][x]
# 如果新购买的这个商品没有在上一个解里被标示,则可以构成一个解
if temp[j+1] == 0:
last = price_hot[i - until_price[j]][0] + until_hot[j]
# 找出最优解
if temp[0] < last:
temp[0] = last
# 标识已购买得商品,这里我把商品得热度填进去做了标识,这样就可以在数组中直接看出最高热度的组成因子
# 当然把商品加个填进去做标识,甚至直接把它标为1也可以。
temp[j+1] = until_hot[j]
# 将临时存放得最优解放到二维数组里
for x in range(n + 1):
price_hot[i][x] = temp[x]
j += 1
return price_hot[total_money][0] n = 6
total_money = 1000
until_price = [200, 600, 100, 180, 300, 450]
until_hot = [6, 10, 3, 4, 5, 8] print("total_money=1000时的解:", solution(n, total_money, until_price, until_hot))

2019vivo秋招提前批笔试题第3题的更多相关文章

  1. 秋招提前批小结(CVTE一面挂、阿里三面挂)

    7月27日:CVTE一面 30分钟(挂) 1.自我介绍 2.有没有做过JavaWeb相关的项目?你觉得难点在哪里呢? 3.你这个博客系统有没有加权限系统?如果被拦截封包获取了账号密码怎么办?(没加,凉 ...

  2. 京东秋招提前批初试--java开发工程师

    1,自我介绍,学过的课程有哪些 2,介绍一下java的内存结构和内存模型(jvm和jmm) 3,对于NIO有没有了解?作用是什么?(基于通道和缓冲区的I/O方式,用的是DirectByteBuffer ...

  3. 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)

    前言 第一次网上笔试,被虐的很惨.一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练.下面是这次阿里笔试相关信息 笔试时间是,2015年8月23日,10:00——12:00 对于笔试题, ...

  4. C/C++笔试题(基础题)

    为了便于温故而知新,特于此整理 C/C++ 方面相关面试题.分享,共勉. (备注:各题的重要程度与先后顺序无关.不断更新中......欢迎补充) (1)分析下面程序的输出(* 与 -- 运算符优先级问 ...

  5. 【笔试必备】常见sql笔试题(30题)

    sql是测试从业者必备的技能之一,基本上也是笔试必考内容. 所以,不要让sql拖了后腿,有些测友一遇到多表关联查询就犯晕,甚至连单表的执行顺序都没搞懂,下面简单介绍下,顺便给一些题供大家练习. 单表执 ...

  6. 华为2018软件岗笔试题之第一题python求解分享

    闲来无事,突然看到博客园首页上有人写了篇了华为2018软件岗笔试题解题思路和源代码分享.看了下题目,感觉第一题能做出来,就想着用刚刚学的python试着写一下,花费的时间有点长~~,看来又好长时间没练 ...

  7. 2018春招-今日头条笔试题-第四题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) #-*- coding:utf-8 -*- class Magic: ''' a:用于存储数组a b:用于存储数组b num:用于 ...

  8. 2018春招-今日头条笔试题-第三题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval ...

  9. Linux运维必会的实战编程笔试题(19题)

    以下Linux运维笔试面试编程题,汇总整理自老男孩.马哥等培训机构,由运维派根据实战需求,略有调整: 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理 ...

随机推荐

  1. 洛谷P3258 [JLOI]2014松鼠的新家

    题目 树上差分 树上点差分,注意会出现路径端点多记录的情况,这时需要在最后输出的时候输出子树的差分数组的和-1,而不是在处理原数据的时候减1.并且a[n]不需要糖果,最后也减去就行. #include ...

  2. vuex实现登录状态的存储,未登录状态不允许浏览

    基础思路就是使用vuex状态管理来存储登录状态(其实就是存一个值,例如token),然后在路由跳转前进行登录状态的判断,可以使用vue-router的全局前置守卫beforeEach,也可以使用路由独 ...

  3. 第10组 Alpha冲刺(1/4)

    队名:凹凸曼 组长博客 作业博客 组员实践情况 童景霖 过去两天完成了哪些任务 文字/口头描述 学习Android studio和Java,基本了解APP前端的制作 完善项目APP原型 展示GitHu ...

  4. hotspot的Heap Memory和Native Memory

    JVM管理的内存可以总体划分为两部分:Heap Memory和Native Memory.前者供Java应用程序使用的:后者也称为C-Heap,是供JVM自身进程使用的.Native Memory没有 ...

  5. [1-2] Dependence-Aware Service Function Chain Design and Mapping

    文献名称:Dependence-Aware Service Function Chain Design and Mapping 文献类型(期刊.硕论.博论):会议:Globecom 发表年份:2017 ...

  6. adb server version (31) doesn't match this client (41); killing...

    1.有时候用adb工具去连接安卓设备,或者模拟器的时候,会提示adb server version(31) doesn’t match this client(41)这样的提示.如图 提示的字面意思就 ...

  7. EmuELEC系统的结构

    分区结构 在img写入后, 会产生两个分区EMUELEC: 用于启动的文件, 例如dtb文件等, 以及system.img & system.img.md5, EmuELEC的系统文件都在这个 ...

  8. Error-Javascript:错误:页面文档类型(DOCTYPE)未声明!

    ylbtech-Error-Javascript:错误:页面文档类型(DOCTYPE)未声明! 1.返回顶部 1. HTML1300: 进行了导航.文件: TransferNote.aspxHTML1 ...

  9. 运维笔记--ubuntu系统卸载指定版本的python

    1.卸载python3.5(指定相应的版本就可以,例:python2.7,下同) sudo apt-get remove --purge python3.5 2.完全卸载python3.5及其依赖软件 ...

  10. PHP计算思源字体宽度, 并把文字绘制到图片上

    2019-6-19 9:18:54 星期三 思源字体是一套开源的字体, 那字体宽度是多少呢? 测试场景, 将包含汉字, 数字, 大小写字符的一段文字写到图片中去, 但不能出现超出的情况,  这就要计算 ...