Sobes.tech

Golang

İndiyə işləyirsiniz və ya yox, və hansı formatda: ofis, hibrid, uzaqdan?

246

Algoritmin vaxt və yaddaş mürəkkəbliyi nədir?

244

/* Biz manbadan ma'lumotlarni iste'molchiga uzatishimiz kerak. Manba kichik partiyalar (~o'n yozuv) bilan ma'lumotlarni taqdim etadi, iste'molch esa katta partiyalar bilan samaraliroq ishlaydi. Haqiqiy misol - Kafka turidagi navbatlardan Clickhouse bazasiga ma'lumot uzatish. Manba: - deyarli cheksiz. - Manba har doim Next chaqiruvida MaxItems dan ko'p yozuvlarni qaytarmaydi. - Bir "sessiya" (bir Pipe funksiyasi chaqiruvi) davomida, manba har Next chaqiruvida yangi ma'lumotlarni qaytaradi. - Biroq, qayta ishga tushirilgandan so'ng, manba avvalgi "tasdiqlangan" pozitsiyadan, cookie bilan belgilangan joydan boshlanadi. Shuning uchun, har bir cookie qiymati, Next qaytarib bergandan so'ng, ma'lumotlar qabul qiluvchiga saqlangandan keyin, Commit chaqiruvi bilan tasdiqlanishi kerak, va ular Next tomonidan qaytarilgan tartibda bo'lishi shart. Qabul qiluvchi: - Bir vaqtning o'zida MaxItems'tan ko'p ishlov berolmaydi. Asosiy daraja: Kerak bo'lsa, func Pipe(p Producer, c Consumer) error funksiyasini amalga oshiring, bu funktsiya manbadan ma'lumotlarni o'qiydi, ularni MaxItems o'lchamdagi bufferga guruhlaydi va qabul qiluvchiga saqlaydi, so'ngra manbada progressni tasdiqlaydi. */ const MaxItems = 9999 type Producer interface { // Next,: // - ishlov beriladigan elementlar paketlari qaytaradi // - tasdiqlash uchun cookie // - xato Next() (items []any, cookie int, err error) // Commit, ma'lumotlar partiyasini ishlov berilgan deb belgilash uchun ishlatiladi Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

242

Son layihədə işinizi qiymətləndirmək üçün hansı göstəriciləri istifadə etdiniz?

Junior — Middle
242

İstifadəçi identifikasiyası və icazə sistemlərinin tətbiqi və konfiqurasiyası sahəsində təcrübəniz nədir?

Junior — Middle
240

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) n := len(s) for right := 0; right < n; right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }

240

L4 və L7 yük balanslayıcısı arasındakı fərq nədir?

239

""" Kino yerləri tək sırada yerləşir. Yeni gələn tamaşaçı yer seçir, ki, sıradakı digər tamaşaçılardan mümkün olan ən uzaqda otursun. Yəni, oturacaqdan, haraya oturacaqsa, ən yaxın tamaşaçıya olan məsafə maksimum olmalıdır. Həmişə boş yerlərin olduğunu və ən azı bir tamaşaçının oturduğunu təmin edir. Verilən yer sırası (sıfırlar və birlərdən ibarət massiv) üçün, seçilmiş yer ilə ən yaxın tamaşaçı arasındakı məsafəni (aralarındakı boşluqların sayı) qaytaran funksiya yazın. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }

239

""" Kinozaldagi joylar bir qator bo'lib joylashgan. Yangi kelgan tomoshabin o'z joyini tanlaydi, qolgan tomoshabinlardan maksimal uzoqlikda o'tirish uchun. Ya'ni, u joydan, eng yaqin tomoshabinga bo'lgan masofa maksimal bo'lishi kerak. Har doim bo'sh joylar borligi va kamida bitta tomoshabin o'tirganligi kafolatlangan. Berilgan joylar qatorida (nol va birlardan iborat) tanlangan joydan eng yaqin tomoshabinga bo'lgan masofani (o'rindiqlar orasidagi bo'sh joylar soni) qaytaradigan funktsiya yozing. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """

237

/* * Tam tam ədədlər massiv və X ədədi verilir, * ən uzun boş olmayan alt massiv tapılmalıdır ki, onun minimumu X olsun. * Belə alt massiv uzunluğunu və ya -1 qaytarın, əgər belə alt massiv yoxdursa. */

236

Texniki müsahibə üçün hansı layihəni seçmək və necə təsvir etmək olar?

234

Map verilənlər struktüründə açar ilə element əlavə etmə əməliyyatının icra vaxtı necə müəyyən edilir?

Junior — Middle
233

Map məlumatlar strukturu daxilində elementin unikal olduğunu vizual və ya algoritmik şəkildə necə müəyyən etmək olar?

Junior — Middle
231

Məlumatların yazılması zamanı saniyəlik sorğu göstəricisi nə idi?

Junior — Middle
230

// İki tam ədəd massivləri üçün uzunluğu N, // 1-dən N-ə qədər olan bütün K üçün, K uzunluğundakı önlüklərdəki ümumi ədədlərin sayını hesablayın. // Massivdəki ədədlər təkrarlana bilər, kəsişmə çoxluqları nəzərə alınmadan hesablanır. // A massivinin K uzunluğundakı önlükləri, A massivinin ilk K elementidir // A [1, 1] => [1], [1, 1] // B [1, 1] => [1], [1, 1] // R [1, 1] // [1, 2, 5] => [1], [1, 2], [1, 2, 5] // [1, 5, 4] => [1], [1, 5], [1, 5, 4] // [1, 1, 2]

228

Niyə iki yoxlama if (sətir 79-də və len(buf)==MaxItems olan sətirdə) lazımdır, bir deyil?

228

[ad] göstərdi: 20-ci sətirdə uniq unikal simvolların sayını deyil, başqa bir şeyi ehtiva edir. Dəqiq nədir?

227

// Verilənlər iki sıralanmış ardıcıllıqdır və artan qaydada yerləşir. // Birinci ardıcıllıqda olan, lakin ikinci ardıcıllıqda olmayan bütün elementləri geri qaytarın. // 0 <= N <= 10^6 // -10^9 <= a[i] <= 10^9 // [1] // [2, 3, 4, 5, 6] // [1] // [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...] // [1] // [2, 3, 4, 5, 6, 7, 8] func filter(first []int, second []int) []int { res := make([]int, 0, len(first)) i, j := 0, 0 for i < len(first) && j < len(second) { if first[i] < second[j] { result = append(result, first[i]) i++ } else if first[i] > second[j] { j++ } else { i++ j++ } } for i < len(first) { result = append(result, first[i]) i++ } return result }

226

İmza atdığınız ən çətin və maraqlı vəzifə haqqında, xüsusən memarlıq təcrübəsi ilə əlaqədar, danışın.

225

Slayd pəncərə alqoritmində pəncərə necə hərəkət etdirilir?

225
/11