列表

详情


100143. 统计已测试设备

给你一个长度为 n 、下标从 0 开始的整数数组 batteryPercentages ,表示 n 个设备的电池百分比。

你的任务是按照顺序测试每个设备 i,执行以下测试操作:

返回一个整数,表示按顺序执行测试操作后 已测试设备 的数量。

 

示例 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 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int countTestedDevices(vector<int>& batteryPercentages) { } };

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

上一题