Рубрики
Без рубрики

Уч! О нет, я переживаю сам!

Оглядываясь назад на другое неудачное упражнение!. Tagged с помощью JavaScript, программирования, ходеров.

Привет, Деверс!

Что творится? Вот еще один короткий пост о том, как я разрезал себя концепциями, которые я не знаю.

Это о Лучшее путешествие Из Codewars это очень просто, если вы кодируете в Python, но в JS (если вы похожи на меня) вам придется Ударьте голову на стол и Ударьте голову на стол и Ударьте голову на стол и … Максимальный размер стека превышен ! 😭

Проблема:

  1. Получите различные комбинации с фиксированной длиной (скажем, f) из входного массива без замены
  2. Рассчитайте сумму каждой комбинации, полученной на шаге 1.
  3. Сравните каждую сумму с данным входным параметром, скажем, k
  4. Вернуть сумму, ближайшую к K, в противном случае NULL и т. Д.

Если вы используете Python, получение комбинации так же просто в следующем:

import itertools

arr = [1,2,3,4,5,6,7,8]

combinations = itertools.combinations(arr, 5) # f is 5

#print each combination
for i in combinations:
    print(i)

Проверьте сообщение от Гиксфорджеки Кстати, я только что видел это сейчас! LOL WUT!

Так… Я не знал этого, когда попробовал эту проблему, и я попробовал ее с JS, смотрящим здесь, и, как вы знаете, исходя из моего последний пост , это Ответственная, гротескная! 😬

ts = [ 91, 74, 73, 85, 73, 81, 87 ];

function chooseBestSum(t, k, ls){
    var km = t;
    var towns = k;
    var arr = ls;
    var tuple = [];
    var km_sum = [];
    var count = 0;
    var result = 0;
    function karan(arr){
    if(arr.length==0){
        return null;
    }
    else{
        if(tuple.length===towns-1){
            for(var i =0;ii+c));
            }
            //tuple.splice(1,2)
            tuple.splice(1,tuple.length);
        }
        tuple.push(arr[0]);
        karan(arr.slice(count+1, arr.length));
    }
    //return Math.max(...km_sum.filter(i=>i<=km?i:null))
    }

    for(var i = 0;i<=arr.length-towns;i++){
        tuple = [];
        karan(arr.slice(i,arr.length));
    };
    console.log(km_sum);
    result = Math.max(...km_sum.filter(i=>i<=km)); 
    if(result===-1 || result===-Infinity){
        return null;
    }
    else{
        return result;
    }
    //result = Math.max(...km_sum.filter(i=>(km_sum.length>0&&i<=km)?i:null));
}

chooseBestSum(331, 4, ts);

Что я пытаюсь сделать:

  1. Слишком много думать о том, что только Рекурсия Решите это! НЕПРАВИЛЬНЫЙ! Хотя это лучшее и краткое решение.
  2. Не в состоянии действительно визуализировать проблему.
  3. Никогда не читайте и не обнаружил, что это такое, пока я не увидел вещи в Интернете
  4. Абсолютно смущено, где будет работать возврат функции и т. Д.

И поэтому я не смог решить это сам! Код, который вы видите выше, работает 22/30 раз, потому что он не возвращает все правильные комбинации Потому что Это хит и мисс Потому что Это было в основном создано для! 😳😳😳😳

И я оставляю всех вас с этим: RTFM, снова тренируйтесь и цитату от Скотта Иствуда:

Держите голову, усердно работайте и никогда не верьте своей собственной ажиотаже, потому что … Вы просто продолжаете работать.

Добрый день!

Оригинал: “https://dev.to/hydroweaver/ouch-oh-no-i-recursiond-myself-399n”