2019vivo秋招提前批笔试题第3题(代码片段)

changan223 changan223     2022-12-16     491

关键词:

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

技术图片

虽然知道要用动态规划做,但我一直就不太懂动态规划。笔试完又花了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))

美团2019秋招后台开发编程题题解(代码片段)

图的遍历题目描述给定一张包含N个点、N-1条边的无向连通图,节点从1到N编号,每条边的长度均为1。假设你从1号节点出发并打算遍历所有节点,那么总路程至少是多少?输入第一行包含一个整数N,1≤N≤105。接下来N-1行,每行... 查看详情

阿里巴巴2021秋招笔试题20210806(代码片段)

源代码:https://gitee.com/shentuzhigang/mini-project/tree/master/exam-alibaba/exam-alibaba-20210806第一题题目描述大概定义了一年mmm个月,一个月ddd天,一周www天已知mmm,ddd,www求第kkk年,第jjj月 查看详情

1.虎牙直播2019秋招编程题(代码片段)

第一题: #include<iostream>#include<string>usingnamespacestd;boolIsVoChar(charc)return(c==‘a‘)||(c==‘e‘)||(c==‘o‘)||(c==‘i‘)||(c==‘u‘)||(c==‘A‘)||(c==‘E‘)||(c==‘O‘)||(c==‘I‘)||(c==‘U‘); 查看详情

秋招之路-链表面试题集合

[图]program2019-07-24前言链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。这里总结常见的... 查看详情

第一阶段测试题(代码片段)

第1题题目:解答:第2题题目:解答:解答:第3题题目:解答:第4题题目:解答:第5题题目:指出软连接和硬链接的不同之处(至少四处)解答:软链接就相当于Windows下的快捷方式,删掉源文件,快捷方式就失效了,软链接就... 查看详情

网易2017秋招笔试题3:最长公共子括号序列长度

【问题来源】网传的2017网易秋招笔试题【问题描述】 【算法思路】 下面的解题思路摘自 http://www.cnblogs.com/Atanisi/p/7500186.html刚看到题我就想到暴力解,深搜出所有合法的括号序列,再依次比较公共子序列的长度,返... 查看详情

数据挖掘2022年2023届秋招kanaries雾角科技算法岗笔试题(代码片段)

Kanaries雾角科技算法岗位笔试笔试时间:2022年10月13号时长:120分钟几乎是刷过的算法题,最后一题是难度题,其他都是中等题目。1、LeetCode2038.如果相邻两个颜色均相同则删除当前颜色(1)题目总共有n个... 查看详情

2022年java秋招面试,程序员求职必看的dubbo面试题(代码片段)

...,企业工作过的,都可参考学习!小编分享的这份2022年Java秋招备战面试题总计有1000多道面试题,包含了MyBatis、ZooKeeper、 查看详情

携程2019校招编程题(代码片段)

携程今年的机试题为20道选择+3编程由于今天最后提交时第三题编程未通过,交卷之后想出来的解法这里记录一下。importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;//携程3publicclassLRUpublicstaticvoidmain(String[]args)Scannersc=newScanner( 查看详情

腾讯2018年9月秋招前端笔试题--编程题

varreadline=require(‘readline‘);constrl=readline.createInterface({input:process.stdin,output:process.stdout});constlines=[];rl.on(‘line‘,function(line){lines.push(line);constarr=lines.map((item)=>{ 查看详情

阿里巴巴2021秋招笔试题20211119(代码片段)

源代码:https://gitee.com/shentuzhigang/algorithm/tree/master/exam-alibaba/exam-alibaba-20211119第一题题目大意:有长度为n的数组a有k次机会在连续长度不超过m的区间每个元素+1使得数组全部元素变成偶数importjava.util.LinkedList;importjava.util... 查看详情

数据挖掘2022年2023届秋招奇虎360机器学习算法工程师笔试题(代码片段)

公司:奇虎360岗位:机器学习算法工程师笔试时间:2022年10月9号1选择题1、E(X2)E(X^2)E(X2)的计算PX=1=2/3,PX=0=1/6,PX=-1=1/6解析:E(X2)=12∗2/3+02∗1/6+(−1)2∗1/6=2/3+1/6& 查看详情

数据挖掘2020奇安信秋招算法方向试卷3笔试题解析(代码片段)

来自牛客网:【2020】奇安信秋招算法方向试卷31、设计一个判别表达式中左,右括号是否配对出现的算法,采用____数据结构最佳答案:栈2、对于有n个结点的二叉树,其高度为()答案:未知,可以随意变换高... 查看详情

网易互联网笔试(3.27)(代码片段)

网易互联网笔试(3.27)网易互联网3.27日笔试,四道笔试题一道简答题,四道笔试题AK,简答题考察设计模式不会。第一道题模拟使用单体技能和群体技能攻击怪物的场景、第二题字符串处理、第三题构造具有限制条件的完全二... 查看详情

京东笔试——秋招笔试题(代码片段)

#include<iostream>#include<cstdio>#include<algorithm>#include<set>usingnamespacestd;/*题解: a^b=c^d, 底数相等的情况: 1)底数为1,即1^b=1^d的情况:n*n 2)底数不为1,即a^b=a^b的情况:(n-1)*n 底数不相等的情况: 拆成(i 查看详情

《面经分享》2021字节跳动秋招提前批面经(含详细答案!!!)(代码片段)

文章目录1.一面1.1自我介绍1.2项目经历1.3算法题1.4进程和线程的区别?1.5你了解哪些锁?1.6死锁的四个必要条件?1.7volatie与sychronized的对比?1.8volatie的应用场景?1.9虚拟内存了解吗?与物理内存的区别࿱... 查看详情

2019秋招。

OFFER情况中国银联内推提前批offer32wC++开发VIPKID提前批offer2314C++开发上海八院八部offer18wC++开发百度内推提前批offer1714.6C++开发汇顶科技offer1416C++开发华为西安2012提前批offer1714~16数据库开发浙江大华of... 查看详情

2019秋招。

OFFER情况中国银联内推提前批offer32wC++开发VIPKID提前批offer2314C++开发上海八院八部offer18wC++开发百度内推提前批offer1714.6C++开发汇顶科技offer1416C++开发华为西安2012提前批offer1714~16数据库开发浙江大华offer1215C++开发远景能源offer1816+1W... 查看详情