Показать сообщение отдельно
  #5 (permalink)  
Старый 25.05.2021, 15:08
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

ох уж эти ФП-шники ))

function makeDeltas(arr) {
  let fullDelta = 0;
  return arr.map((num, i) => fullDelta += i % 2 ? -num : num);
}

const calc = (deltas) => deltas.reduce((count, d, i, arr) => 
    (i > 0 ? arr[i - 1] : 0) + d - arr[arr.length - 1] ? count : count + 1, 0)

const waysToMakeFair = (arr) => !arr || !arr.length ? 0 : calc(makeDeltas(arr))

alert(waysToMakeFair([2,1,6,4]));
Ответить с цитированием