分组类型的优惠算法思路

思路背景:商品绑定优惠分组满足一定条件后即可参与优惠,查出最优解。
首先考虑商品如何分组才能获得最优解。
解法1:
即商品能够满足省钱最多的优惠组中既定为一个最优方案。

1. 获取所有该时段有效的优惠分组记录;
2. 将商品分发到能够满足优惠的分组中;
3. 计算优惠分组中的数据,算出该分组是否享有优惠方案,该方案省了多少钱;
4. 针对分组省的钱数由多到少进行排序;
5. 从分数最多的那个分组中找到所有商品的key值(商品id+sku码),去跟其他分组的相对应内容进行并集的累加操作,如果操作结果的元素集个数小于两个集合的元素个数和,说明该优惠组中有商品跟之前的分组有商品重合,则去掉省钱较少的分组的该商品,重新计算分组;
6. 在合成所有满足条件的分组后,将所有分组按照满足条件从低到高的顺序排序;
7. 遍历分组,将不满足条件的分组中的重复商品去掉,规则同上;

解法2(待测试):
利用临界资源的思想,导出所有符合逻辑的解,逐一计算并比较;
1. 获取所有该时段有效的优惠分组记录;
2. 将商品分发到能够满足优惠的分组中;
3. 遍历所有满足条件的分组设置一个以商品id+sku为key的分组数组,去掉元素数为1的商品元素,意味着该数组中只存在有重复分组的商品;
4. 遍历商品数组,重组一个商品在各个可能性中的key值,并运算出其省钱结果;
保留省钱结果最优解;
5. 将结果满足的商品id重新编好数组,余下的分组再按照条件由低到高排序;
6. 未满足条件的分组进行商品去重的操作;

以上两种解法均未考虑一件商品同时存在于多个优惠组的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值