2338. Minimum Consecutive Cards To Pick Up¶
Difficulty: Medium
LeetCode Problem View on GitHub
2338. Minimum Consecutive Cards to Pick Up
Medium
You are given an integer array cards where cards[i] represents the value of the ith card. A pair of cards are matching if the cards have the same value.
Return the minimum number of consecutive cards you have to pick up to have a pair of matching cards among the picked cards. If it is impossible to have matching cards, return -1.
Example 1:
Input: cards = [3,4,2,3,4,7] Output: 4 Explanation: We can pick up the cards [3,4,2,3] which contain a matching pair of cards with value 3. Note that picking up the cards [4,2,3,4] is also optimal.
Example 2:
Input: cards = [1,0,5,3] Output: -1 Explanation: There is no way to pick up a set of consecutive cards that contain a pair of matching cards.
Constraints:
1 <= cards.length <= 1050 <= cards[i] <= 106
Solution¶
class Solution {
public int minimumCardPickup(int[] cards) {
int n = cards.length;
int mini = Integer.MAX_VALUE;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
int current = cards[i];
if (map.containsKey(current)) {
mini = Math.min(mini, i - map.get(current) + 1);
map.put(current, i);
}
else {
map.put(current, i);
}
}
return mini == Integer.MAX_VALUE ? -1 : mini;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here