Что выведет код?
numbers := []*int{}
for _, value := range []int{1, 2, 3, 4, 5} {
numbers = append(numbers, &value)
}
for _, value := range numbers {
fmt.Println(*value)
}
Ответgo.dev
Go Playground - The Go Programming Language
👍9
Что выведет код ?
package main
import "fmt"
func sum(a, b any) any {
return a + b
}
func main() {
fmt.Println(sum(2, 3))
}
Ответ🤔5❤1
📌 Задача с leetcode. Max Area of Island
Максимальная площадь острова
Сложность: Средняя
Условие задачи:
Дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Необходимо опеределить максмимальную площадь острова из островов, расположенных на карте.
Островом считается территория, образованная из "1", расположенных сверху, справа, снизу и слева относительно друг друга.
Пример:
Ввод: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
Вывод: 6
Ввод: grid = [[0,0,0,0,0,0,0,0]]
Вывод: 0
Решение
Максимальная площадь острова
Сложность: Средняя
Условие задачи:
Дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Необходимо опеределить максмимальную площадь острова из островов, расположенных на карте.
Островом считается территория, образованная из "1", расположенных сверху, справа, снизу и слева относительно друг друга.
Пример:
Ввод: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
Вывод: 6
Ввод: grid = [[0,0,0,0,0,0,0,0]]
Вывод: 0
Решение
func maxAreaOfIsland(grid [][]int) int {
rows := len(grid)
if rows == 0 {
return 0
}
cols := len(grid[0])
var dfs func(grid [][]int, x, y, r, c, area int) int
dfs = func(grid [][]int, x, y, r, c, area int) int {
if x < 0 || y < 0 || x >= r || y >= c || grid[x][y] != 1 {
return area
}
grid[x][y] = 2
return 1 + dfs(grid, x+1, y, r, c, area) + dfs(grid, x, y+1, r, c, area) + dfs(grid, x-1, y, r, c, area) + dfs(grid, x, y-1, r, c, area)
}
maxArea := 0
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
area := dfs(grid, i, j, rows, cols, 0)
maxArea = int(math.Max(float64(area), float64(maxArea)))
}
}
return maxArea
}
Временная сложность: O(N*M)
Пространственная сложность: O(1)
Пишите свое решение в комментариях👇👍8❤5
🔐 Безопасность цепочки поставок: серия статей от Google для Go-разработчика
По мере усложнения проектов корпоративным разработчикам приходится справляться с огромной волной уязвимостей, распространяющихся по деревьям зависимостей.
Разработчикам открытого ПО необходимы эффективные способы проверки кода, зависимостей и защиты своих проектов. Рост числа атак в сочетании с усложняющимися цепочками поставок означает, что проблемы безопасности цепочек поставок требуют решения на уровне экосистем.
С помощью Golang разработчики меняют ландшафт безопасности цепочки поставок, исправляя основу — сам язык. От внедрения OSV до обширной информации о пакетах, курируемой информации об уязвимостях.
Это серия статей о том, как разработчики и предприятия могут защитить свои цепочки поставок программного обеспечения к с помощью Go.
▪️ Vulnerability management
▪️ Compromised dependencies
▪️ Shifting left
По мере усложнения проектов корпоративным разработчикам приходится справляться с огромной волной уязвимостей, распространяющихся по деревьям зависимостей.
Разработчикам открытого ПО необходимы эффективные способы проверки кода, зависимостей и защиты своих проектов. Рост числа атак в сочетании с усложняющимися цепочками поставок означает, что проблемы безопасности цепочек поставок требуют решения на уровне экосистем.
С помощью Golang разработчики меняют ландшафт безопасности цепочки поставок, исправляя основу — сам язык. От внедрения OSV до обширной информации о пакетах, курируемой информации об уязвимостях.
Это серия статей о том, как разработчики и предприятия могут защитить свои цепочки поставок программного обеспечения к с помощью Go.
▪️ Vulnerability management
▪️ Compromised dependencies
▪️ Shifting left
Ускорить работу с данными на Go, но избежать эффекта гонок? В этом помогут примитивы синхронизации.
В новом выпуске avito.code бэкендер Авито Виталий Лихачёв рассказывает, как они работают и, в частности, какой есть альтернативный способ их реализации.
А ещё в этом выпуске Виталий рассмотрел сразу несколько паттернов параллельных вычислений.
Словом, видео, которое нельзя пропустить.
Реклама. ООО «Авито Тех».
В новом выпуске avito.code бэкендер Авито Виталий Лихачёв рассказывает, как они работают и, в частности, какой есть альтернативный способ их реализации.
А ещё в этом выпуске Виталий рассмотрел сразу несколько паттернов параллельных вычислений.
Словом, видео, которое нельзя пропустить.
Реклама. ООО «Авито Тех».
YouTube
Паттерны параллельных вычислений в Golang | avito.code
Привет! Это avito.code. Здесь опытные инженеры Авито делятся знаниями и рассказывают про свои рабочие инструменты.
В этом выпуске Виталий Лихачёв https://www.youtube.com/@makeitgit, бэкенд-инженер в команде Authorization Tiger Team, продолжает рассказывать…
В этом выпуске Виталий Лихачёв https://www.youtube.com/@makeitgit, бэкенд-инженер в команде Authorization Tiger Team, продолжает рассказывать…
❤2👍2
Язык программирования Go
Авторы: Алан А. А. Донован, Брайан У. Керниган
Год издания: 2019
#go #ru
Скачать книгу
Авторы: Алан А. А. Донован, Брайан У. Керниган
Год издания: 2019
#go #ru
Скачать книгу
👍16👎4
Что выведет код ?
package main
import (
"fmt"
)
func main() {
var i interface{}
if i == nil {
fmt.Println("nil")
return
}
fmt.Println("not nil")
}
Ответ👍8👎3🤯1🤬1
Готовимся к собеседованиям по Go и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код
Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код
🤡3👍2💩1
Go module proxy at Grab
Интересная статья о повышении скорости использования модулей Go с помощью прокси.
💎 Чат: ссылка
Читать статью
Интересная статья о повышении скорости использования модулей Go с помощью прокси.
💎 Чат: ссылка
Читать статью
📌 Задача палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв.
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
Объяснение:
Ввод:
Объяснение:
Ввод:
Решение
Пишите свое решение в комментариях👇
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
words = ["lc","cl","gg"]
Вывод: 6
Объяснение:
lc" + "gg" + "cl" = "lcggcl"
или же "clgglc
", но оба имеют максимальную длину 6. Ввод:
words = ["ab","ty","yt","lc","cl","ab"]
Вывод: 8
Объяснение:
"ty" + "lc" + "cl" + "yt" = "tylcclyt"
или "lcyttycl"
Ввод:
words = ["cc","ll","xx"]
Вывод: 2
Решение
Пишите свое решение в комментариях👇
👎4👍3❤2🔥1
Погружение в принципы SOLID с примерами на языке Golang
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
👍6🔥2
Chisel
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
$ go install github.com/jpillora/chisel@latest
💎 Чат: ссылка
Github👍4
Что выведет код ?
package main
import (
"fmt"
)
func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}
Ответ👍2👎2
Что выведет код?
package main
import "fmt"
func main() {
for t := 0; t < 10; t++ {
for i := 0; i < 10; i++ {
fmt.Print("*")
}
fmt.Println()
}
}
Ответ🤯16💩4🔥1🖕1
The Ultimate Guide
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
👍1
Что выведет код ?
Ответ
package main
import "fmt"
func foo(a []int) {
a = append(a, 7)
a[1] = 7
}
func bar(a *[]int) {
*a = append(*a, 7)
}
func main() {
a := []int{1, 2, 3, 4, 5, 6}
fmt.Printf("a[1]=%d\n", a[1])
b := a[1:3]
b[0] = 10
fmt.Printf("1. a[1]=%d\n", a[1]) // что выведет?
b = append(b, a...)
b[0] = 100
fmt.Printf("2. a[1]=%d\n", a[1]) // что выведет?
foo(a)
fmt.Printf("3. a[1]=%d\n", a[1]) // что выведет?
bar(&a)
fmt.Printf("4. a=%v\n", a) // что выведет?
}
Ответ
go.dev
Go Playground - The Go Programming Language