Условие : префиксное дерево - это структура данных для эффективного хранения и извлечения ключей в массиве строк.
Необходимо реализовать класс со следующими методами:
- Trie() - инициализатор;
- void insert(String word) - осуществляет вставку в экземпляр класса;
- boolean search(String word) - возвращает флаг о наличии слова word в дереве;
- boolean startsWith(String prefix) - возвращает флаг о том, начинается ли слово, вставленное на предыдущем шаге с prefix.
Пример:
Ввод: ["Trie", "insert", "search", "search", "startsWith", "insert", "search"]
[[], ["apple"], ["apple"], ["app"], ["app"], ["app"], ["app"]]
Вывод: [null, null, true, false, true, null, true]
Объяснение:
Trie trie = new Trie();
trie.insert("apple");
trie.search("apple"); // return True
trie.search("app"); // return False
trie.startsWith("app"); // return True
trie.insert("app");
trie.search("app"); // return True
Решение
Пишите свое решение в комментариях👇
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
C++/ t.me/cpluspluc
Data Science: t.me/data_analysis_ml
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/devOPSitsec
C#: t.me/csharp_ci
Java: t.me/javatg
Linux: t.me/+A8jY79rcyKJlYWY6
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Big Data: t.me/bigdatai
Тестирование:https://yangx.top/+F9jPLmMFqq1kNTMy
Аналитика данных: https://yangx.top/+mAXY9ppJwitkMDBi
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
ИИ: t.me/vistehno
Книги по искусственному интеллекту
💼 Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка Java разработчика: https://yangx.top/addlist/ZM3J6oFNAnRlNWU6
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
C++/ t.me/cpluspluc
Data Science: t.me/data_analysis_ml
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/devOPSitsec
C#: t.me/csharp_ci
Java: t.me/javatg
Linux: t.me/+A8jY79rcyKJlYWY6
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Big Data: t.me/bigdatai
Тестирование:https://yangx.top/+F9jPLmMFqq1kNTMy
Аналитика данных: https://yangx.top/+mAXY9ppJwitkMDBi
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
ИИ: t.me/vistehno
Книги по искусственному интеллекту
💼 Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка Java разработчика: https://yangx.top/addlist/ZM3J6oFNAnRlNWU6
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
⚡️ 20 сайтов, на которых можно найти удаленную работу с оплатой в долларах США
1. Remote. co: https://remote.co
2. We Work Remotely: https://weworkremotely.com
3. FlexJobs: https://flexjobs.com
4. Remote OK: https://remoteok.io
5. Working Nomads: https://workingnomads.co/jobs
6. Jobspresso: https://jobspresso.co
7. Stack Overflow Jobs: https://stackoverflow.com/jobs
8. AngelList: https://angel.co
9. LinkedIn: https://linkedin.com
10. SkipTheDrive: https://skipthedrive.com
11. Remotive: https://remotive.io
12. Виртуальные профессии: https://virtualvocations.com
13. JustRemote: https://justremote.co
14. Удаленная техническая работа: https://remotetechwork.com
15. Dynamite Jobs: https://dynamitejobs.co
16. Pangian: https://pangian.com
17. Outsourcely: https://outsourcely.com
18. Remote Woman: https://remotewoman.com
19. Jobmote: https://jobmote.com
20. EuropeRemotely: https://europeremotely.com
@golang_interview
1. Remote. co: https://remote.co
2. We Work Remotely: https://weworkremotely.com
3. FlexJobs: https://flexjobs.com
4. Remote OK: https://remoteok.io
5. Working Nomads: https://workingnomads.co/jobs
6. Jobspresso: https://jobspresso.co
7. Stack Overflow Jobs: https://stackoverflow.com/jobs
8. AngelList: https://angel.co
9. LinkedIn: https://linkedin.com
10. SkipTheDrive: https://skipthedrive.com
11. Remotive: https://remotive.io
12. Виртуальные профессии: https://virtualvocations.com
13. JustRemote: https://justremote.co
14. Удаленная техническая работа: https://remotetechwork.com
15. Dynamite Jobs: https://dynamitejobs.co
16. Pangian: https://pangian.com
17. Outsourcely: https://outsourcely.com
18. Remote Woman: https://remotewoman.com
19. Jobmote: https://jobmote.com
20. EuropeRemotely: https://europeremotely.com
@golang_interview
Интересно как это можно было бы решить более оптимально:
Назовем натуральное число "особым", если все его цифры различны.
Для заданного положительного целого числа n верните количество особых целых чисел, принадлежащих интервалу [1, n].
Пример
Аргумент: n = 20
Вывод: 19
Обьяснение: Все числа от 1 до 20, кроме 11, являются особыми.
Таким образом, существует 19 особых целых чисел.
Ограничения
1 <= n <= 2 * 10^9
Мое решение на битовых операциях не очень оптимальным получилось: https://go.dev/play/p/bf_JqAV9YC8, есть идея еще добавить словарик для прогнанных значений
Пишите свое решение в комментариях👇
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
📌Максимальное среднее подмассива
Сложность: Easy
Условие задачи: Дан целочисленный массив nums, состоящий из n элементов и целого числа k.
Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.
Пример:
Ввод: nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000
Объяснение:
Ввод: nums = [5], k = 1
Вывод: 5.00000
Решение
@golang_interview
Сложность: Easy
Условие задачи: Дан целочисленный массив nums, состоящий из n элементов и целого числа k.
Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.
Пример:
Ввод: nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000
Объяснение:
Ввод: nums = [5], k = 1
Вывод: 5.00000
Решение
@golang_interview
🥳 Выпущены версии Go 1.21.4 и 1.20.11!
🔐 Безопасность: Включены исправления безопасности для path/filepath (CVE-2023-45283, CVE-2023-45284).
🗣 Анонс: https://groups.google.com/g/golang-announce/c/4tU8LZfBFkY
🗃 Скачать: https://go.dev/dl/#go1.21.4
@golang_interview
🔐 Безопасность: Включены исправления безопасности для path/filepath (CVE-2023-45283, CVE-2023-45284).
🗣 Анонс: https://groups.google.com/g/golang-announce/c/4tU8LZfBFkY
🗃 Скачать: https://go.dev/dl/#go1.21.4
@golang_interview
Немного расширенный функционал Mutex в грядущем пакете "go101․org/nstd".
vs
#Golang
@golang_interview
m.Lock()
defer m.Unlock()
vs
defer m.Lock().Unlock()
https://github.com/golang/go/issues/63941
#Golang
@golang_interview
tg_image_1191967053.jpeg
342.3 KB
Как разрабатывать эффективные и безопасные API?
На схеме показаны типовые конструкции API на примере корзины товаров.
@golang_interview
На схеме показаны типовые конструкции API на примере корзины товаров.
@golang_interview
Будет ли в 2023 году больше или меньше звезд, чем в предыдущем? (на данный момент 2 610 110).
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: дана 2-мерная матрица чисел, в которой числа упорядочены по возрастанию сверху-вниз и слева-направо. Надо определить, есть ли в матрице целевое значение.
Пример:
Ввод: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
Вывод: True
Ввод: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
Вывод: Fasle
Решение
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Балансировщики нагрузки буквально в 100 раз лучше, чем старый добрый светофор.
Они могут обрабатывать миллионы входящих запросов, распределять трафик между серверами и вообще поддерживать бесперебойную работу при минимальной настройке.
Почему?
Потому что балансировщики нагрузки могут использовать некоторые действительно мощные алгоритмы на лету.
В общем случае существует две категории таких алгоритмов:
✅ Статические
✅ Динамический
- Наименьшее количество соединений
- Наименьшее время отклика
Рассмотрим каждый алгоритм чуть более подробно
👉 Round Robin
- Запросы последовательно распределяются между группой серверов.
- Нет гарантии, что несколько запросов от пользователя попадут к одному и тому же экземпляру.
👉Sticky Round Robin
- Лучшая альтернатива round-robin
- Различные запросы от одного и того же пользователя поступают на один и тот же эндпоинт.
👉 Hash-Based
- Алгоритм распределяет запросы на основе хэша значения ключа.
- В качестве ключа может выступать IP-адрес или URL-адрес запроса
👉 Weighted Round Robin
- Каждый сервер получает значение веса.
- Это значение определяет долю трафика.
- Серверы с большим весом получают больше трафика. Хорошо подходит для систем с серверами разной мощности
👉 Наименьшее количество соединений
- Новый запрос отправляется на тот экземпляр сервера, который имеет наименьшее количество соединений.
- Количество подключений определяется исходя из относительной вычислительной мощности сервера
👉 Наименьшее время отклика
- Новый запрос отправляется на сервер с наименьшим временем отклика, чтобы минимизировать общее время отклика.
- Хорошо подходит для случаев, когда время отклика критично.
Протестируйте балансировку нагрузки телеграм с помощью кнопки LIKE👍.
@golang_interview
Они могут обрабатывать миллионы входящих запросов, распределять трафик между серверами и вообще поддерживать бесперебойную работу при минимальной настройке.
Почему?
Потому что балансировщики нагрузки могут использовать некоторые действительно мощные алгоритмы на лету.
В общем случае существует две категории таких алгоритмов:
✅ Статические
- Round Robin
- Sticky Round Robin
- Хэш
- Weighted Round Robin
✅ Динамический
- Наименьшее количество соединений
- Наименьшее время отклика
Рассмотрим каждый алгоритм чуть более подробно
👉 Round Robin
- Запросы последовательно распределяются между группой серверов.
- Нет гарантии, что несколько запросов от пользователя попадут к одному и тому же экземпляру.
👉Sticky Round Robin
- Лучшая альтернатива round-robin
- Различные запросы от одного и того же пользователя поступают на один и тот же эндпоинт.
👉 Hash-Based
- Алгоритм распределяет запросы на основе хэша значения ключа.
- В качестве ключа может выступать IP-адрес или URL-адрес запроса
👉 Weighted Round Robin
- Каждый сервер получает значение веса.
- Это значение определяет долю трафика.
- Серверы с большим весом получают больше трафика. Хорошо подходит для систем с серверами разной мощности
👉 Наименьшее количество соединений
- Новый запрос отправляется на тот экземпляр сервера, который имеет наименьшее количество соединений.
- Количество подключений определяется исходя из относительной вычислительной мощности сервера
👉 Наименьшее время отклика
- Новый запрос отправляется на сервер с наименьшим временем отклика, чтобы минимизировать общее время отклика.
- Хорошо подходит для случаев, когда время отклика критично.
Протестируйте балансировку нагрузки телеграм с помощью кнопки LIKE👍.
@golang_interview
В этой статье проиллюстрирована попытка определить схему подключения программ на языке Go.
Описаны довольно интересные внутренние особенности языка, реализация хука с помощью Си и ассемблера. Однако все управление осуществялется с помощью Go. Решение довольно универсальное его можно адаптировать к различным платформам и архитектурам процессоров.
https://blog.quarkslab.com/lets-go-into-the-rabbit-hole-part-1-the-challenges-of-dynamically-hooking-golang-program.html
#golang #infosec
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: Дано целое число, нужно переконвертировать данное число в сумму, слагаемых должно быть не менее двух. А само разложение должно осуществляться таким образом, что произведение слагаемых будет максимальным.
В результате необходимо получить это самое произведение.
Пример:
Ввод:
n = 2
Вывод:
1
Объяснение:
2 = 1 + 1, 1 × 1 = 1.
Ввод:
n = 10
Вывод:
36
Объяснение:
10 = 3 + 3 + 4, 3 × 3 × 4 = 36.
📌 Решение
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Текущий официальный стандартный компилятор Go по-прежнему делает много ненужных проверок на связанность.
Все связанные проверки в следующем коде фактически не нужны, можете объяснить почему ?: https://github.com/golang/go/issues/64272
@golang_interview
Все связанные проверки в следующем коде фактически не нужны, можете объяснить почему ?: https://github.com/golang/go/issues/64272
@golang_interview
Сложность: Средняя
Условие задачи: На входе имеем список возможных кандидатов и целевое значение суммы, необходимо вывести все комбинации, которыми можно получить целевое значение.
Каждое число из списка кандидатов должно содержаться в конечном подсписке из ответов ровно один раз.
Результирующий ответ не должен содержать в себе дубликатов.
Пример:
Ввод:
candidates = [10,1,2,7,6,1,5], target = 8
Вывод:
[
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]
Ввод:
candidates = [2,5,2,1,2], target = 5
Вывод:
[
[1,2,2],
[5]
]
Пишите свое решение в комментариях👇
🔗 Решение
Please open Telegram to view this post
VIEW IN TELEGRAM
https://github.com/miketromba/highest-paying-software-companies
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🔧 12 инструментов аутентификации с открытым исходным кодом, которые помогут вам создавать лучшие приложения, некоторые из них написаны на golang
https://permit.io/blog/top-12-open-source-auth-tools
@golang_interview
https://permit.io/blog/top-12-open-source-auth-tools
@golang_interview
💡Задача: Идеальное число
Условие: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.
Необходимо проверить входное число на идеальность.
Пример:
Ввод: num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14
Ввод: num = 7
Вывод: false
👉 Решение
Пишите свое решение в комментариях👇
@golang_interview
Условие: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.
Необходимо проверить входное число на идеальность.
Пример:
Ввод: num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14
Ввод: num = 7
Вывод: false
Пишите свое решение в комментариях👇
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Условие: дается ненаправленный граф, ребра которого представлены в массиве. Между каждой парой узлов в дереве имеется не более одного ребра.
Необходимо определить существует ли корректная дорога между узлом source и destination.
Пример:
Ввод: n = 3, edges = [[0,1],[1,2],[2,0]], source = 0, destination = 2
Вывод: true
Объяснение: *во вложении
Ввод: n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5
Вывод: false
📌 Решение
Пишите свое решение в комментариях👇
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM