// Երկու ամբողջ թվերի զանգվածների համար երկարությամբ N, // համարեք բոլոր K-ների համար, 1-ից N-ով, համատեղ թվերի քանակը երկարությամբ K նախածանցներում: // Մասիվում թվերը կարող են կրկնվել, հատման հաշվարկը կատարվում է առանց բազմապատկությունների նկատառման: // A զանգվածի K երկարությամբ նախածանցը այն առաջին 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]
Golang
Ինչպես է աշխատում WebSocket կապը ճարտարապետությունում — երբ է այն հաստատվում և ով ովի հետ շփվում է?
Ի՞նչ խնդիր կա աշխատողի (tasksRes[t.id][task{...}]) քարտայի արդիականացման ներկայիս իրականացման հետ:
Ինչպես շարժել պատուհանը սլայդ վինդո ալգորիթմում?
// Տվյալ են երկու դասավորված հաջորդականություններ ամբողջ թվերի՝ աճող կարգով: // Պետք է վերադարձնել առաջին հաջորդականության բոլոր այն տարրերը, որոնք չեն երկրորդում: // 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 }
Պատմեք ամենաբարդ և հետաքրքիր գործի մասին, որը դուք լուծել եք, հատկապես ճարտարապետական փորձի մասին։
Կա՞ն ձեր այլ ակտիվ հարցազրույցի գործընթացներ։
Ֆունկցիա, որը ընդունում է երկու կարգավորված ամբողջ թվերի հաջորդականություններ։ Պետք է վերադարձնել առաջին հաջորդականությունից բոլոր այն տարրերը, որոնք երկրորդում չկան։ Ինչպե՞ս մոտենաք լուծմանը և ինչ է բարդությունը։
Կարող եք նշել ձեր ներկայիս եկամտի մակարդակը՞
Դու հիմա Մոսկվայում ես ապրում? Որ քաղաքը դիտարկում ես? Դու հիբրիդային աշխատանքային ձևաչափը դիտարկո՞ւմ ես: Որքան փուլում ես որոնման?
[անուն] ցույց տվեց հիշողության գնահատման անհամապատասխանությունը՝ հայտարարեց մի բան, գրեց ուրիշը։ Ինչպե՞ս ճիշտ գնահատել հիշողությունը։
Ինչպես են այս մետրիկ տվյալները ինտեգրվում և ցուցադրվում Grafana-ում?
Մասշտաբային հաղորդագրության համակարգի նախագծում, որը աջակցում է 150 միլիոն օգտվողի, 75 միլիոն DAU, 225 միլիոն MAU, 1.2 միլիոն ընթերցում / 300k գրառում QPS, 5 միլիոն միաժամանակյա օգտվող, 60 PB նոր տվյալներ տարեկան, տարեկան աճ 30%, P99 <200 միլիսեկունդ ընթերցման համար, <300 միլիսեկունդ գրելու համար, SLA 99.95%: ԿԵՆՏԱԿՍ Պետք է նախագծել տարածված հաղորդագրության համակարգ, նման WhatsApp-ին, որը աջակցում է 1:1 և խմբային զրույցներ, ապահովում է հաղորդագրությունների առաքումը, օգտվողների առցանց վիճակների ցուցադրումը և բազմամեդիա ֆայլերի փոխանցումը (նկարներ, տեսանյութեր, ձայն): Համակարգը պետք է ապահովի բարձր հասանելիություն և ցածր ուշացում, աջակցի բարձր համաժամանակություն և գլոբալ մակարդակով ընդլայնվի: Ֆունկցիոնալ պահանջներ - Աջակցություն անձնական (1:1) և խմբային զրույցների, մասնակցիներ ավելացնելու/հանելու հնարավորությամբ - Տեքստային հաղորդագրությունների և բազմամեդիա ֆայլերի ուղարկում և ստացում Նեֆունկցիոնալ պահանջներ - Չկա հստակ end-to-end կոդավորումը ծառայությունների կամ հաճախորդների մակարդակով, բացի ընդհանուր նշումից: - Չկա հստակ նկարագրություն sharding և ռեպլիկացիայի մասին chat_id կամ user_id-ի համար՝ ընդլայնելիության և սխալների դիմացկունության համար: - Չկա հստակ բաղադրիչ կամ մեխանիզմ offline հաղորդագրությունների սինխրոնիզացիայի և առաքման մասին: - Չի պարզ, թե ինչպես է կատարվում բեռի հավասարակշռությունը տվյալների բազաների և ծառայությունների միջև, հատկապես գագաթնակետային բեռների ժամանակ: **Կարևոր կետեր, որոնք պետք է հաշվի առնեն:** (Արքիտեկտուրայի դիագրամը ցույց է տալիս Load Balancer, API Gateway, Message Queue, Service, Cache, Database, Object Storage և CDN)
Դու ունե՞ս գործող GitHub կամ LinkedIn։
Ի վերջո աշխատած թիմի կազմը ինչ էր?
Ի՞նչ էր առավելագույն քանակը հարցումների վայրկյանում ամենաբարձր ծանրաբեռնված ծառայությունում:
Մասին՝ 150 միլիոն օգտվողների աջակցությամբ, 75 միլիոն DAU, 225 միլիոն MAU, 1.2M ընթերցում / 300k գրառումներ բարձր QPS, 5 միլիոն միաժամանակյա օգտվող, տարեկան 60 PB նոր տվյալներ, տարեկան 30% աճ, SLA 99.95%, p99 <200 ms ընթերցման համար, <300 ms գրառման համար: ԿԵՆՏԱԿՍՏ Պետք է նախագծել բաշխված հաղորդագրությունների համակարգ, որը նման է WhatsApp-ին, որը աջակցում է 1:1 և խմբային զրույցներ, ապահովում է հաղորդագրությունների առաքումը, ցուցադրում է օգտվողների առցանց վիճակները և թույլ է տալիս մուլտիմեդիա ֆայլերի (նկարներ, տեսանյութեր, ձայն) փոխանցում։ Համակարգը պետք է ապահովի բարձր հասանելիություն և ցածր ուշացում, աջակցի բարձր պարալելիզմ և գլոբալ մակարդակում ընդլայնվի։ Ֆունկցիոնալ պահանջներ - Աջակցություն անձնական (1:1) և խմբային զրույցների, մասնակիցների ավելացման/հեռացման հնարավորությամբ - Տեքստային հաղորդագրությունների և մուլտիմեդիա ֆայլերի ուղարկում և ստացում Անհայտ է end-to-end կոդավորումների մեխանիզմի հստակ իրականացումը ծառայությունների կամ հաճախորդների մակարդակով, բացի ընդհանուր նշումից։ - Չկա հստակ նկարագրություն sharding և ռեպլիկացիայի մասին chat_id կամ user_id հիման վրա՝ ընդլայնելիության և սխալի դիմակայության համար։ - Չկա հստակ բաղադրիչ կամ մեխանիզմ offline հաղորդագրությունների և առաքման հաստատումների սինխրոնիզացիայի համար։ - Չի պարզ, թե ինչպես է կատարվում բեռի հավասարակշռությունը տվյալների բազաների և ծառայությունների միջև, հատկապես գագաթնակետային ծանրաբեռնվածության ժամանակ։ **Կարևոր կետեր, որոնք պետք է հաշվի առնել:**
Իմացեք իմ վերջին նախագծի մասին՝ ինչ է և ինչպե՞ս եք զբաղվում դրանում։
Կարճ ասեք, ինչ եք զբաղվել նախորդ աշխատանքային վայրերում և ինչ ֆունկցիաներ եք իրականացրել։
Դուք ունե՞ք բաժանված համակարգերով աշխատելու փորձ։