华为笔试 20230927
1. 最大优惠
给定一个购买商品的价格序列,以及优惠规则,让你求出最大优惠是多少。
我一开始以为一个商品优惠完就不能再优惠了,结果不是。最后卡在了95%。
2. 多项式计算
给定两个多项式系数序列,计算两个多项式+,-,*之后的结果。
+-很简单,*的话,我使用两层for循环计算对应幂前的系数的。碰到了corner case是输出[]。AC了
3. 最大货物运输量
给定卡车载荷,货物重量和辅助工具(忘了叫啥名了)对应的数值。卡车载不动货物,可以用辅助工具增大载荷。最后要求最多运走多少货物。我直觉上预设了一个没有证明一定work的假设,就是优先用小卡车来运,这也是下面算法得sort的原因。设运走货物为count
1. sort(卡车) 和 sort(货物)
2. 遍历卡车和货物,如果卡车i>货物j就{count+1, 卡车i-(INT32_MAX),货物j+(INT32_MAX)},这样表示j被i运走,后续的遍历不会受i和j影响
3. sort(卡车)和sort(货物),因为第2步可能改变了部分卡车和货物的数值
4. 遍历卡车和货物,如果卡车i+辅助工具>货物j就{count+1, 卡车i-(INT32_MAX),货物j+(INT32_MAX)}
最后通过了95%的case
给定一个购买商品的价格序列,以及优惠规则,让你求出最大优惠是多少。
我一开始以为一个商品优惠完就不能再优惠了,结果不是。最后卡在了95%。
2. 多项式计算
给定两个多项式系数序列,计算两个多项式+,-,*之后的结果。
+-很简单,*的话,我使用两层for循环计算对应幂前的系数的。碰到了corner case是输出[]。AC了
3. 最大货物运输量
给定卡车载荷,货物重量和辅助工具(忘了叫啥名了)对应的数值。卡车载不动货物,可以用辅助工具增大载荷。最后要求最多运走多少货物。我直觉上预设了一个没有证明一定work的假设,就是优先用小卡车来运,这也是下面算法得sort的原因。设运走货物为count
1. sort(卡车) 和 sort(货物)
2. 遍历卡车和货物,如果卡车i>货物j就{count+1, 卡车i-(INT32_MAX),货物j+(INT32_MAX)},这样表示j被i运走,后续的遍历不会受i和j影响
3. sort(卡车)和sort(货物),因为第2步可能改变了部分卡车和货物的数值
4. 遍历卡车和货物,如果卡车i+辅助工具>货物j就{count+1, 卡车i-(INT32_MAX),货物j+(INT32_MAX)}
最后通过了95%的case
全部评论
第二题输入咋搞,卡在输入了
相关推荐