笔试算法题-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)))
全部评论
相关推荐
水中水之下水道的鼠鼠:团子吧,我看同学待到八点半拿完餐补走人,挺惬意的
点赞 评论 收藏
分享
05-30 00:12
江西服装学院 Java 头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享