class Solution {
public:
int countTestedDevices(vector<int>& batteryPercentages) {
}
};
100143. 统计已测试设备
给你一个长度为 n
、下标从 0 开始的整数数组 batteryPercentages
,表示 n
个设备的电池百分比。
你的任务是按照顺序测试每个设备 i
,执行以下测试操作:
batteryPercentages[i]
大于 0
:
[i + 1, n - 1]
的所有设备的电池百分比减少 1
,确保它们的电池百分比 不会低于 0
,即 batteryPercentages[j] = max(0, batteryPercentages[j] - 1)
。返回一个整数,表示按顺序执行测试操作后 已测试设备 的数量。
示例 1:
输入:batteryPercentages = [1,1,2,1,3] 输出:3 解释:按顺序从设备 0 开始执行测试操作: 在设备 0 上,batteryPercentages[0] > 0 ,现在有 1 个已测试设备,batteryPercentages 变为 [1,0,1,0,2] 。 在设备 1 上,batteryPercentages[1] == 0 ,移动到下一个设备而不进行测试。 在设备 2 上,batteryPercentages[2] > 0 ,现在有 2 个已测试设备,batteryPercentages 变为 [1,0,1,0,1] 。 在设备 3 上,batteryPercentages[3] == 0 ,移动到下一个设备而不进行测试。 在设备 4 上,batteryPercentages[4] > 0 ,现在有 3 个已测试设备,batteryPercentages 保持不变。 因此,答案是 3 。
示例 2:
输入:batteryPercentages = [0,1,2] 输出:2 解释:按顺序从设备 0 开始执行测试操作: 在设备 0 上,batteryPercentages[0] == 0 ,移动到下一个设备而不进行测试。 在设备 1 上,batteryPercentages[1] > 0 ,现在有 1 个已测试设备,batteryPercentages 变为 [0,1,1] 。 在设备 2 上,batteryPercentages[2] > 0 ,现在有 2 个已测试设备,batteryPercentages 保持不变。 因此,答案是 2 。
提示:
1 <= n == batteryPercentages.length <= 100
0 <= batteryPercentages[i] <= 100
原站题解
rust 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2024-05-10 09:37:17
impl Solution { pub fn count_tested_devices(battery_percentages: Vec<i32>) -> i32 { let mut dec = 0; for &x in &battery_percentages { if x > dec { dec += 1; } } dec } }
javascript 解法, 执行用时: 52 ms, 内存消耗: 50.6 MB, 提交时间: 2024-05-10 09:36:00
/** * @param {number[]} batteryPercentages * @return {number} */ var countTestedDevices = function(batteryPercentages) { let dec = 0; for ( const p of batteryPercentages ) { if ( p > dec ) dec++; } return dec; };
php 解法, 执行用时: 17 ms, 内存消耗: 20 MB, 提交时间: 2024-05-10 09:34:13
class Solution { /** * @param Integer[] $batteryPercentages * @return Integer */ function countTestedDevices($batteryPercentages) { $dec = 0; foreach ( $batteryPercentages as $b ) { $dec += intval($b > $dec); } return $dec; } }
golang 解法, 执行用时: 4 ms, 内存消耗: 2.6 MB, 提交时间: 2023-12-11 00:28:06
func countTestedDevices(batteryPercentages []int) int { dec := 0 for _, x := range batteryPercentages { if x > dec { dec++ } } return dec }
cpp 解法, 执行用时: 0 ms, 内存消耗: 17.5 MB, 提交时间: 2023-12-11 00:27:53
class Solution { public: int countTestedDevices(vector<int> &batteryPercentages) { int dec = 0; for (int x : batteryPercentages) { dec += x > dec; } return dec; } };
java 解法, 执行用时: 0 ms, 内存消耗: 42.1 MB, 提交时间: 2023-12-11 00:27:41
class Solution { public int countTestedDevices(int[] batteryPercentages) { int dec = 0; for (int x : batteryPercentages) { if (x > dec) { dec++; } } return dec; } }
python3 解法, 执行用时: 40 ms, 内存消耗: 16 MB, 提交时间: 2023-12-11 00:27:27
class Solution: def countTestedDevices(self, batteryPercentages: List[int]) -> int: dec = 0 for x in batteryPercentages: if x > dec: dec += 1 return dec