笔试算法题-day10

题目:给定n件商品,用于上货架,现在你可以根据顾客到来的顺序设置商品摆放顺序,用户取走某一个位置的商品之后,该商品位置之后的商品都无法再被顾客选择,求解最大销售件数?
样例:输入:n=3,s=abc,c=abc,也即商品类别为abc三种,用户0要购买a,用户1购买b,这个时候不能直接摆成abc,因为a被选中后,a的位置就空出来了,导致用户1和用户2无法选择,最优排序为cba,输出3
解题思路:直接一把排序,用c中对应商品的位置进行排序,具体步骤如下:
第一步:商品去重构建列表;
第二步:用c对s排序,注意这里排序有两个限制(用户购买的重合商品的数量,用户购买商品顺序的逆序)
s.sort(key=lambda x:(c.count(x),-1*c.index(x)))
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-22 11:33
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 14:22
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务