Каков наилучший подход к решению этой проблемы? - PullRequest
0 голосов
/ 18 мая 2019

Если массив содержал [1, 10, 3, 5, 2, 7] и k = 2, объедините набор как {110, 35, 27}, отсортируйте набор {27, 35, 110} и разбейтеустановить в массив как [2, 7, 3, 5, 1, 10]

1 Ответ

0 голосов
/ 20 мая 2019

Вот способ реализовать это в 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, если вы действительно хотите сохранить только уникальные значения или нет ... Дайте мне знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...