笔试算法题-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)))
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务