题目
给你一个长度为
n
、下标从 0 开始的整数数组batteryPercentages
,表示n
个设备的电池百分比。你的任务是按照顺序测试每个设备
i
,执行以下测试操作:
- 如果
batteryPercentages[i]
大于0
:
- 增加 已测试设备的计数。
- 将下标在
[i + 1, n - 1]
的所有设备的电池百分比减少1
,确保它们的电池百分比 不会低于0
,即batteryPercentages[j] = max(0, batteryPercentages[j] - 1)
。- 移动到下一个设备。
- 否则,移动到下一个设备而不执行任何测试。
返回一个整数,表示按顺序执行测试操作后 已测试设备 的数量。
解题思路
- 遍历整个循环,根据当前设备的电池百分比来修改后续设备的电池量,并统计小号设备的数量。
代码展示
class Solution { public int countTestedDevices(int[] batteryPercentages) { int n = batteryPercentages.length; int ans = 0; for(int i = 0; i < n; i++){ if(batteryPercentages[i] > 0){ ans++; for(int j = i + 1; j < n; j++){ if(batteryPercentages[j] > 0){ batteryPercentages[j]--; } } } } return ans; } }