You are given the logs for users' actions on LeetCode, and an integer k. The logs are represented by a 2D integer array logs where each logs[i] = [IDi, timei] indicates that the user with IDi performed an action at the minute timei.
Multiple users can perform actions simultaneously, and a single user can perform multiple actions in the same minute.
The user active minutes (UAM) for a given user is defined as the number of unique minutes in which the user performed an action on LeetCode. A minute can only be counted once, even if multiple actions occur during it.
You are to calculate a 1-indexed array answer of size k such that, for each j (1 <= j <= k), answer[j] is the number of users whose UAM equals j.
Return the array answer as described above.
Example 1:
Input: logs = [[0,5],[1,2],[0,2],[0,5],[1,3]], k = 5 Output: [0,2,0,0,0] Explanation: The user with ID=0 performed actions at minutes 5, 2, and 5 again. Hence, they have a UAM of 2 (minute 5 is only counted once). The user with ID=1 performed actions at minutes 2 and 3. Hence, they have a UAM of 2. Since both users have a UAM of 2, answer[2] is 2, and the remaining answer[j] values are 0.
Example 2:
Input: logs = [[1,1],[2,2],[2,3]], k = 4 Output: [1,1,0,0] Explanation: The user with ID=1 performed a single action at minute 1. Hence, they have a UAM of 1. The user with ID=2 performed actions at minutes 2 and 3. Hence, they have a UAM of 2. There is one user with a UAM of 1 and one with a UAM of 2. Hence, answer[1] = 1, answer[2] = 1, and the remaining values are 0.
Constraints:
1 <= logs.length <= 1040 <= IDi <= 1091 <= timei <= 105k is in the range [The maximum UAM for a user, 105].This approach utilizes a HashMap to keep track of each user's unique active minutes.
Steps:
k to store the number of users with a specific count of unique active minutes.This Python solution uses a defaultdict of sets to track unique minutes for each user.
It iterates over the logs and populates the set with unique minutes for each user. Then it fills the result array based on the unique minute counts.
C++
Java
C#
JavaScript
Time Complexity: O(n), where n is the number of elements in logs. Each log entry is processed once.
Space Complexity: O(m), where m is the number of distinct user ID and minute pairs.
This approach performs two separate passes over the logs data.
Steps:
In this two-pass Python solution, the set collects unique minute logs in the first pass, and the result tally is compiled in a separate pass.
C++
Java
C#
JavaScript
Time Complexity: O(n), where n is the number of log entries.
Space Complexity: O(m), accommodating unique user-minute entries.
| Approach | Complexity |
|---|---|
| Approach 1: HashMap to Track Unique Minutes | Time Complexity: O(n), where n is the number of elements in logs. Each log entry is processed once. Space Complexity: O(m), where m is the number of distinct user ID and minute pairs. |
| Approach 2: Two-Pass Calculation | Time Complexity: O(n), where n is the number of log entries. Space Complexity: O(m), accommodating unique user-minute entries. |
How to EASILY solve LeetCode problems • NeetCode • 427,716 views views
Watch 9 more video solutions →Practice Finding the Users Active Minutes with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor