Skip to content

Instantly share code, notes, and snippets.

@tatsuyax25
Created April 8, 2025 17:49
Show Gist options
  • Save tatsuyax25/5241460cfbaf6f7ddff49729895f3955 to your computer and use it in GitHub Desktop.
Save tatsuyax25/5241460cfbaf6f7ddff49729895f3955 to your computer and use it in GitHub Desktop.
You are given an integer array nums. You need to ensure that the elements in the array are distinct. To achieve this, you can perform the following operation any number of times: Remove 3 elements from the beginning of the array. If the array has fe
/**
* Finds the minimum number of operations required to make all elements in the array distinct
* by removing groups of 3 elements from the start of the array.
*
* @param {number[]} nums - The input array of integers.
* @return {number} - The minimum number of operations required.
*/
var minimumOperations = function(nums) {
// Create an array to track the elements that have already appeared
let appeared = new Array(101); // This seems to assume the numbers are in the range [0, 100].
// Traverse the array from the last element to the first element
for (let i = nums.length - 1; i >= 0; i--) {
// Check if the current number has already appeared in the 'appeared' array
if (appeared.indexOf(nums[i]) > -1) {
// Calculate the minimum operations to remove duplicates
// (i + 1) represents the current length of the array being checked
return Math.ceil((i + 1) / 3);
}
// Add the current number to the 'appeared' array
appeared.push(nums[i]);
}
// If the array has no duplicates, return 0
return 0;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment