Leetcode 2960 统计已测试设备

63 阅读1分钟

给你一个长度为 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;
    }
}