Забонҳои барномасозии дигаре, ки ба ғайр аз Go истифода мебаред, кадомҳоянд?
Golang
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
Сохтороти алгоритм дар вақти ва ёдгирӣ чӣ гуна аст?
Боби алгоритмӣ: ду вазифаи сатҳи Medium ё баландтар дар LeetCode. Вақт — 1,5 соат барои ду вазифа.
Оё ҳозир кор мекунед ё не, ва дар кадом формат: идора, гибрид, дур?
/* Морате пренети податке из извора одређеном потрошачу. При томе извор испоручује податке у малим пакетићима (~ десетине записа), а потрошач ради ефикасније са већим батчевима. Реалан пример - испорука података из редова типа Kafka у базу података Clickhouse. Извор: - Условно бесконачан. - Извор никада не враћа више од MaxItems записа у једном позиву Next. - У оквиру једне "сесије" (једног позива функције Pipe), извор сваки пут враћа нове податке за сваки позив Next. - Међутим, након поновног покретања, извор почиње од претходне "потврђене" позиције, одређене cookie-јем. Стога, *свака* вредност cookie-а коју је вратио позив Next, након чувања података у примаоцу, мора бити фиксирана позивом Commit, и то строго у истом редоследу у којем су враћени од стране Next. Прималац: - Не може обрадити више од MaxItems у једном кораку. Основни ниво: Потребно је реализовати функцију func Pipe(p Producer, c Consumer) error која чита податке из извора, групише их у буфер величине не већој од MaxItems и чува у примаоца, након чега фиксира напредак у извору. */ const MaxItems = 9999 type Producer interface { // Next враћа: // - пакет ставки за обраду // - cookie за потврду када је обрада завршена // - грешку Next() (items []any, cookie int, err error) // Commit се користи за означавање пакета података као обрађеног 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 }
Фарқи байни балансгари L4 ва L7 чист?
Кадом нишондиҳандаҳои самаранокиро барои арзёбии кори худ дар охирин лоиҳа истифода бурдед?
""" Кинотеатрдаги ўринлар бир қаторда жойлашган. Яна келган томошабин ўрнига танлайди, қолган томошабинлардан максимал қашықликда ўтириш учун. Яъни, у ўриндан, эн яқин томошабинга бўлган масофа максимал бўлиши керак. Гарант қилинади, ҳар доим бўш ўринлар бор ва энг камида бир томошабин ўтирган. Берилган ўринлар қатори (ноллар ва бирлар массиви) бўйича, танланган ўриндан энг яқин томошабинга бўлган масофани (ўринлар орасидаги бўшликлар сони) қайтарувчи функция ёзинг. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """
/* * Додани массив целых чисел и число X, * необходимо найти самый длинный непустой подотрезок, минимум которого равен X. * Верните длину такого подотрезка или -1, если таких нет. */
Чӣ гуна тестҳо дар гурӯҳ ташкил шудаанд — кӣ чӣ менависад, кадом фароравӣ, оё E2E вуҷуд дорад?
Чӣ тавр ба таври визуалӣ ё алгоритмӣ муайян кардан мумкин аст, ки унсур дар сохтори додаҳои Map беназир аст?
Вақти иҷрои амалиёти илова кардани унсур бо калид дар структураи додаҳои Map чӣ гуна муайян карда мешавад?
Кадом лоиҳаро барои мусоҳибаи техникӣ интихоб кардан ва чӣ гуна тавсиф кардан лозим аст?
Кадом нишондиҳандаи шумораи амалҳо дар сония дар вақти хондани маълумотҳо ба даст оварда ё таҳлил кардаед?
[ном] нишон дод: дар хатти 20, uniq миқдори аломатҳои беназириро намеорад, балки чизе дигар. Тақрибан чӣ?
Кадом нишондиҳандаи дархост дар сония ҳангоми навиштани маълумот ба даст омад?
Чаро дуо санҷиши if лозим аст (дар хатти 79 ва дар хатти бо len(buf)==MaxItems), ба ҷои як?
// Барои ду массиви ададҳои бутун дарозии N, // барои ҳама K аз 1 то N, шумораи шумораҳои умумиро дар пешфиксҳои дарозии K ҳисоб кунед. // Ададҳо дар массив метавонанд такрор шаванд, катиҷро бе баррасии такрорҳо ҳисоб мекунад. // Пешфикси дарозии K аз массив A — ин аввалин K унсурҳои массив A мебошанд // 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]
// Дадёны дзве сартаваных у парадку неубывання паслядоўнасці цэлых лікаў. // Неабходна вярнуць усе элементы з першай паслядоўнасці, якіх няма ў другой. // 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 }