字节笔试——优惠券

考的时候没有ac,只有0.2,继续努力吧
题目没有找到,凭记忆复述一下吧

题目描述

有n张优惠券,用来买m个商品,只要优惠券面值不大于商品价值就可以用,用完不收回,求购买这些商品所花的最少钱数。

输入输出描述

第一行是两个数n,m,表示优惠券数和商品数
第二行有n个数,表示优惠券面值
第三行有m个数,表示商品价值
(均不保证按大小排序)
输出一行,一个数,你最少所花钱数

示例1

输入:

3 4
50 100 200
99 199 200 300

输出

248

考试时写的版本:

#coding=utf-8
import sys
if __name__ == "__main__":
    # 读取数据
    line = sys.stdin.readline().strip()
    values= list(map(int,line.split()))
    n ,m = values
    line = sys.stdin.readline().strip()
    a= list(map(int,line.split()))
    line = sys.stdin.readline().strip()
    b= list(map(int,line.split()))
    
	result = 0
    a.sort(reverse=True)
    b.sort(reverse=True)
    i = 0
    for j in b:
        if j < a[i]:
            if i < len(a)-1:
                i = i + 1
            else:
                result = result+ j
                continue
        result = result + j - a[i]
    print(result)    

两个排序,并不知道为什么没ac,或许是result类型不对???换成float呢???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值