解决此问题的最佳方法是什么?

时间:2019-05-18 09:54:51

标签: data-structures

如果包含[1、10、3、5、2、7]且k = 2的数组,则将集合组合为{110,35,27},对集合{27,35,110}进行排序,并拆分设置为[2,7,3,5,1,10]的数组

1 个答案:

答案 0 :(得分:0)

这是在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);

我不确定当您说要合并set时,是否真的只保留唯一值...让我知道