笔试算法题-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)))
样例:输入: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)))
全部评论
相关推荐
02-10 10:40
National University of Singapore 产品经理 点赞 评论 收藏
分享
点赞 评论 收藏
分享
02-14 12:07
广东文理职业学院 人力资源专员/助理 点赞 评论 收藏
分享
点赞 评论 收藏
分享