так зараз Bard доступний тільки в США та Великій Британії, щоб це обійти я використав VPN і на диво більше перевірок не було і все запрацювало. Ну точніше зміг стати в чергу на доступ і потім вже отримав доступ і так само під VPN зміг ним користуватися.
це схоже на те що просто зарплати за січень прийшли в грудні, бо якщо дивитися на графіки то це не в січні менше, а в грудні аномальний стрибок
так дуже важливо дивитися на обмеження, вони допомагають. Але якщо ти перший раз розв’язуєш задічі типу таких, то все здається складним, а просто потрібно набити руку і далі все піде :)
так, мені це теж не подобається, в C# там взагалі скакає, особливо по пам’яті один раз ти кращий за 100%, наступний запуск і вже 40% (це умовні цифри)
я зазвичай на це не дивлюсь, головне зрозуміти з якою складністю працює задача.
Доречі сподобався твій варіант, щоб використати вхідний масив для відповіді, це теж один з прийомів по оптимізації та вирішенню задач на LeetCode
а в чому проблема з
leetcode
?
ще додай в Dictionary відразу довжину 1000 (можна окремим методом для бенчмарки), це прибере непотрібні перебалансування при додаванні нових елементів і тоді час вставки і вичитки буде завжди O(1)
var counter = new Dictionary<int, int>(1000);
Що саме маєте на увазі під окремим лічильником?
так як в посиланні і мав на увазі, що можна створити загальний лічильник
var counter = new int[1000]та окремо створювати на кожний масив:
var tempCounter = new int[1000]тут вже потрібно дивитися що краще і які можуть бути вхідні масиви, якщо сказано що кількість масивів дуже велика, а їхній різмір маленький, то можна подумати і про хеш сет для знаходження дублікатів, а масив для пошуку шаблонів після очистки очистки від дублікатів, або ж проходитись по тимчасовим лічильника і очищувати їх, щоб не виділяти багато пам’яті.
якщо це реальна практична задача, то тут метод научного тику покаже що буде працювати краще, а якщо для співбесіди, то головне це порозмірковувати коли що буде краще :)
Сортування, звісно, додають багато складності, але я пару бенчмарків зробив на рандомнії матриці 1000×1000 — працює трохи шивдше за хеш-таблицю.
ми ж розуміюємо що тут головне описати складність алгоритму, а для сорвування це мінімум N*Log(N), а вставка в хеш таблицю O(1), але оскільки ми ще читаємо перед цим то час вичитки різниться від O(1) до O(N) якщо буде багато ключів з однаковим хешем. Оскільки в нас обмежений діапазон і це цілі числа те що всі хеші будуть однакові дуже малоймовірно, тому ріст буде O(N) для запису (з попередньою вичиткою) для всіх значень що менше N*Log(N).
Те що O(N) краща складність за N*Log(N) не дає нам гарантії що O(N) працюватиме швидше, це говорить що після досягнення якоїсь критичної точки цей алгорим буде працювати швидше.
Якщо буде час, можеш збільшити кількість елементів до 1_000_000? а діапазон залишити як зараз 1000 і глянемо як зміниться бенчмарка. Якщо що можна писати в телеграм (в статті є посилання)
на майбутнє було б цікаво почитати розбір інших алго задач.
якщо є якісь конкретні задачі чи теми, наприклад бінарні дерева чи ще щось то можу спробувати розібрати їх
Я так розумію це про ось цю частину:
Пам’яткова складність: O(L) + O(K), де L — кількість унікальних елементів у всіх масивах, K — кількість елементів, які містяться в кожному масиві. Якщо взяти найгірший випадок, коли всі елементи унікальні, то L = N, та в нас всього один масив, K = N, тоді пам’яткова складність буде O(N) + O(N) = 2×O(N) = O(N). де N — кількість елементів у всіх масивах.
Я тут показую зазвий якою буде пам’яткова складність для хеш-мапи, якщо не звернути увагу на те що ми маємо унікальні значення в межах до 1000 тоді дійсно буде O(N), але врахуючи що в нас тільки 1000 унікальних елементів тоді, так це зводиться до O(1000) = O(1).
Типово що для хеш-мапи це O(N) а для масиву (чи просто int32/int64) це О(1).
Дякую що звернув увагу, це потрібно підкреслити.
цікаво це ці термінали які купують за 1євро а коли активуєш то знімають всю вартість :)
скинь посилання на
65 Ваттний
бо в базеусів їх 100500 різних
коли через зарядку то видає 0.3А, а коли через USB то 2.5А. В знайомого в машині видає і через зарядку 2А+. Це проблема в машинном аккумуляторі?
Пробував машинний інвертор від Baseus як на картинці вище, але чомусь в моїй машині він не розганяється і зарядка від MacBook Pro 2019 не працює, можна звісно через USB з цього самого інвертора заряджати, але не має толку бо воно видає тільки 30 Ват. Тому купив ось таку зарядку в прикурювач:
www.aliexpress.com/...st_main.33.363e1802wOAQ1F
містить 1 вихід на 100 Ват і не гуде як інвертор.
ПС: інвертор працює в іншій машині добре, чому в моїй не розганяється так і не розібрався
не думаю, ChatGPT використовує більше однієї моделі одночасно + тримає контекст. Тут тільки модель генерації тексту text-davinci-003, тобто бот не зможе згенерувати тобі код. А от як через API тримається контекст не перевіряв, але в прикладі коду не передається ніяких ід телеграм користувачів, тому в кращому (а може і в гіршову) випадку контекст буде спільний на всі запити. Тому це просто бот для генерації тексту а не заміна ChatGPT
так там ж наче через Open AI доволі дорого?
я відразу подумав що тут потрібен телеграм бот, але трішки поклацав їхню API через UI на сайті і нагенерував на 0.41$ буквально за 30хв...
використовував text-davinci-003 на beta.openai.com/playground
так можна без картки, я запускаю там і статичні сайти і бекенд в докері і postgresql і все це без картки.
Безкоштовних лімітів вистачить щоб запускати свій 1 сервіс 24/7, там якщо не має трафіку то сервіс «засипає» за 15хв, але якщо буде трафік то буде далі працювати.
В них є крон джоби і ще якісь сервіси, то там вже точно потрібна картка
Безкоштовно ще можна спробувати render
dou.ua/forums/topic/40607
А чи є реальний приклад з свого досвіду коли
code review рятує проєкт
? Бо в code review є і свої недоліки, так повністю згоден що повинен бути статичний аналізатор коду, це звісно плюс. Але скільки людей мають проревювити код? якщо 1 то вийде що весь свій час найдосвідченіший програміст буде те і робити що дивитися ПР, а коли у відпустці то починається хаос і анархія? :)
Якщо дивитися тільки чи я правильно назвав локальний метод і змінну в цьому мало користі, доволі збільшується час коли цей кусок коду потрапляє на тестування (ну чи якісь інші етапи) і тим самим збільшується час до продакшину. Якщо аналізувати і те як реалізована сама фіча, то потрібно повністю бути в контексті задачі і знати як працює вся система і тоді виникає питання навіщо ревювити коли хтось вже є готове рішення і говорити «ні це фігня давай заново». Колись читав про підхід що спочатку роблять дизайн рішення і його ревю, а потім вже реалізовують його (хоча теж не дає гарантій що під час виконання рішення виникли нюанси і потрібно реалізовувати інакше).
Як на мене статичний аналіз + тести це маст хев для ПР, а от мануальний апрув хіба щоб контролювати які фічі зараз заходять в релізний скоуп.
Крім того, хероку більше не безоплатний, і я поки не знайшла гарного рішення для безкоштовного хостингу. Буду рада порадам.
можеш спробувати render.com, писав пару слів про порівняння з heroku
dou.ua/forums/topic/40607
Та не потрібно нікого просити, ось наприклад українська компанія MacPow роздає безкоштовний VPN для українців:
support.clearvpn.com/...VPN-Ukraine-Free-Version
або ж ось пост на ДОУ їхнього менеджера про VPN версію 2:
dou.ua/forums/topic/42133
або з безкоштовних варіантів щоб спробувати і без прив’язки своєї платіжної картки TunnelBear:
www.tunnelbear.com/pricing
тут дають 2Гб трафіка на місяць безкоштовно (раніше було менше, недавно збільшили лімити).
Коли дивився в правилах використання Bard про VPN там не має жодного слова :)