class Solution {
public:
double calculateTax(vector<vector<int>>& brackets, int income) {
double ans = 0;
for(int i = brackets.size() - 1; i > 0; --i){
auto &vec = brackets[i];
auto &vec1 = brackets[i - 1];
// 当income不在这个区间时直接跳过
if(vec[0] > income && vec1[0] > income){
continue;
}
// 中间的差值
int diff = income - vec1[0];
// 这部分差值所应该交的税,这里是实际值的100倍
ans += (diff * vec[1]);
// 当前剩余未计算的income
income = vec1[0];
}
// 计算最小的范围,应交的税,这里是实际值的100倍
ans += (income * brackets[0][1]);
// 计算实际税
ans /= 100;
return ans;
}
};
01-23
98
12-17