Nov. 1st, 2022

amarao: (Default)
Случилась у нас тут шутливая ругань насчёт демонов, и кто-то потребовал ангелов. Я нашёл. Лучше бы не находил.

https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/philip-wakelin1/2020/08/10/liberty-angel-to-access-authorized-services
amarao: (Default)
Я почти-почти-почти решил задачу, но... У BinaryHeap нет remove. pop убирает только самый большой элемент.

Практически, эпик фейл. Теоретически, BST решает проблему, но в стандартной библиотке нет BST, а есть только "просто дерево" (и BTree).

Я пока не готов коммититься на написание дерева (кроме того, я знаю, что растовая реализация BTree на много голов выше любой моей наивной реализации).

Видимо, я пока признаю своё поражение, и использую внешний крейт с binary_search_tree.

(обидно, потому что first/last для BTreeMap/Set уже стабилизировано, но ещё не зарелижено. Увы).

UPD: его стабилизируют в 1.66, 1.65 выходит послезавтра, а сколько ждать до 1.66 - даже не известно. Увы, binary_search_tree.

UPD2: на leetcode нет крейта binary_search_tree. Либо писать своё дерево (конкретно binary search tree), либо писать всю структуру с нуля.

Мой хак состоял в том, чтобы переопределить Ord таким образом, чтобы точка была равна range в который она попадает. Это позволяло извлекать range по точке из range'а. Если писать свою структуру, хак тут не нужен.

Пока что сохраняю для истории версию с (unstable) BTreeSet.first(): https://gist.github.com/amarao/9126e51f9587186fc95a79e3339bf884

и пойду ваять дерево. Совершенно отдельная дисциплина.

Profile

amarao: (Default)
amarao

August 2025

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 19th, 2025 01:27 am
Powered by Dreamwidth Studios