【遍历】【数组】【2023-10-23】
2678. 老人的数目
找出乘客中年龄严格大于 60
的人数。
本题比较简单,直接遍历字符串数组,判断每一个字符串的第 11
位字符和第 12
字符组成的数字是否大于 60
,如是将更新老人的数目 cnt += 1
。
实现代码
class Solution {
public:
int countSeniors(vector<string>& details) {
int cnt = 0;
for (auto& s : details) {
cnt += (s[11] - '0') * 10 + s[12] - '0' > 60;
}
return cnt;
}
};
复杂度分析
时间复杂度: O ( n ) O(n) O(n), n n n 为数组 details
的长度。
空间复杂度: O ( 1 ) O(1) O(1)。
class Solution:
def countSeniors(self, details: List[str]) -> int:
return sum(int(s[11:13]) > 60 for s in details)
简单解释一下上述代码,s[11:13]
表示字符串 s
的第 11
位到第 12
位的字符串。int
负责将 s[11:13]
强转成数值类型。后面的 for s in details
是 python 语言特有的列表表达式,sum
用来求和。
如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 。
如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。
最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 哦。