给你一个长度为 n 、下标从 0 开始的整数数组 batteryPercentages ,表示 n 个设备的电池百分比。
你的任务是按照顺序测试每个设备 i,执行以下测试操作:
- 如果
batteryPercentages[i]大于0:
增加已测试设备的计数。
将下标在[i + 1, n - 1] 的所有设备的电池百分比减少 1,确保它们的电池百分比 不会低于0 ,即 batteryPercentages[j] = max(0, batteryPercentages[j] - 1)。移动到下一个设备。
否则,移动到下一个设备而不执行任何测试。</li>
返回一个整数,表示按顺序执行测试操作后 已测试设备 的数量。
分析:本题相对比较简单,只需要维护一个已经测试的设备变量。
流程分析
1. 设置一个变量count用于记录已经检测的设备数
2. 执行循环,该循环主要用于遍历数组
- 因为没有一个检测设备,后边的设备都要-已检测设备的数目,因此在这里进行判断,如果减去count后依然结果大于0,那么检测设备+1
- 否则跳出循环
3返回设备数
class Solution {
public int countTestedDevices(int[] batteryPercentages) {
int count = 0; //已经测试的设备数
for (int i = 0; i < batteryPercentages.length; i++) {
if(batteryPercentages[i] - count > 0)
count++;
else
continue;
}
return count;
}
}