class Solution {
public:
vector<int> findingUsersActiveMinutes(vector<vector<int>>& logs, int k) {
vector<int> answer(k,0);
sort(logs.begin(),logs.end());
int i = logs[0][0],j = logs[0][1];
int sum = 1;
for(int l = 1;l < logs.size();l++)
{
if(logs[l][0] == i && logs[l][1] != j) {
sum++;
j = logs[l][1];
}
else if(logs[l][0] != i) {
answer[sum-1]++;
i = logs[l][0];
j = logs[l][1];
sum = 1;
}
}
answer[sum-1]++;
return answer;
}
};
时间复杂度O(N),N为二维数组的行数。
空间复杂度O(k),k为活跃时间的长度。
该篇博客介绍了一个C++解决方案,用于计算给定活动日志中每个用户活跃的分钟数。算法首先对日志进行排序,然后遍历日志,通过维护当前活跃时间段的起始和结束时间,统计每个活跃时间长度,并将其存储在一个结果数组中。时间复杂度为O(N),空间复杂度为O(k)。
482

被折叠的 条评论
为什么被折叠?



