LeetCode-2960. 统计已测试设备【数组 模拟】

LeetCode-2960. 统计已测试设备【数组 模拟】

题目描述:

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

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

如果 batteryPercentagesi 大于 0:

增加 已测试设备的计数。

将下标在 i + 1, n - 1 的所有设备的电池百分比减少 1,确保它们的电池百分比 不会低于 0 ,即 batteryPercentagesj = max(0, batteryPercentagesj - 1)。

移动到下一个设备。

否则,移动到下一个设备而不执行任何测试。

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

示例 1:

输入:batteryPercentages = 1,1,2,1,3

输出:3

解释:按顺序从设备 0 开始执行测试操作:

在设备 0 上,batteryPercentages0 > 0 ,现在有 1 个已测试设备,batteryPercentages 变为 1,0,1,0,2

在设备 1 上,batteryPercentages1 == 0 ,移动到下一个设备而不进行测试。

在设备 2 上,batteryPercentages2 > 0 ,现在有 2 个已测试设备,batteryPercentages 变为 1,0,1,0,1

在设备 3 上,batteryPercentages3 == 0 ,移动到下一个设备而不进行测试。

在设备 4 上,batteryPercentages4 > 0 ,现在有 3 个已测试设备,batteryPercentages 保持不变。

因此,答案是 3 。

示例 2:

输入:batteryPercentages = 0,1,2

输出:2

解释:按顺序从设备 0 开始执行测试操作:

在设备 0 上,batteryPercentages0 == 0 ,移动到下一个设备而不进行测试。

在设备 1 上,batteryPercentages1 > 0 ,现在有 1 个已测试设备,batteryPercentages 变为 0,1,1

在设备 2 上,batteryPercentages2 > 0 ,现在有 2 个已测试设备,batteryPercentages 保持不变。

因此,答案是 2 。

提示:

1 <= n == batteryPercentages.length <= 100

0 <= batteryPercentagesi <= 100

解题思路一:模拟

python 复制代码
class Solution:
    def countTestedDevices(self, batteryPercentages: List[int]) -> int:
        ans = 0
        for i in range(len(batteryPercentages)):
            if batteryPercentages[i] > 0 and batteryPercentages[i] > ans:
                ans += 1
        return ans

时间复杂度:O(n)

空间复杂度:O(1)

解题思路二: 一次遍历,简洁写法

python 复制代码
class Solution:
    def countTestedDevices(self, batteryPercentages: List[int]) -> int:
        dec = 0
        for x in batteryPercentages:
            if x > dec:
                dec += 1
        return dec

时间复杂度:O(n)

空间复杂度:O(n)

解题思路三:0

python 复制代码

时间复杂度:O(n)

空间复杂度:O(n)


创作不易,观众老爷们请留步... 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑) 欢迎大家关注笔者,你的关注是我持续更博的最大动力

原创文章,转载告知,盗版必究




♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

相关推荐
带多刺的玫瑰1 小时前
Leecode#4刷题之寻找两个正序数组的中位数
java·前端·算法
土司大王2 小时前
LeetCode hot100——除了自身以外数组的乘积
数据结构·算法·leetcode
IvanCodes2 小时前
RAG 实战教程(三):向量数据库检索算法,KNN、IVF、HNSW 与 Faiss 实战
人工智能·算法·agent
阿无,2 小时前
布隆过滤器
java·算法·哈希算法
徒慕风流2 小时前
激光雷达回波信号滤波与时刻鉴别算法:原理、代码实现与仿真验证
python·算法·激光雷达
这料鬼有毒2 小时前
二刷hot100-70.爬楼梯
算法
CIO_Alliance3 小时前
AI算法系列(2)| 决策树与随机森林XGBoost:企业AI化转型中的树模型选型逻辑
大数据·人工智能·算法·决策树·系统集成·企业cio联盟·企业级ai化转型
ZC跨境爬虫3 小时前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
.道阻且长.3 小时前
10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数
算法·leetcode·职场和发展
学习中.........4 小时前
Karpathy nanoGPT 教程到底讲了什么
人工智能·算法·语言模型