|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zltzlt 于 2019-11-14 22:56 编辑
今天的题目:
小凯手中有无数个两种面值的金币,现在他想购买价格为 price 的商品,问小凯手中的金币是否能够刚好凑成商品的价钱(既不多也不少)?
说明:面值、商品价格均为正整数。
示例 1:
输入:a = 3,b = 7,price = 11
输出:False
解释:3 和 7 无法刚好凑成 11。
示例 2:
输入:a = 6,b = 5,price = 32
输出:True
解释:32 = 6 * 2 + 5 * 4
 欢迎大家一起答题! 
本帖最后由 阴阳神万物主 于 2019-11-14 22:53 编辑
如果说我 5#提的问,都不存在的话,那么我这个成立,并且时间复杂度为 O(1+(price%max(a,b)))
- def solve(a:int,b:int,price:int)->bool:
- big = max(a,b)
- small = min(a,b)
- temp = divmod(price,big)
- price = temp[1]
- for i in range(temp[0]+1):
- #print('调试',price)
- if not(price % small):
- return True
- price += big
- return False
- if __name__ == '__main__':
- print('示例1 False 输出:',solve(3,7,11))
- print('示例2 True 输出:',solve(6,5,32))
复制代码
|
|