Size: a a a

2021 June 05

DE

Denis Efremov in JS Liberty
Это неправильное решение
источник

DE

Denis Efremov in JS Liberty
/**
* @param {number[]} nums
* @return {number}
*/
var largestPerimeter = function(nums) {
   function checkTriangle (sides) {
       return sides[0] < sides[1] + sides[2] &&
           sides[1] < sides[0] + sides[2] &&
           sides[2] < sides[1] + sides[0];
   }

   function combine(items, numSubItems) {
       var result = [];
       var indexes = new Array(numSubItems);
       for (var i = 0 ; i < numSubItems; i++) {
           indexes[i] = i;
       }
       while (indexes[0] < (items.length - numSubItems + 1)) {
           var v = [];
           for (var i = 0 ; i < numSubItems; i++) {
               v.push(items[indexes[i]]);
           }
           result.push(v);
           indexes[numSubItems - 1]++;
           var l = numSubItems - 1; // reference always is the last position at beginning
           while ( (indexes[numSubItems - 1] >= items.length) && (indexes[0] < items.length - numSubItems + 1)) {
               l--; // the last position is reached
               indexes[l]++;
               for (var i = l +1 ; i < numSubItems; i++) {
                   indexes[i] = indexes[l] + (i - l);
               }
           }        
       }
       return result;
   }

   const triplets = combine(nums, 3).map((p)=>[...p, p.reduce((a,b)=>a+b)]).sort((a, b) => a[3] !== b[3]
       ? (a[3] < b[3] ? 1 : -1)
       : 0);
   for (let i = 0; i < triplets.length; i += 1) {
       if (checkTriangle(triplets[i])) {
           return triplets[i][3];
       }
   }
   return 0;
};

Вот работает но памяти не хватает
источник

S

Syntax Highlight Bot in JS Liberty
источник

DE

Denis Efremov in JS Liberty
Ну и комбайн мне лень писать. Я его спиздил
источник

p

persona x grata in JS Liberty
Нихуя се
источник

YP

Yarik Pesochenski in JS Liberty
Функция которая проверяет на треугольник слишком громоздкая, ее можно сделать циклом как у меня, это работает
источник

YP

Yarik Pesochenski in JS Liberty
Слушай а можешь сказать почему тот цикл который я выше скинул, отрабатывает только 1 раз?
источник

DE

Denis Efremov in JS Liberty
Какой?
источник

В

Влад in JS Liberty
Это работает
источник

YP

Yarik Pesochenski in JS Liberty
источник

YP

Yarik Pesochenski in JS Liberty
Это работает, но оно медленнее
источник

DE

Denis Efremov in JS Liberty
Как я понял нужно перебрать все комбинации чисел
источник

DE

Denis Efremov in JS Liberty
В массиве
источник

DE

Denis Efremov in JS Liberty
А не просто по три подряд забирать
источник

YP

Yarik Pesochenski in JS Liberty
Он должен перебрать все комбинации и если одна из них не удовлетворяет условию то он делает слайс со сдвигом на число и перебирает заново
источник

DE

Denis Efremov in JS Liberty
А как ты вычисляешь все комбинации?
источник

YP

Yarik Pesochenski in JS Liberty
Итерация это индекс числа, которое потом вычитается из суммы, таким образом я могу сравнить каждое число из трех
источник

p

persona x grata in JS Liberty
внатуре, бля это же решение на жаве из ответов, походу я криво переписал тогдп
источник

DE

Denis Efremov in JS Liberty
[66,45,96,55,97,1,9,43,65,24,28,20,5,28,85,30,6,96,48,52,3,68,77,46,32,6,62,51,98,7,63,31,47,16439,55,7,48,902,7,2387,80,24,26608,57,24,14,41,51,772847,55,88,6,90,97,79,58,79,66,73,18,24,91,34,72,79,2,477640,81,18,8,68,98,49,557,65,52,95,22,54,54,78,10,91,65,41,32,72,19,64,69,24,50,51,49,20,58,27,45,50,6,59,17,32,68,37,4,43,80,87,21,61,56,28,92,8,13,30,53,16,8,50,59,68,28,58,13,35,99,12,81,47,65,10152,32,98,31,74,4,53,31,41,23,7,24,60,27,6,97,1,76,16,100,50,26,66,19,18,79,1478,6,70,182436,5,52,69,11,58,95,7,61,51,77,4,18,71,65,93,97,37,28,70,30,8,31,26,85,28,35,68,29,7,71,18,14,19,59,38,34,46,77,52,6270,88,63,11,29,3875,94,17,91,9,4,76,87,50,18,50,73,98,18,96,47,25,331,37,30,43,121,39,62,89,60,72,31,87,38,55,89,68,93,65,42,9,66,37,13,41,3,36,88,47,36,52,57,74,99,64,99,206,69,35,5,9,28,75,78,112745,69675,51,7,77,2,99,56,5,12,9,80,38,295195,2,99,75,100,77,62,4,81,74,72,81,25,93,49,71,43059,9,58,57,46]
источник

DE

Denis Efremov in JS Liberty
Покажи все возможные комбинации
источник