GOKUL P S
GOKUL P S

Reputation: 39

What is the best approach to solve this problem?

If an array contained [1, 10, 3, 5, 2, 7] and k = 2, combine the set as {110, 35, 27}, sort the set {27, 35, 110} and split the set into array as [2, 7, 3, 5, 1, 10]

Upvotes: 0

Views: 89

Answers (1)

V. Sambor
V. Sambor

Reputation: 13409

Here is a way to implement this in JavaScript:

const k = 2;
const arr = [1, 10, 3, 5, 2, 7];


// STEP 1  - Combine the set by k pair number
const setCombined = []

for(let i = 0; i < arr.length; ++i) {
  if(i % k === 0) {
    setCombined.push(parseInt(arr.slice(i, i + k ).join('')))
  }
}
console.log('STEP1 - combined: \n', setCombined);

// STEP 2 - Sort 
const sortedArray = setCombined.sort((a, b) => a - b)
console.log('STEP2 - sorted: \n', sortedArray);


// STEP 3  - Split sorted
const splitArray = sortedArray.join('').split('').map(e => parseInt(e))
console.log('STEP3 - split: \n', splitArray);

I was not sure though when you said to combine set, if you really ment to keep only unique values or not... Let me know

Upvotes: 1

Related Questions