Size: a a a

JavaScript Noobs — сообщество новичков

2021 February 06

AB

Alex Bessmertnov in JavaScript Noobs — сообщество новичков
Anna Galkina
Всем привет! Рябят подскажите, пожалуйста, почему здесь justify-content: space-between; не работает. https://codepen.io/anna-galkina/pen/rNWeMmq
.nav-list {
 display: flex;
 justify-content: space-between;
}
этого по стилям вполне достаточно
источник

AG

Anna Galkina in JavaScript Noobs — сообщество новичков
Alex Bessmertnov
.nav-list {
 display: flex;
 justify-content: space-between;
}
этого по стилям вполне достаточно
Спасибо, исправила, я думала перепробовала уже всё
источник

SV

Sergey V in JavaScript Noobs — сообщество новичков
Alex Bessmertnov
.nav-list {
 display: flex;
 justify-content: space-between;
}
этого по стилям вполне достаточно
без ширины не сработает
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
источник

AB

Alex Bessmertnov in JavaScript Noobs — сообщество новичков
сработает
источник

SV

Sergey V in JavaScript Noobs — сообщество новичков
мешаете сеньорам тестами меряться😂
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
Да!
источник

C

Chris in JavaScript Noobs — сообщество новичков
Пойдём в лс вечерком, я щас чуток занят?
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
Оставлю fiddle с нашими решениями на растерзание
https://jsfiddle.net/jkgox9p8/
источник

🌬М

🌬 Мари✨ in JavaScript Noobs — сообщество новичков
Denys Mikhalenko
Есть подозрение, что ты неправильно тестишь
Разбираюсь с кодом ) а что такое mapper ?)
источник

C

Chris in JavaScript Noobs — сообщество новичков
Набор [0,2,2,2,3,4,6,6,6,7,10,12,18,20,30,40,40,50,54,60,60,70,80,80,90,100,120,127]

Решение с хитрой оптимизацией
function split(array) {
   function partition(array, mask) {
       let a = [], b = [], i = array.length;
       while (--i >= 0) {
           if ((mask >> i) & 1) a.push(array[i]);
           else b.push(array[i]);
       }
       return [a, b];
   }
   function diffar(array, mask) {
       let d = 0, i = array.length;
       while (--i >= 0) {
           if ((mask >> i) & 1) d += array[i];
           else d -= array[i];
       }
       return d
   }

   //array = [...array].sort((a,b) => b - a);
   let len = array.length;
   let min = Infinity, result, idx;
   let target = 0;
   let sum = array.reduce((a, b) => a + b);
   if (sum % 2) target = 1;

   let i = 2 ** (len - 1)

   while (--i >= 0) {
       let diff = Math.abs(diffar(array, i))
       if (diff < min) {
           if (diff === target) return partition(array, i);
           idx = i;
           min = diff;
       }
   }

   return partition(array, idx);
}
источник

🌬М

🌬 Мари✨ in JavaScript Noobs — сообщество новичков
Chris
Набор [0,2,2,2,3,4,6,6,6,7,10,12,18,20,30,40,40,50,54,60,60,70,80,80,90,100,120,127]

Решение с хитрой оптимизацией
function split(array) {
   function partition(array, mask) {
       let a = [], b = [], i = array.length;
       while (--i >= 0) {
           if ((mask >> i) & 1) a.push(array[i]);
           else b.push(array[i]);
       }
       return [a, b];
   }
   function diffar(array, mask) {
       let d = 0, i = array.length;
       while (--i >= 0) {
           if ((mask >> i) & 1) d += array[i];
           else d -= array[i];
       }
       return d
   }

   //array = [...array].sort((a,b) => b - a);
   let len = array.length;
   let min = Infinity, result, idx;
   let target = 0;
   let sum = array.reduce((a, b) => a + b);
   if (sum % 2) target = 1;

   let i = 2 ** (len - 1)

   while (--i >= 0) {
       let diff = Math.abs(diffar(array, i))
       if (diff < min) {
           if (diff === target) return partition(array, i);
           idx = i;
           min = diff;
       }
   }

   return partition(array, idx);
}
И к вам вопрос ) зачем min присваивать infinity и i = 2** на длину 😏☺️
источник

C

Chris in JavaScript Noobs — сообщество новичков
2**length - количество вариантов при полном переборе. Но, поскольку варианты симметричны, достаточно рассмотреть половину из них, то есть 2**(length - 1)
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
недурно
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
надеюсь оно правильно решает, а то я результаты не сверял )
источник

🌬М

🌬 Мари✨ in JavaScript Noobs — сообщество новичков
Chris
2**length - количество вариантов при полном переборе. Но, поскольку варианты симметричны, достаточно рассмотреть половину из них, то есть 2**(length - 1)
Там исправить да? )
источник

C

Chris in JavaScript Noobs — сообщество новичков
Необязательно на маленьких наборах
источник

🌬М

🌬 Мари✨ in JavaScript Noobs — сообщество новичков
Меня аж прибило такими вариантами 😅 спс мальчики ☺️
источник

C

Chris in JavaScript Noobs — сообщество новичков
Мальчики письками меряются, извините ))
источник