文章目录

  • 6061. 买钢笔和铅笔的方案数
  • 解题思路:
    • 第一步,光买钢笔有几种方案
    • 第二步,买钢笔后,剩下的钱能购买多少铅笔
    • 第三步,在买钢笔的几种方案下,剩下的钱购买铅笔有几种方案
    • 第四步,将所有方案相加
  • 代码整合:

6061. 买钢笔和铅笔的方案数

给你一个整数 total ,表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 ,分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱,去买任意数目的两种笔。

请你返回购买钢笔和铅笔的 不同方案数目 。

示例 1:

输入:total = 20, cost1 = 10, cost2 = 5
输出:9
解释:一支钢笔的价格为 10 ,一支铅笔的价格为 5 。

  • 如果你买 0 支钢笔,那么你可以买 0 ,1 ,2 ,3 或者 4 支铅笔。
  • 如果你买 1 支钢笔,那么你可以买 0 ,1 或者 2 支铅笔。
  • 如果你买 2 支钢笔,那么你没法买任何铅笔。 所以买钢笔和铅笔的总方案数为 5 + 3 + 1 = 9 种。

示例 2:

输入:total = 5, cost1 = 10, cost2 = 10
输出:1
解释:钢笔和铅笔的价格都为 10,都比拥有的钱数多,所以你没法购买任何文具。所以只有 1 种方案:买 0 支钢笔和 0 支铅笔。

提示:

1 <= total, cost1, cost2 <= 106

来源:力扣

解题思路:

第一步,光买钢笔有几种方案

 a = int(total/cost1)+1

因为0只钢笔也算一种方案,所以加一

第二步,买钢笔后,剩下的钱能购买多少铅笔

int((total-cost1*n)/cost2)

第三步,在买钢笔的几种方案下,剩下的钱购买铅笔有几种方案

for n in range(a):int((total-cost1*n)/cost2)+1

第四步,将所有方案相加

b = 0
for n in range(a):b += int((total-cost1*n)/cost2)+1

代码整合:

class Solution(object):def waysToBuyPensPencils(self, total, cost1, cost2):""":type total: int:type cost1: int:type cost2: int:rtype: int"""a = int(total/cost1)+1b = 0for n in range(a):b += int((total-cost1*n)/cost2)+1return b

力扣LeetCode刷题心得之Python 买钢笔和铅笔的方案数相关推荐

  1. 力扣LeetCode刷题心得之Python 找到最接近 0 的数字

    文章目录 6060. 找到最接近 0 的数字 解题思路: 第一步,求出每个数到0的距离 第二步,最小距离的索引值 第三步,距离0最近的数字 第四步,返回较大值 代码整合: 优化后: 6060. 找到最 ...

  2. Leetcode-How-What 力扣Leetcode刷题指南

    Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...

  3. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  4. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  5. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  6. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  7. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

  8. 力扣(LeetCode)刷题,简单+中等题(第30期)

    目录 第1题:单词规律 第2题:找不同 第3题:在排序数组中查找元素的第一个和最后一个位置 第4题:使用最小花费爬楼梯 第5题:寻找峰值 第6题:字符串中的第一个唯一字符 第7题:两个数组的交集 II ...

  9. 力扣(LeetCode)刷题,简单+中等题(第29期)

    目录 第1题:分割数组为连续子序列 第2题:翻转矩阵后的得分 第3题:寻找旋转排序数组中的最小值 第4题:乘积最大子数组 第5题:不同路径 第6题:判断路径是否相交 第7题:摆动序列 第8题:单调递增 ...

最新文章

  1. TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)
  2. 添加用户和赋予root权限
  3. GitHub之深入解析脚本·自定义与修改GitHub来更好地为特定的工作流程工作
  4. (转)百度文库浏览器分析及实现(续)
  5. java细粒度锁_Java细粒度锁实现的3种方式
  6. java的迭代器类中有哪些类_java中的集合类 以及 迭代器
  7. 使用Jedis连接远程服务器的redis
  8. python模块之 paramiko(转载)
  9. Python 模块学习
  10. 智慧零售erp通用版管理系统+门店管理+商品管理+厂商管理+财务管理+销售管理+仓储管理+Axure高保真交互ERP通用版零售行业web端简易版管理系统
  11. angularjs绑定属性_AngularJS隔离范围属性绑定教程
  12. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.4 存储...
  13. 软件基本功:出错了就问别人,大哥你是不是开发人员?
  14. 小心你的Schedule task
  15. 计算机硬盘除了c盘其他全不见了,电脑除了c盘其他盘都不见了
  16. 爬取百度文库内容(Selenium+BeautifulSoup)
  17. 使用手机+ardinuo+esp01做的网络时钟
  18. 微创脑科学上市破发:公司市值143亿港元 微创医疗是大股东
  19. ios中嵌套h5做的app,长按图片默认会有放大效果;如何禁止
  20. 数组的push、unshift、pop、shift方法实现

热门文章

  1. 八戒转世投胎竟然是Java设计模式:桥接模式
  2. 动态获取本地json文件,渲染为表格-前端html+css+javascript,nth-child选择器,实时浏览插件,vscode,ajax
  3. “新制造”怎么新?阿里说要把云计算和人工智能加到其中
  4. 米家扫地机器人是石头代工_米家/石头10款扫地机器人如何选,一文看懂
  5. 管理类书籍的一些感悟
  6. C3P0整体类结构简单分析
  7. ELK 收集 Nginx 日志
  8. markdown编辑器中去除图片水印以及自定义水印样式
  9. 使用电脑模拟微信内置浏览器
  10. 谈谈自己对Spring中IOC和AOP的理解