题目

给你一个下标从 0 开始的二维整数数组 brackets ,其中 brackets[i] = [upperi, percenti] ,表示第 i 个税级的上限是 upperi ,征收的税率为 percenti 。税级按上限 从低到高排序(在满足 0 < i < brackets.length 的前提下,upperi-1 < upperi)。

税款计算方式如下:

不超过 upper0 的收入按税率 percent0 缴纳
接着 upper1 - upper0 的部分按税率 percent1 缴纳
然后 upper2 - upper1 的部分按税率 percent2 缴纳
以此类推
给你一个整数 income 表示你的总收入。返回你需要缴纳的税款总额。与标准答案误差不超 10-5 的结果将被视作正确答案。

示例

输入:brackets = [[3,50],[7,10],[12,25]], income = 10
输出:2.65000
解释:
前 $3 的税率为 50% 。需要支付税款 $3 * 50% = $1.50 。
接下来 $7 - $3 = $4 的税率为 10% 。需要支付税款 $4 * 10% = $0.40 。
最后 $10 - $7 = $3 的税率为 25% 。需要支付税款 $3 * 25% = $0.75 。
需要支付的税款总计 $1.50 + $0.40 + $0.75 = $2.65 。

输入:brackets = [[1,0],[4,25],[5,50]], income = 2
输出:0.25000
解释:
前 $1 的税率为 0% 。需要支付税款 $1 * 0% = $0 。
剩下 $1 的税率为 25% 。需要支付税款 $1 * 25% = $0.25 。
需要支付的税款总计 $0 + $0.25 = $0.25 。

输入:brackets = [[2,50]], income = 0
输出:0.00000
解释:
没有收入,无需纳税,需要支付的税款总计 $0 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/calculate-amount-paid-in-taxes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:模拟

Java实现
class Solution {public double calculateTax(int[][] brackets, int income) {double res = 0;int pre0 = 0, pre1 = 0;for (int[] bracket : brackets) {if (income > bracket[0]) {res += (double)(bracket[0] - pre0) * bracket[1] * 0.01;} else {res += (double)(income - pre0) * bracket[1] * 0.01;break;}pre0 = bracket[0];pre1 = bracket[1];}return res;}
}

力扣 2303. 计算应缴税款总额相关推荐

  1. 2303. 计算应缴税款总额

    2303. 计算应缴税款总额 给你一个下标从 0 开始的二维整数数组 brackets ,其中 brackets[i] = [upperi, percenti] ,表示第 i 个税级的上限是 uppe ...

  2. Python描述 LeetCode 5259. 计算应缴税款总额

    Python描述 LeetCode 5259. 计算应缴税款总额   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前 ...

  3. 算法第一天力扣---2651. 计算列车到站时间

    1.题目要求: 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数. 返回列车实际到站的时间. 注意,该问题中 ...

  4. 力扣——315. 计算右侧小于当前元素的个数

    目录 问题描述 问题分析 问题描述 问题分析 本题采用分治思想进行处理,单独处理较长数组算法复杂度过大,先拆分为短对象进行处理,最后将结果进行合并. 针对拆分出来的较短数组的处理: class Sol ...

  5. 力扣刷题记录-动态规划问题总结

    百度百科里对于动态规划问题是这样解释的: 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.因此各个阶段 ...

  6. 力扣解题——求根到叶子节点数字之和

    难度:中等 题目:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到 ...

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

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

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

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

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

    目录 第1题:字典序排数 第2题:字符串解码 第3题:查找常用字符 第4题:所有奇数长度子数组的和 第5题:长按键入 第6题:分割字符串的最大得分 第7题:回文链表 第8题:有多少小于当前数字的数字 ...

最新文章

  1. 有赞融资10亿港元 腾讯领投加紧布局产业互联网
  2. Java范例集锦(一)
  3. oracle SQL not in null,单列,复合列
  4. 红帽linux6.0安装教程,第 14 章 引导安装程序
  5. php 实现两变量值对换,php两个变量的值交换的方法
  6. 原文:我的数据库学习“曲线”
  7. python二分法查找时间点_python有序查找算法:二分法
  8. php strpos无效,簡單的PHP strpos功能不起作用,為什么?
  9. 面试题-java基本数据类型和运算符
  10. 核能版“水变油”登上Nature!谷歌7000万押注,MIT参与,被评争风加水汽车
  11. CentOS 7 + Win 双系统的安装遇到的重要问题
  12. C语言向文件写入学生信息并读取显示出来
  13. SpringMVC文件上传下载实战(单文件、多文件)
  14. excel函数公式大全
  15. linux安装xbox无线手柄,win10系统如何连接xbox360无线手柄
  16. 高等数学学习笔记——第八十九讲——高斯公式
  17. 计算机表演赛所选赛区,第十六届全国中小学学生计算机表演赛邢台赛区评选结果.doc...
  18. Mockito使用详解
  19. iOS配置证书:Provisioning profile xx_Distribution doesn't include signing certificate iPhone Developer
  20. 有感无刷电机正反转电流差别大

热门文章

  1. window系统 node.js安装 (node-v14安装配置、node-v16及其他版本安装配置)
  2. 【线性代数】矩阵的基本概念和运算性质
  3. 关于pip install numpy
  4. 10004 函数模板
  5. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载
  6. idea 将分支代码合并到master分支
  7. idea 启动页图片更新2022.1以及2021
  8. 医疗器械标准目录 第二部分专业技术领域(1)
  9. C语言,一个分号引发的问题:Run-Time Check Failure #2 - Stack around the variable ‘class1‘ was corrupted.
  10. GT-S7500 显示存储卡满解决办法