Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
362 - Telegram Web
Telegram Web
Что выведет код?

numbers := []*int{}

for _, value := range []int{1, 2, 3, 4, 5} {
numbers = append(numbers, &value)
}

for _, value := range numbers {
fmt.Println(*value)
}

Ответ
👍9
Что выведет код ?

package main

import "fmt"

func sum(a, b any) any {
return a + b
}

func main() {
fmt.Println(sum(2, 3))
}

Ответ
🤔51
📌 Задача с 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

Решение

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)

Пишите свое решение в комментариях👇
👍85
🔐 Безопасность цепочки поставок: серия статей от Google для Go-разработчика

По мере усложнения проектов корпоративным разработчикам приходится справляться с огромной волной уязвимостей, распространяющихся по деревьям зависимостей.

Разработчикам открытого ПО необходимы эффективные способы проверки кода, зависимостей и защиты своих проектов. Рост числа атак в сочетании с усложняющимися цепочками поставок означает, что проблемы безопасности цепочек поставок требуют решения на уровне экосистем.

С помощью Golang разработчики меняют ландшафт безопасности цепочки поставок, исправляя основу — сам язык. От внедрения OSV до обширной информации о пакетах, курируемой информации об уязвимостях.

Это серия статей о том, как разработчики и предприятия могут защитить свои цепочки поставок программного обеспечения к с помощью Go.

▪️ Vulnerability management
▪️ Compromised dependencies
▪️ Shifting left
Ускорить работу с данными на Go, но избежать эффекта гонок? В этом помогут примитивы синхронизации.

В новом выпуске avito.code бэкендер Авито Виталий Лихачёв рассказывает, как они работают и, в частности, какой есть альтернативный способ их реализации.

А ещё в этом выпуске Виталий рассмотрел сразу несколько паттернов параллельных вычислений.
Словом, видео, которое нельзя пропустить.

Реклама. ООО «Авито Тех».
2👍2
Язык программирования Go

Авторы:
Алан А. А. Донован, Брайан У. Керниган
Год издания: 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 — тут решаем задачи, проходим тесты и изучаем код
🤡3👍2💩1
Go module proxy at Grab

Интересная статья о повышении скорости использования модулей Go с помощью прокси.

💎 Чат: ссылка

Читать статью
Hands-On High Performance with Go

Автор:
Bob Strecansky
Год издания: 2020

#go #en

Скачать книгу
👍2💩21
📌 Задача палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв.

Сложность: Средняя

Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.

Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.

В ответе надо вернуть длину такого палидрома.

Палиндром - строка, которая одинаково читаются слева направо и справа налево.

Пример:

Ввод:
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👍32🔥1
Teamgram

Self hosted mtproto messenger.

Mtproto cервер с открытым исходным кодом, написанный на Go, который совместим с клиентом Telegram.

💎 Чат: ссылка

▪️Github
▪️Teamgram
😱4👍2
Погружение в принципы SOLID с примерами на языке Golang

Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.

💎 Чат: ссылка

Читать статью
👍6🔥2
Chisel

Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.

$ go install github.com/jpillora/chisel@latest

💎 Чат: ссылка

Github
👍4
Full-Stack Web Development with Go

Автор:
Nanik Tolaram
Год издания: 2023

#go #en

Скачать книгу
👍4
Что выведет код ?

package main

import (
"fmt"
)

func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}

Ответ
👍2👎2
Go Optimizations 101

Автор:
Tapir Liu
Год издания: 2022

#go #en

Скачать книгу
Что выведет код?

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

Скачать книгу
👍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) // что выведет?
}


Ответ
2025/07/09 10:21:33
Back to Top
HTML Embed Code: