Задать вопрос
  • Проблема при прохождении теста node?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    i, j: max((j - i) * min(length[i], length(j)), 0 <= i < j <= n
    Наивное решение - полный перебор всех пар.
    Эвристическое решение:
    Берём два крайних забора (left = 0 и right = n-1), вычисляем площадь участка (right - left) * min(length[left], length[right]).
    Учитывая, что при сдвиге границ к центру расстояние вдоль забора (right - left) уменьшается, для увеличения площади участка необходимо увеличение min(length[left], length[right]). Поэтому берём ту границу left или right, длина забора для которой меньше, и начинаем двигать к центру, пока длина забора не станет больше предыдущей (length[left'] > length[left] или length[right'] > length[right]).
    Вычисляем новую площадь. Если она больше предыдущей, запоминаем положения заборов. Повторяем процедуру сдвигания заборов.
    Или псевдокодом:
    leftMax := left := 0
    rightMsx := right := n - 1
    sMax := (right - left) * min(length[left], length[right])
    while (left < right) {
      if (length[left] < length[right]) {
        left' := left;
        while (length[left] <= length[left'] && left' < right) {
          left' := left' + 1
        }
        left := left'
      } else {
        right' := left;
        while (length[right] <= length[right'] && left < right') {
          right' := right' - 1
        }
        right := right'
      }
      s := (right - left) * min(length[left], length[right])
      if (s > sMax) {
        sMax := s
        leftMax := left
        rightMax := right
      }
    }
    Ответ написан
  • Как вывести кратчайший путь в графе?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Почему компьютеры используют двоичные числа в мантиссе IEEE754 вместо BCD или PDP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    даже 1/3 будет точнее в десятичной системе, чем в двоичной

    А давайте проверим.
    В BCD упаковке мы получим 3.333333333333*10-1, ошибка будет 3.(3)*10-14
    В двоичном представлении получим 1.0101010101010101010101010101010101010101010101010101*2-1 = 3.33333333333333314829616256247*10-1, ошибка 1.4829616256247*10-17
    То есть, ошибка в двоичном представлении в 2000 раз меньше, чем в BCD. А накапливаться ошибка будет и там и там.
    Да, и 52 бита мантиссы на самом деле дают 53 бита значения, поскольку лидирующая единица всегда опускается.
    Ответ написан
    6 комментариев
  • Как найти последний элемент времени в строке и добавить произвольный текст?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const str = 'с 14:01 к 15:00 работать по плановому';
    console.log(str.replace(/(\d\d:\d\d)(?!.*\d\d:\d\d)/, (s) => s + ' (время местное)'));
    // с 14:01 к 15:00 (время местное) работать по плановому
    Ответ написан
    Комментировать
  • Как правильно проверить, есть ли в массиве два одинаковых элемента подряд?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    И стоит сделать строгую проверку равенства, иначе возможны всякие приколы
    var_dump(check(['привет', true])); // bool(true)
    var_dump(check([true, 1])); // bool(true)
    var_dump(check([1, 'привет'])); // bool(false)
    Ответ написан
    Комментировать
  • Почему появляется Typed property must not be accessed before initialization?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Нет, по умолчанию типизированное свойство не инициализировано
    class Product
    {
        private int $parentId;
    
        private $nonTyped;
    
        public function __construct(
            private readonly int $id
        ) {
        }
    }
    
    $obj = new Product(1);
    var_dump($obj);
    
    // class \Product#2 (3) {
    //   private int $parentId => *uninitialized*
    //   private $nonTyped => NULL
    //   private readonly int $id => int(1)
    // }


    2. Если это свойство необязательное, то вариантов три:
    - не обращаться к свойству до его инициализации;
    - инициализировать свойство значением по умолчанию при определении;
    - делать коалесценцию в геттере, возвращая значение по умолчанию (return $this->parentId ?? null;).
    Ответ написан
    Комментировать
  • Почему не получается задать либо один тип либо другой в typescript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В ошибке говорится, что callback-функция, первый аргумент в data.find, описана как (LinkItem) => void, а вы пытаетесь подставить туда (LinkItem | MobileMegaMenuItem) => void
    Соответственно вам надо менять контракт find.
    Ответ написан
    1 комментарий
  • Как правильно хранить время последнего визита пользователя?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как вариант - сначала делать UPDATE, а потом, если нет изменённых сторок, INSERT IGNORE.
    Ответ написан
    Комментировать
  • Как исправить строку в файле txt?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Захватить файл монопольно, прочитать все строки из файла, найти нужную, изменить её, очистить файл, записать в него все строки, освободить файл.
    Чтобы меньше страдать фигнёй, освоить реляционные базы данных и использовать хотя бы sqlite.
    Ответ написан
    3 комментария
  • Async с методами класса не работает?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Сделайте метод static async create(), который выполняет все await'ы и возвращает новый экземпляр класса. Соответственно, вместо bar = new foo() в таком случае будет bar = await foo.create().
    Ответ написан
  • Как генерируется токен?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Токен получается при авторизации на сервере gateway.blum.codes
    Данные для авторизации берутся с сервера telegram.blum.codes
    Смотрите исходники бота, функции login и get_tg_web_data
    https://github.com/VernonDevID/blum/blob/6619ef720...
    Ответ написан
  • Как изменить цвет ссылок?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Браузер показывает, что свойство не применяется из-за того, что оно перекрыто более специфичным селектором.
    66b73732c1951391303109.png
    Ответ написан
    1 комментарий
  • Большое кол-во записей в секунду в MySQL. Как читать последний порядковый номер столбца и добавлять к нему +1 при записи?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Какой-то бред.
    1. Составной ключ по автоинкрементному полю и обычному смысла не имеет, поскольку автоинкрементное поле id всегда уникально, то добавление к нем sessid ничего, кроме торможения, не добавит.
    2. Делать какую-то отдельную проверку на уникальность result внутри sessid смысла не имеет. Достаточно сделать уникальный составной ключ (sessid, result) и использовать INSERT IGNORE.
    3. Отдельное поле serialnumb абсолютно не нужно. Выборку всегда можно отсортировать через ORDER BY id и пронумеровать через оконные функции.
    Ответ написан
    5 комментариев
  • Как узнать, какой день недели был 100 дней назад?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не надо костылить и велосипедить. Всё придумано до нас:
    echo (new IntlDateFormatter("ru_RU", pattern: 'EEEE, d MMMM y'))
    	->format(new DateTimeImmutable('100 days ago'));
    // вторник, 30 апреля 2024
    Ответ написан
    1 комментарий
  • Как убрать лишние "невидимые" локали в win10?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Здесь предлагают через PowerShell добавить язык qaa-Latn в список, а потом удалить его.
    $LanguageList = Get-WinUserLanguageList
    $LanguageList.Add("qaa-latn")
    Set-WinUserLanguageList $LanguageList -Force

    $LanguageList = Get-WinUserLanguageList
    $Language = $LanguageList | where LanguageTag -eq "qaa-Latn"
    $LanguageList.Remove($Language)
    Set-WinUserLanguageList $LanguageList -Force
    Ответ написан
    1 комментарий
  • Как перебороть ошибку has been blocked by CORS policy?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для CORS надо либо менять настройку сервера, к которому делается запрос (в данном случае gutendex.com), либо делать запрос через промежуточный сервис. Как правило, это скрипт на своём бэке, который получает запрос от фронта, повторяет его постороннему серверу и возвращает на фронт результат.
    Ответ написан
    Комментировать
  • Самопроверка целостности кода контрольной суммой, как реализовать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для точного восстановления кода по контрольной сумме последняя должна быть размером с архив этого кода.
    Как правило, если контрольная сумма не совпадает, то просто выдаётся ошибка и запуск оборудования останавливается. Так поступают, например, BIOS'ы компьютеров. Дальше нужно восстановить код из внешнего источника, это дело для сервисного техника, или внутреннего хранилища (если там всё в порядке), такое есть на материнских платах с двумя чипами BIOS.
    Как более сложный вариант - проверять контрольную сумму каждой функции. Если повреждена критическая функция, то останавливать работу, если некритическая, то не вызывать её во время работы.
    Ответ написан
    2 комментария
  • Почему Отключается LAN после выключения компьютера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Убрать галочку "Разрешить отключение этого устройства для экономии энергии".
    2. Убрать галочку "Включить быстрый запуск" в Панель управления -> Электропитание -> Действие кнопки питания
    Ответ написан
  • Почему SQL ошибка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    RTFM
    У MariaDB (как и у MySQL) DISTINCT применяется только целиком к полученной строке. Никаких DISTINCT ON() в них нет.
    Ответ написан
    4 комментария
  • Как сделать чтобы яндекс браузер не делал из нормального текста в источнике css кракозябры?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В VSCode они может и в UTF-8, а какая кодировка указана в HTTP-заголовке Content-Type при отдаче файла?
    Ответ написан
    Комментировать