Latest Posts from LeetCodin (@leetcodin) on Telegram

LeetCodin Telegram Posts

LeetCodin
LeetCode 1500+
🇺🇿🇺🇸
Motto: Победа любит подготовку

- Getting ready for FAANG | FAANGga tayyorlanamiz
- Data Structures and Algorithms | Ma'lumotlar tuzilmalari va Algoritmlar
- SE at Deloitte 🇺🇸
- LeetCode: https://leetcode.com/tbekpro/
1,703 Subscribers
157 Photos
3 Videos
Last Updated 09.03.2025 02:47

Similar Channels

Naxalov | AI Blog 🔥
3,084 Subscribers
Engineering Notes
2,476 Subscribers
Aleph Nought
1,295 Subscribers

The latest content shared by LeetCodin on Telegram

LeetCodin

02 Feb, 14:15

1,453

Hammaga salom! Vaqti-vaqti bilan obunachilar savol berib turishadi. Shunday bir savol-javobni shu yerga joylashtiraman.


Savol: "Hozirda har kuni DSA o‘rganib, LeetCode’da masalalar yechib boryapman.
Lekin hozir FAANG’ning holati unchalik yaxshi emasga o‘xshaydi, chunki layoffs bo‘lib turibdi.

Shu sababli, ishxonada o‘zimni ko‘rsatish va tezroq raise olish uchun qanday maslahat bera olasiz?"


Javob: "DSA va LeedCode bilan shug'ullanayotganingiz juda ham zo'r! Keep it up!

FAANG'da har doim layoff bo'ladi va odamlarni ishga olishni to'xtatmaydi hech qachon. Odatda "bottom 5%" ishdan bo'shatishadi.

Savolingizga 2ta maslahatim bor:
1. Boshqa tajribali dasturchilarga ham huddi shunday savol yozib ko'ring. Javoblarni yig'ib, tahlil qilib, o'zingizga to'g'irlab, keyin harakat qiling.

2. Mening "2 cents" bu haqida quyidagicha:
O'zingizga ko'proq mas'uliyat oling.
Masalan:
- Team lead'ga borib, "sizda loyihamiz bo'yicha qanday taraf (part/volume of work) borki - shuni boshqa odam qilsa, asosiy ishga qo'l urardim [asl long-term ishlarga vaqt ko'payardi]" - deb so'rab ko'ring. Loyihaning shu tarafini owner'i bo'ling. Shunday yaxshi o'rganingki - hamma sizga kelib savol so'rasin shu haqida.

FAANG kompaniyalarida siz agar mid-level'dan senior'ga o'tmoqchi bo'lsangiz, siz senior developer'ning ishini bir oz vaqt davomida qilib kelayotgan bo'lishingiz kerak.

Bu degani sizga senior'likni boshqa odam berishi kerak emas, har bir harakatingiz "Men seniorman. Senior dev bunday holatda qanday harakat qilishi lozim?" - degan fikr bilan boshlanishi kerak.

O'zingizga boshqa odamning ish o'rnidan qarab ko'ring. Masalan:
- Tasavvur qiling siz shu biznesning egasisiz. Sizga har doim persistent and accountable odamlar yetishmaydi. Unday odamlarning o'zi kamdan-kam. Agar accountable odamni topib olsangiz, uni ishda lavozimda ko'tarib, maksimal darajada qoldirgingiz keladi - to'g'rimi? Bundan xulosa - men shunday odam bo'lishim kerak."


Siz esa nima deb o'ylaysiz?
@LeetCodin
LeetCodin

14 Jan, 13:16

1,925

🇬🇧1500 LeetCode problems solved.

Each one a lesson, a challenge, and a step forward.
The journey continues.


🇺🇿1500 ta LeetCode masalasi yechildi.
Sayohat davom etadi.

@LeetCodin
LeetCodin

20 Dec, 13:39

2,703

LeetCode Rewind 2024

@LeetCodin
LeetCodin

24 Nov, 16:31

3,672

Hammaga salom!

Kuni kecha Tizimlar dizayni (System Design) kursini sotib oldim.

Uning muallifi Mikhail Smarshchok, staff muhandisi sifatida faoliyat yuritadi. Menga uning YouTube’dagi 5 ta video darslikdan iborat kichik kursi juda yoqqan edi. U mavzularni juda aniq va tushunarli tarzda tushuntiradi.

Aytishadiku, “chaynab og’zimga solib qo’ygan” deb. Bu odam ham xuddi shunday tushuntirar ekan. Eng qizig’i, videolarning tavsiflarida u o’zining to’liq kursiga havola qoldirgan ekan. Va bu kurs, tasavvur qiling-a, LeetCode’da joylashgan ekan.

Men shu vaqtning o’zida:


@LeetCodin
LeetCodin

10 Nov, 14:31

3,888

23-noyabrgacha tekin Ma’lumot tuzilmalari va Algoritmlar haqida kurs tayyorlashgan ekan. Juda ham yaxshi chiqibdi. Ingliz tilida.

https://www.jointaro.com/course/crash-course-data-structures-and-algorithms-concepts/course-welcome/

@LeetCodin
LeetCodin

26 Oct, 12:15

3,400

Today is the 300th day of the year.

Bugun yilning 300-kuni ekan.

@LeetCodin
LeetCodin

21 Oct, 15:37

3,052

🇺🇿
Menga yordamingiz kerak bo’lmoqda:

Qaysi mavzular haqida postlar yozishimni xohlaysiz?

🇺🇸
I need your help:

What topics do you want me to cover in future posts?
LeetCodin

20 Oct, 14:45

2,820

Agar narsalarni tartiblashda qiynalayotgan bo'lsangiz, bu 6 ta tartiblash algoritmidan foydalanib ko'ring:

1. Bubble tartiblash usuli. O(N ^ 2).

2. Selection tartiblash usuli. O(N ^ 2).

3. Kiritish orqali tartiblash usuli. O(N ^ 2).

4. Birlashtirish orqali tartiblash usuli. O(N * logN).

5. Tez tartiblash usuli. O(N * logN) dan O(N ^ 2) gacha.

6. Shell tartiblash usuli. O'rtacha - O(N ^ (3/2)).

@LeetCodin
LeetCodin

19 Oct, 13:00

1,718

Shell saralash algoritmi.

Salom! Bugun yangi Shell saralash algoritmini ko'rib chiqaman.

😇 Github: ShellSort
Time complexity:
O'rtacha - O(N ^ (3/2)),
Eng yomon holatda - O(N ^ 2)
🔎 Space complexity: O(1)

🧑‍💻 G'oya 🧑‍💻

Shell sort, uni 1959-yilda kashf etgan, Donald L. Shell-dan nomini olgan. Shell sort Kiritish orqali saralash usulining asosida ishlaydi. Kiritish orqali saralash algoritmida siz elementlarni faqat bir pozitsiyaga sura olasiz. Agar element massivning oxiridan boshiga joylashtirilishi kerak bo'lsa, siz ko'p swap operatsiyasini bajarasiz.

Shell sort algoritmining g'oyasi - bu uzoq masofada joylashgan elementlarni saralash. Bu algoritm orqali siz elementlarni h uzoqlikda saralangan qilasiz. Shu h-ning qiymati 1ga teng bo'lmagunicha uni kamaytiraverasiz. h uzoqlikda saralangan degani bir biridan h uzoqlikda joylashgan elementlarning har bir ro'yxatda saralangan holatda bo'lishi.

🧑‍💻 Algoritm 🧑‍💻

h = h * 3 + 1 -> bu Knuth-ning Interval ketma-ketliklar uchun formulasi.

1. Birinchi while loop berilgan massiv hajmi uchun to'g'ri h-ni topish uchun ishlatasiz.

2. Keyin esa nested loop ishlatasiz.
- Birinchi tashqi while loop-ni h-ning qiymatini formula bo'yicha kamaytirish uchun ishlatasiz.
- Ichki for loop-da esa Kiritish orqali saralash [Insertion sort] algoritmini h uzoqlikda joylashgan elementlar uchun ishlatasiz.
- Ichki while loop Kiritish orqali saralashga o'xshab, h uzoqlikda joylashgan elementlar uchun katta elementlarni o'nga suradi va tanlangan elementni o'z joyiga qo'yadi.

Manbalar:
1. Data Structures and Algorithms in Java. R. Lafore.
2. Geeksforgeeks
3. GIF

Rahmat!
Omad! ✌️😎

@LeetCodin
LeetCodin

18 Oct, 12:00

1,691

Tez Tartiblash. Tartiblash algoritmlari.

Salom! Bugun ham katta mavzu - Tez tartiblash [Quick sort].

😇 Github: QuickSort
Time complexity:
Eng yaxshi holat: O(N * logN),
Eng yomon holat: O(N ^ 2).
🔎 Space complexity: O(1).

🧑‍💻 G'oya 🧑‍💻

Quick sort bu tezligi kvadrat funksiyaga ega bo'lgan tartiblash algoritmlardan [Bubble sort, Selection sort, and Insertion sort] ancha tezroq ishlaydigan algoritm (o'rta holatda).

Bu algoritm uchta qismdan iborat:
- Massivni yoki uning qismini ikki qismga bo'lish. Chap qismida asos qilib olingan sondan kichikroq va o'ng qismida shu sondan kattaroq elementlar joylashtiriladi.
- Huddi shu metodni rekursiv chaqiruv orqali chap qism uchun ishlatish.
- Shu metodni rekursiv chaqiruv orqali bu safar o'ng qism uchun ishlatish.

Massivni kichikroq qismlarga bo'lish deganda massivni ikkita guruhga asos (tayanch) qilib oningan songa qarshi bo'lishni tushunish kerak. Shunda chap guruhdagi sonlar tayanch sondan kichikroq va o'ng guruhdagi sonlar esa shu tayanch sonidan kattaroq bo'lishi lozim.

🧑‍💻 Algoritm 🧑‍💻

Tepada Github-dagi yechimga havola qoldirganman.
Shu yechimda hamma logic QuickSort klassining ichida. Bu klassda array massivi bor. U tartiblash uchun berilgan massivga ko'rsatgichni saqlaydi.
QuickSort klassida yana 4 metod bor. Bular quickSort(), recursiveQuickSort(), partitionIt() va swap().

👩‍💻 quickSort()
Klassga tegishli massiv o'zgaruvchisiga berilgan massivni yozib qo'yadi. Keyin esa recursiveQuickSort() rekursiv metodini 0 va oxirgi indekslar uchun chaqiradi.

👩‍💻 recursiveQuickSort()
- Boshida rekursiya uchun asosiy holat tekshiriladi.
- else blokining ichida quyidagi 4ta harakat bajariladi:
1. Tayanch sonini tanlaysiz. Buning uchun berilgan diapazondan oxirgi elementni tanlaysiz.
2. partitionIt() metodini chaqirish orqali shu tayanch sonining indeksi aniqlanadi. Bu metod tayanchdan kichik sonlarni chapga va kattaroq sonlarni o'nga joylashtiradi.
3. Keyin rekursiv chaqiruv orqali recursiveQuickSort() metodini chap guruh uchun chaqirasiz.
4. Bundan keyin rekursiv chaqiruv orqali recursiveQuickSort() metodini o'ng guruh uchun chaqirasiz.

👩‍💻 partitionIt()
Metodning boshlanishida berilgan diapazon [left - right] ichida bosh va oxirgi indekslar uchun alohida int o'zgaruvchilarini yaratasiz.
Bulardan keyin bitta tashqi va ikkita ichki while loop-lar joylashgan.
- Birinchi ichki while loop tayanch sondan katta bo'lgan birinchi sonning indeksini topib beradi.
- Ikkinchi ichki while loop esa tayanch sondan kichik bo'lgan oxirgi sonning indeksini topadi.
- Agar shu ikkita indeks teng bo'lsa yoki leftPointer rightPointer-dan kattaroq bo'lsa, unda berilgan diapazondagi sonlar tayanch songa nisbatan to'g'ri taqsimlangan. Bu holatda tashqi loop-dan chiqib ketiladi.
- Agar chap ko'rsatgich indeks o'ng ko'rsatgich indeksdan kichik bo'lsa, biz shu indeks ostida joylashgan elementlarning swap() orqali joylarini almashtiramiz.
Bu harakatlar orqali siz tayanch sondan kichik sonlarni chapga va undan katta sonlarni unga nisbatan o'nga joylashtirasiz.

Tashqi while loop-dan chiqqaningizda swap() orqali tayanch sonini o'z o'rniga qo'yasiz.
Oxirida esa shu sonning indeksini qaytarasiz.

👩‍💻 swap()
Bu oddiy ikkita elementni indekslari bo'yicha joylarini almashtiruvchi metod.

Manbalar:
1. Data Structures and Algorithms in Java. R. Lafore.
2. Quick Sort in 4 minutes
3. Quick Sort gif

Bugunga shu.
Agar xatolar topsangiz yoki qaysidir qism bo'yicha savollaringiz bo'lsa, comments-da yozing.

Omad! ✌️😎

@LeetCodin