We will implement a simple algorithm to print all the unique 2 digit combinations of given numbers in Javascript.
Example
Input: [1, 2, 3] [1, 2, 3, 4, 5] Output: 1 2 1 3 2 3 1 2 1 3 1 4 1 5 2 3 2 4 2 5 3 4 3 5 4 5
Implementation
- We will first remove the duplicate numbers from the given list of numbers using SET.
- Then we will loop through each item of the array and print its combinations with every next element using inner loop.
- We will use ES6.
let combinations = (arr) => {
//remove duplicate numbers
let set = new Set(arr);
//create new error from the unique numbers
arr = [...set];
//print all the combinations
for(let i = 0; i < arr.length - 1; i++){
for(let j = i + 1; j < arr.length; j++){
console.log(arr[i], arr[j]);
}
}
}
Input: combinations([1, 2, 3]); combinations([1, 2, 3, 4, 5]); Output: 1 2 1 3 2 3 1 2 1 3 1 4 1 5 2 3 2 4 2 5 3 4 3 5 4 5
Learn more about SET and ... spread operator.
Time complexity: O(n^2).
Space complexity: O(n).
Time and Space complexity
- We are remove duplicate numbers from array which will take O(n) and then creating an array of unique numbers in O(n). After that printing the combinations of numbers will take n * n - 1 * n - 2 * ... i.e O(n^2), so Time complexity is O(n^2).
- We are using SET to store the unique numbers, so Space complexity is O(n).