Ответы пользователя по тегу Алгоритмы
  • Как найти ближайшее целое число для вещественного, исключая целые числа из списка?

    WblCHA
    @WblCHA
    Округляешь число, проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, прибавляешь/отнимаешь от числа 1 и ещё раз проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, отнимаешь/прибавляешь к числу 2 и ещё раз проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, прибавляешь/отнимаешь от числа 3 и ещё раз проверяешь находится ли оно в массиве.
    И т.д.

    Чередуешь сложение с вычитанием (начинать в зависимости от того, куда было округлено) и на каждой итерации увеличиваешь слагаемое-вычитаемое на 1.
    Ответ написан
    Комментировать
  • Как отсортировать массив массивов строк в js?

    WblCHA
    @WblCHA
    Раз такое дело, Дмитрий Беляев, Роман, оцените.)
    (() => {
      const orderArray = (arr) => {
        const itemsForMap = arr.map((items) => ([items[0], { items, prev: undefined }]))
        const itemsMap = new Map(itemsForMap);
    
        let last;
        itemsMap.forEach((node) => {
          const next = itemsMap.get(node.items[1]);
          if(next) {
            next.prev = node;
          }
          else {
            last = node;
          }
        });
    
        const result = [];
        result.length = arr.length;
    
        let current = last;
        for(let i = result.length - 1; i > -1; i--) {
          result[i] = current.items;
          current = current.prev;
        }
    
        return result;
      };
      
      return orderArray([['butter', 'jelly'], ['bananas', 'apples'], ['peanuts', 'butter'], ['jelly', 'bananas']]);
    })()

    Вроде всё верно, но я это в 7 утра перед сном писал...
    Ответ написан
    1 комментарий