题目传送门:2960. 统计已测试设备 - 力扣(LeetCode)
题解
题目描述讲得很复杂,实际上是给定一个数列,从前向后遍历,只要当前数字大于零,就会让其后的所有数字都减1,统计遍历过程中有多少数大于零。
只要读懂题目意思,按要求来完成就好。用ans记录遍历过程中大于零数字的个数,同时ans也代表着后面的数字要被减几次。例如,在遍历到当前位置是ans为3,那么说明在这个数之前有3个大于零的数,那么当前数字应该被减3次,所以我们看当前数字减ans的值是否大于0来判断。
参考代码
class Solution {
public:
int countTestedDevices(vector<int>& batteryPercentages) {
int ans=0;
for(int i=0;i<batteryPercentages.size();i++)
{
if(batteryPercentages[i]-ans>0)
{
ans++;
}
}
return ans;
}
};