<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oybek Rejametov</title>
    <description>The latest articles on DEV Community by Oybek Rejametov (@orejametov).</description>
    <link>https://dev.to/orejametov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3351359%2F4b70b784-a69f-4de4-890d-8cbf6d547424.jpeg</url>
      <title>DEV Community: Oybek Rejametov</title>
      <link>https://dev.to/orejametov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/orejametov"/>
    <language>en</language>
    <item>
      <title>💡 [88] - Merge Sorted Arrays In-Place</title>
      <dc:creator>Oybek Rejametov</dc:creator>
      <pubDate>Thu, 17 Jul 2025 12:10:34 +0000</pubDate>
      <link>https://dev.to/orejametov/88-merge-sorted-arrays-in-place-4kp8</link>
      <guid>https://dev.to/orejametov/88-merge-sorted-arrays-in-place-4kp8</guid>
      <description>&lt;h2&gt;
  
  
  💡 Merge Sorted Arrays In-Place
&lt;/h2&gt;

&lt;p&gt;Merging two sorted arrays is a classic problem that helps you practice &lt;strong&gt;array manipulation&lt;/strong&gt;, &lt;strong&gt;pointers&lt;/strong&gt;, and &lt;strong&gt;in-place updates&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Normally, you might create a new array to store the result. But what if you must &lt;strong&gt;merge in-place&lt;/strong&gt;, without using extra space?&lt;/p&gt;

&lt;p&gt;This is exactly what this problem asks.&lt;/p&gt;

&lt;p&gt;You're given:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;nums1&lt;/code&gt;, a sorted array of size &lt;code&gt;m + n&lt;/code&gt;, where the first &lt;code&gt;m&lt;/code&gt; elements are valid and the rest are &lt;code&gt;0&lt;/code&gt; placeholders.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nums2&lt;/code&gt;, a sorted array of size &lt;code&gt;n&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your task: merge &lt;code&gt;nums2&lt;/code&gt; into &lt;code&gt;nums1&lt;/code&gt;, in-place, and keep the final result sorted.&lt;/p&gt;

&lt;h3&gt;
  
  
  Initial Arrays
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;nums2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pointers Initialization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;i = 2   # Index of last non-zero element in nums1 (value: 3)
j = 2   # Index of last element in nums2 (value: 6)
k = 5   # Index of last position in nums1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We start comparing from the end and place the &lt;strong&gt;larger value&lt;/strong&gt; at the end of &lt;code&gt;nums1&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 Step-by-Step Merge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       i        k            j
[1, 2, 3, 0, 0, 0]    [2, 5, 6]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Compare &lt;code&gt;nums1[i] = 3&lt;/code&gt; and &lt;code&gt;nums2[j] = 6&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Since &lt;code&gt;6 &amp;gt; 3&lt;/code&gt;, place &lt;code&gt;6&lt;/code&gt; at &lt;code&gt;nums1[k]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔁 Move pointers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;j-- → 1&lt;/code&gt; (move to next element in &lt;code&gt;nums2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;k-- → 4&lt;/code&gt; (move to next empty spot in &lt;code&gt;nums1&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       i     k            j 
[1, 2, 3, 0, 0, 6]    [2, 5, 6]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Compare &lt;code&gt;nums1[i] = 3&lt;/code&gt; and &lt;code&gt;nums2[j] = 5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Since &lt;code&gt;5 &amp;gt; 3&lt;/code&gt;, place &lt;code&gt;5&lt;/code&gt; at &lt;code&gt;nums1[k]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔁 Move pointers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;j-- → 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-- → 3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       i  k            j
[1, 2, 3, 0, 5, 6]    [2, 5, 6]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Compare &lt;code&gt;nums1[i] = 3&lt;/code&gt; and &lt;code&gt;nums2[j] = 2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Since &lt;code&gt;3 &amp;gt; 2&lt;/code&gt;, place &lt;code&gt;3&lt;/code&gt; at &lt;code&gt;nums1[k]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔁 Move pointers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i-- → 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-- → 2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    i  k               j
[1, 2, 3, 3, 5, 6]    [2, 5, 6]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Compare &lt;code&gt;nums1[i] = 2&lt;/code&gt; and &lt;code&gt;nums2[j] = 2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Since &lt;code&gt;2 &amp;lt;= 2&lt;/code&gt;, place &lt;code&gt;2&lt;/code&gt; from &lt;code&gt;nums2&lt;/code&gt; at &lt;code&gt;nums1[k]&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔁 Move pointers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;j-- → -1&lt;/code&gt; (finished nums2)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k-- → 1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ Done!
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;nums2&lt;/code&gt; is fully merged into &lt;code&gt;nums1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final result:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nums1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ✅ Python Solution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def merge(nums1, m, nums2, n):
    i = m - 1         # last index of actual nums1 values
    j = n - 1         # last index of nums2
    k = m + n - 1     # last index of nums1 total space

    while j &amp;gt;= 0:
        if i &amp;gt;= 0 and nums1[i] &amp;gt; nums2[j]:
            nums1[k] = nums1[i]
            i -= 1
        else:
            nums1[k] = nums2[j]
            j -= 1
        k -= 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>🧠 "Two Pointers" ni tushunish: oddiy, ammo kuchli pattern - o'zbek tilida</title>
      <dc:creator>Oybek Rejametov</dc:creator>
      <pubDate>Mon, 14 Jul 2025 13:02:49 +0000</pubDate>
      <link>https://dev.to/orejametov/two-pointers-ni-tushunish-oddiy-ammo-kuchli-pattern-ozbek-tilida-2b6g</link>
      <guid>https://dev.to/orejametov/two-pointers-ni-tushunish-oddiy-ammo-kuchli-pattern-ozbek-tilida-2b6g</guid>
      <description>&lt;p&gt;Agar siz algoritmlarni o‘rganayotgan yoki interviewlarga tayyorlanayotgan bo‘lsangiz, albatta &lt;strong&gt;two pointers&lt;/strong&gt; (ikki ko‘rsatkich) degan atamaga duch kelgansiz/kelasiz. Bu qiyin ko‘ringaniga qaramay, aslida eng oddiy va foydali patternlardan biri bo‘lib, array va string masalalarini samarali yechishda juda ko‘p ishlatiladi.&lt;/p&gt;

&lt;p&gt;Ushbu postda sizga two pointers nima ekanini, qanday ishlashini bir nechta oddiy misollar orqali tushuntiraman.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Two Pointers nima?
&lt;/h2&gt;

&lt;p&gt;G‘oya juda oddiy: &lt;strong&gt;ikki o‘zgaruvchi (ko‘rsatkich)&lt;/strong&gt; yordamida array yoki string bo‘ylab yuramiz.&lt;br&gt;&lt;br&gt;
Asosan 2 xil usul bor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Biri boshidan, ikkinchisi oxiridan boshlanadi — va ular bir-biriga qarab harakat qiladi.&lt;/li&gt;
&lt;li&gt;Ikkalasi ham bir yo‘nalishda harakat qiladi (masalan, sliding window yoki fast &amp;amp; slow pointerlar kabi).&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🤓 Misol 1: Palindromni tekshirish (Valid Palindrome)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kiritish1:&lt;/strong&gt; &lt;code&gt;"racecar"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tushuntirish:&lt;/strong&gt;&lt;br&gt;
Chapdan o‘ngga: &lt;code&gt;"racecar"&lt;/code&gt;&lt;br&gt;
O‘ngdan chapga: &lt;code&gt;"racecar"&lt;/code&gt;&lt;br&gt;&lt;br&gt;
✅ Ular bir xil → palindrom&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt; &lt;code&gt;True&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Kiritish2:&lt;/strong&gt; &lt;code&gt;"hello"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tushuntirish:&lt;/strong&gt;&lt;br&gt;
Chapdan o‘ngga: &lt;code&gt;"hello"&lt;/code&gt;&lt;br&gt;
O‘ngdan chapga: &lt;code&gt;"olleh"&lt;/code&gt;&lt;br&gt;&lt;br&gt;
❌ Ular bir xil emas&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natija:&lt;/strong&gt; &lt;code&gt;False&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ Oddiy (lekin sekin) yondashuv:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for i from 0 to length(s) - 1:
    reversed = ""

    for j from length(s) - 1 down to 0:
            reversed = reversed + s[j]

    if s != reversed:
            return false        

    return true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vaqt murakkabligi: &lt;code&gt;O(n^2)&lt;/code&gt;, xotira: &lt;code&gt;O(n)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Two Pointers (tejamli)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;left = 0
right = length(s) - 1

while left &amp;lt; right:
    if s[left] != s[right]:
        return false
    left = left + 1
    right = right - 1

return true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Qo‘shimcha xotira ishlatilmaydi
&lt;/li&gt;
&lt;li&gt;Vaqt: &lt;code&gt;O(n)&lt;/code&gt;, xotira: &lt;code&gt;O(1)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bu yerda ikki pointer stringning qarama-qarshi uchlaridan harakat qilib, belgilarni solishtiradi.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤓 Misol 2: Takroriy elementlarni olib tashlash (Remove Duplicates from Sorted Array)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Vazifa:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Berilgan &lt;strong&gt;saralangan&lt;/strong&gt; arraydan takroriy elementlarni &lt;strong&gt;in-place(berilgan arrayni o'zi bilan ishlash)&lt;/strong&gt; olib tashlash va faqat noyob(unikal) elementlar bilan qolgan uzunlikni qaytarish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiritish:&lt;/strong&gt; [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]&lt;br&gt;
&lt;strong&gt;Natija:&lt;/strong&gt; [0, 1, 2, 3, 4]&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ Oddiy (yomon) yechim:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new_array = []

for i from 0 to length(arr) - 1:
   if arr[i] not in new_array:
   append arr[i] to new_array

return new_array
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Yangi array yaratadi
&lt;/li&gt;
&lt;li&gt;In-place ishlamaydi
&lt;/li&gt;
&lt;li&gt;Qo‘shimcha &lt;code&gt;O(n)&lt;/code&gt; xotira talab qiladi
&lt;/li&gt;
&lt;li&gt;Vaqt: &lt;code&gt;O(n^2)&lt;/code&gt; (sababi: har safar &lt;code&gt;in&lt;/code&gt; ishlatiladi)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Two Pointers (samarali)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;left = 0
right = 1

while right &amp;lt; len(nums):
      if nums[right] != nums[left]:
          left += 1
          nums[left] = nums[right]
      right += 1    

return left + 1   
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;right&lt;/code&gt; arrayni skan qiladi
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;left&lt;/code&gt; noyob qiymatlar joylashadigan pozitsiyani ko‘rsatadi
&lt;/li&gt;
&lt;li&gt;Array o‘zida yangilanadi
&lt;/li&gt;
&lt;li&gt;Vaqt: &lt;code&gt;O(n)&lt;/code&gt;, xotira: &lt;code&gt;O(1)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Qachon ishlatish kerak?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Two pointers&lt;/strong&gt; quyidagi holatlarda ayniqsa foydali:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Array &lt;strong&gt;saralangan&lt;/strong&gt; bo‘lsa
&lt;/li&gt;
&lt;li&gt;Sizga &lt;strong&gt;juftliklar&lt;/strong&gt;, &lt;strong&gt;subarraylar&lt;/strong&gt; yoki &lt;strong&gt;oraliqlar&lt;/strong&gt; kerak bo‘lsa
&lt;/li&gt;
&lt;li&gt;Sizga &lt;code&gt;O(n)&lt;/code&gt; samaradorlikdagi algoritm kerak bo‘lsa (oddiy &lt;code&gt;O(n²)&lt;/code&gt; o‘rniga)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Mashq uchun masalalar
&lt;/h2&gt;

&lt;p&gt;Quyidagilarni yechib ko‘ring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/merge-sorted-array/" rel="noopener noreferrer"&gt;Leetcode 88 – Merge Sorted Array&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/" rel="noopener noreferrer"&gt;Leetcode 167 – Two Sum II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/valid-palindrome/" rel="noopener noreferrer"&gt;Leetcode 125 – Valid Palindrome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✍️ Yakuniy so‘z
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Two pointers&lt;/strong&gt; — intervyularda juda ko‘p uchraydigan, boshlovchilar uchun mos va samarali yondashuv.&lt;br&gt;&lt;br&gt;
U sizga &lt;strong&gt;soddaroq va tezroq&lt;/strong&gt; kod yozishda yordam beradi.&lt;/p&gt;

&lt;p&gt;Agar post foydali bo‘lgan bo‘lsa — albatta reaksiya qoldiring!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🧠 Understanding "Two Pointers": A Simple but Powerful Technique</title>
      <dc:creator>Oybek Rejametov</dc:creator>
      <pubDate>Mon, 14 Jul 2025 12:49:02 +0000</pubDate>
      <link>https://dev.to/orejametov/understanding-two-pointers-a-simple-but-powerful-technique-5ho1</link>
      <guid>https://dev.to/orejametov/understanding-two-pointers-a-simple-but-powerful-technique-5ho1</guid>
      <description>&lt;p&gt;If you're learning algorithms or preparing for coding interviews, you've probably come across the term &lt;strong&gt;two pointers&lt;/strong&gt;. It sounds fancy, but it's actually one of the easiest and most useful tricks for solving array and string problems efficiently.&lt;/p&gt;

&lt;p&gt;In this post, I'll explain what two pointers are, how they work, and walk through a few simple examples.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What Are Two Pointers?
&lt;/h2&gt;

&lt;p&gt;The idea is simple: use &lt;strong&gt;two variables (pointers)&lt;/strong&gt; to iterate through an array or string.&lt;br&gt;&lt;br&gt;
There are two main styles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start one pointer at the beginning, the other at the end — and move them toward each other.&lt;/li&gt;
&lt;li&gt;Move both pointers in the same direction, often at different speeds (like chasing/sliding windows).&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🤓 Example 1: Valid Palindrome:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Input1:&lt;/strong&gt; "racecar"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;br&gt;
Left to right: &lt;code&gt;"racecar"&lt;/code&gt;&lt;br&gt;
Right to left: &lt;code&gt;"racecar"&lt;/code&gt;&lt;br&gt;
✅ They match → it's a palindrome&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; &lt;code&gt;True&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input2:&lt;/strong&gt;“hello”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;br&gt;
Left to right: &lt;code&gt;"hello"&lt;/code&gt;&lt;br&gt;
Right to left: &lt;code&gt;"olleh"&lt;/code&gt;&lt;br&gt;
❌ Not a match&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt; &lt;code&gt;False&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ Brute Force (not effective)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for i from 0 to length(s) - 1:
    reversed = ""

    for j from length(s) - 1 down to 0:
            reversed = reversed + s[j]

    if s != reversed:
            return false        

    return true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Time Complexity: &lt;code&gt;O(n^2)&lt;/code&gt;, Space: &lt;code&gt;O(n)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Two Pointers (effective)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;left = 0
right = length(s) - 1

while left &amp;lt; right:
    if s[left] != s[right]:
        return false
    left = left + 1
    right = right - 1

return true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Without extra space&lt;/li&gt;
&lt;li&gt;Time complexity: &lt;code&gt;O(n)&lt;/code&gt;, space: &lt;code&gt;O(1)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here, two pointers move from each end toward the middle and compare characters.&lt;br&gt;&lt;br&gt;
⏱ Time complexity: &lt;code&gt;O(n)&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🤓 Example 2: Remove Duplicates from Sorted Array
&lt;/h2&gt;

&lt;p&gt;We want to &lt;strong&gt;remove duplicates in-place&lt;/strong&gt; and return the new length of the array with only unique elements at the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Input1:&lt;/strong&gt;  [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]&lt;br&gt;
&lt;strong&gt;Output:&lt;/strong&gt;  [0, 1, 2, 3, 4]&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ Brute Force (not effective)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new_array = []

for i from 0 to length(arr) - 1:
   if arr[i] not in new_array:
   append arr[i] to new_array

return new_array
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Creates a new array&lt;/li&gt;
&lt;li&gt;Does not modify in-place&lt;/li&gt;
&lt;li&gt;Uses &lt;code&gt;O(n)&lt;/code&gt; extra space
&lt;/li&gt;
&lt;li&gt;Time Complexity: &lt;code&gt;O(n^2)&lt;/code&gt; (due to &lt;code&gt;in&lt;/code&gt; check in array each time)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Two Pointers (effective)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;left = 0
right = 1

while right &amp;lt; len(nums):
      if nums[right] != nums[left]:
          left += 1
          nums[left] = nums[right]
      right += 1    

return left + 1    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;read&lt;/code&gt; scans through the array&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;write&lt;/code&gt; marks the next position for a unique value&lt;/li&gt;
&lt;li&gt;Overwrites the input array &lt;strong&gt;in-place&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Time Complexity: &lt;code&gt;O(n)&lt;/code&gt;, Space: &lt;code&gt;O(1)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ When Should You Use It?
&lt;/h2&gt;

&lt;p&gt;Use &lt;strong&gt;two pointers&lt;/strong&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The array is &lt;strong&gt;sorted&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You need to &lt;strong&gt;find pairs&lt;/strong&gt;, &lt;strong&gt;subarrays&lt;/strong&gt;, or &lt;strong&gt;ranges&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You want an efficient &lt;code&gt;O(n)&lt;/code&gt; solution instead of brute-force &lt;code&gt;O(n²)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Practice Problems
&lt;/h2&gt;

&lt;p&gt;Try these to get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/merge-sorted-array/" rel="noopener noreferrer"&gt;Leetcode 88 – Merge Sorted Array&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/" rel="noopener noreferrer"&gt;Leetcode 167 – Two Sum II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problems/valid-palindrome/" rel="noopener noreferrer"&gt;Leetcode 125 – Valid Palindrome&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✍️ Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Two pointers is a beginner-friendly technique that you'll see in many interviews.&lt;br&gt;&lt;br&gt;
It helps you write &lt;strong&gt;simple and fast&lt;/strong&gt; code.&lt;/p&gt;

&lt;p&gt;If this post was helpful — let me know!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>100 LeetCode Problems to Prepare for Your Next Coding Interview</title>
      <dc:creator>Oybek Rejametov</dc:creator>
      <pubDate>Sun, 13 Jul 2025 18:14:11 +0000</pubDate>
      <link>https://dev.to/orejametov/100-leetcode-problems-to-prepare-for-your-next-coding-interview-1991</link>
      <guid>https://dev.to/orejametov/100-leetcode-problems-to-prepare-for-your-next-coding-interview-1991</guid>
      <description>&lt;h3&gt;
  
  
  Two Pointers (Arrays, Strings)
&lt;/h3&gt;

&lt;p&gt;1) &lt;a href="https://leetcode.com/problems/merge-sorted-array" rel="noopener noreferrer"&gt;88. Merge Sorted Array&lt;/a&gt;&lt;br&gt;
2) &lt;a href="https://leetcode.com/problems/valid-palindrome" rel="noopener noreferrer"&gt;125. Valid Palindrome&lt;/a&gt;&lt;br&gt;
3) &lt;a href="https://leetcode.com/problems/valid-palindrome-ii" rel="noopener noreferrer"&gt;680. Valid Palindrome II&lt;/a&gt;&lt;br&gt;
4) &lt;a href="https://leetcode.com/problems/remove-duplicates-from-sorted-array" rel="noopener noreferrer"&gt;26. Remove Duplicates from Sorted Array&lt;/a&gt;&lt;br&gt;
5) &lt;a href="https://leetcode.com/problems/move-zeroes" rel="noopener noreferrer"&gt;283. Move Zeroes&lt;/a&gt; &lt;br&gt;
6) &lt;a href="https://leetcode.com/problems/reverse-string" rel="noopener noreferrer"&gt;344. Reverse String&lt;/a&gt;&lt;br&gt;
7) &lt;a href="https://leetcode.com/problems/two-sum-ii-input-array-is-sorted" rel="noopener noreferrer"&gt;167. Two Sum II - Input Array Is Sorted&lt;/a&gt;&lt;br&gt;
8) &lt;a href="https://leetcode.com/problems/3sum" rel="noopener noreferrer"&gt;15. 3Sum&lt;/a&gt;&lt;br&gt;
9) &lt;a href="https://leetcode.com/problems/4sum" rel="noopener noreferrer"&gt;18. 4Sum&lt;/a&gt;&lt;br&gt;
10) &lt;a href="https://leetcode.com/problems/dot-product-of-two-sparse-vectors" rel="noopener noreferrer"&gt;1570. Dot Product of Two Sparse Vectors&lt;/a&gt;&lt;br&gt;
11) &lt;a href="https://leetcode.com/problems/string-compression" rel="noopener noreferrer"&gt;443. String Compression&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  HashMap/HashSet
&lt;/h3&gt;

&lt;p&gt;12) &lt;a href="https://leetcode.com/problems/two-sum" rel="noopener noreferrer"&gt;1. Two Sum&lt;/a&gt;&lt;br&gt;
13) &lt;a href="https://leetcode.com/problems/unique-number-of-occurrences" rel="noopener noreferrer"&gt;1207. Unique Number of Occurrences&lt;/a&gt;&lt;br&gt;
14) &lt;a href="https://leetcode.com/problems/majority-element" rel="noopener noreferrer"&gt;169. Majority Element&lt;/a&gt;&lt;br&gt;
15) &lt;a href="https://leetcode.com/problems/valid-anagram" rel="noopener noreferrer"&gt;242. Valid Anagram&lt;/a&gt;&lt;br&gt;
16) &lt;a href="https://leetcode.com/problems/verifying-an-alien-dictionary" rel="noopener noreferrer"&gt;953. Verifying an Alien Dictionary&lt;/a&gt;&lt;br&gt;
17) &lt;a href="https://leetcode.com/problems/jewels-and-stones" rel="noopener noreferrer"&gt;771. Jewels and Stones&lt;/a&gt;&lt;br&gt;
18) &lt;a href="https://leetcode.com/problems/subarray-sum-equals-k" rel="noopener noreferrer"&gt;560. Subarray Sum Equals K&lt;/a&gt;&lt;br&gt;
19) &lt;a href="https://leetcode.com/problems/group-anagrams" rel="noopener noreferrer"&gt;49. Group Anagrams&lt;/a&gt;&lt;br&gt;
20) &lt;a href="https://leetcode.com/problems/insert-delete-getrandom-o1" rel="noopener noreferrer"&gt;380. Insert Delete GetRandom O(1)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Strings (others)
&lt;/h3&gt;

&lt;p&gt;21) &lt;a href="https://leetcode.com/problems/add-binary" rel="noopener noreferrer"&gt;67. Add Binary&lt;/a&gt;&lt;br&gt;
22) &lt;a href="https://leetcode.com/problems/buddy-strings" rel="noopener noreferrer"&gt;859. Buddy Strings&lt;/a&gt; &lt;br&gt;
23) &lt;a href="https://leetcode.com/problems/isomorphic-strings" rel="noopener noreferrer"&gt;205. Isomorphic Strings&lt;/a&gt;&lt;br&gt;
24) &lt;a href="https://leetcode.com/problems/reverse-vowels-of-a-string" rel="noopener noreferrer"&gt;345. Reverse Vowels of a String&lt;/a&gt; &lt;br&gt;
25) &lt;a href="https://leetcode.com/problems/longest-palindromic-substring" rel="noopener noreferrer"&gt;5. Longest Palindromic Substring&lt;/a&gt;&lt;br&gt;
26) &lt;a href="https://leetcode.com/problems/generate-parentheses" rel="noopener noreferrer"&gt;22. Generate Parentheses&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LinkedLists
&lt;/h3&gt;

&lt;p&gt;27) &lt;a href="https://leetcode.com/problems/merge-two-sorted-lists" rel="noopener noreferrer"&gt;21. Merge Two Sorted Lists&lt;/a&gt;&lt;br&gt;
28) &lt;a href="https://leetcode.com/problems/reverse-linked-list" rel="noopener noreferrer"&gt;206. Reverse Linked List&lt;/a&gt;&lt;br&gt;
29) &lt;a href="https://leetcode.com/problems/palindrome-linked-list" rel="noopener noreferrer"&gt;234. Palindrome Linked List&lt;/a&gt;&lt;br&gt;
30) &lt;a href="https://leetcode.com/problems/remove-duplicates-from-sorted-list" rel="noopener noreferrer"&gt;83. Remove Duplicates from Sorted List&lt;/a&gt;&lt;br&gt;
31) &lt;a href="https://leetcode.com/problems/copy-list-with-random-pointer" rel="noopener noreferrer"&gt;138. Copy List with Random Pointer&lt;/a&gt;&lt;br&gt;
32) &lt;a href="https://leetcode.com/problems/remove-nth-node-from-end-of-list" rel="noopener noreferrer"&gt;19. Remove Nth Node From End of List&lt;/a&gt;&lt;br&gt;
33) &lt;a href="https://leetcode.com/problems/lru-cache" rel="noopener noreferrer"&gt;146. LRU Cache&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Binary Search
&lt;/h3&gt;

&lt;p&gt;34) &lt;a href="https://leetcode.com/problems/sqrtx" rel="noopener noreferrer"&gt;69. Sqrt(x)&lt;/a&gt;&lt;br&gt;
35) &lt;a href="https://leetcode.com/problems/binary-search" rel="noopener noreferrer"&gt;704. Binary Search&lt;/a&gt; &lt;br&gt;
36) &lt;a href="https://leetcode.com/problems/first-bad-version" rel="noopener noreferrer"&gt;278. First Bad Version&lt;/a&gt;&lt;br&gt;
37) &lt;a href="https://leetcode.com/problems/find-peak-element" rel="noopener noreferrer"&gt;162. Find Peak Element&lt;/a&gt;&lt;br&gt;
38) &lt;a href="https://leetcode.com/problems/peak-index-in-a-mountain-array" rel="noopener noreferrer"&gt;852. Peak Index in a Mountain Array&lt;/a&gt;&lt;br&gt;
39) &lt;a href="https://leetcode.com/problems/koko-eating-bananas" rel="noopener noreferrer"&gt;875. Koko Eating Bananas&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;p&gt;40) &lt;a href="https://leetcode.com/problems/valid-parentheses" rel="noopener noreferrer"&gt;20. Valid Parentheses&lt;/a&gt;&lt;br&gt;
41) &lt;a href="https://leetcode.com/problems/implement-queue-using-stacks" rel="noopener noreferrer"&gt;232. Implement Queue using Stacks&lt;/a&gt;&lt;br&gt;
42) &lt;a href="https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses" rel="noopener noreferrer"&gt;1249. Minimum Remove to Make Valid Parentheses&lt;/a&gt;&lt;br&gt;
43) &lt;a href="https://leetcode.com/problems/add-two-numbers-ii" rel="noopener noreferrer"&gt;445. Add Two Numbers II&lt;/a&gt;&lt;br&gt;
44) &lt;a href="https://leetcode.com/problems/simplify-path" rel="noopener noreferrer"&gt;71. Simplify Path&lt;/a&gt;&lt;br&gt;
45) &lt;a href="https://leetcode.com/problems/min-stack" rel="noopener noreferrer"&gt;155. Min Stack&lt;/a&gt;&lt;br&gt;
46) &lt;a href="https://leetcode.com/problems/basic-calculator-ii" rel="noopener noreferrer"&gt;227. Basic Calculator II&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Queues
&lt;/h3&gt;

&lt;p&gt;47) &lt;a href="https://leetcode.com/problems/number-of-recent-calls" rel="noopener noreferrer"&gt;933. Number of Recent Calls&lt;/a&gt;&lt;br&gt;
48) &lt;a href="https://leetcode.com/problems/design-hit-counter" rel="noopener noreferrer"&gt;362. Design Hit Counter&lt;/a&gt;&lt;br&gt;
49) &lt;a href="https://leetcode.com/problems/design-snake-game" rel="noopener noreferrer"&gt;353. Design Snake Game&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Heap/PriorityQueue
&lt;/h3&gt;

&lt;p&gt;50) &lt;a href="https://leetcode.com/problems/kth-largest-element-in-a-stream" rel="noopener noreferrer"&gt;703. Kth Largest Element in a Stream&lt;/a&gt;&lt;br&gt;
51) &lt;a href="https://leetcode.com/problems/kth-largest-element-in-an-array" rel="noopener noreferrer"&gt;215. Kth Largest Element in an Array&lt;/a&gt;&lt;br&gt;
52) &lt;a href="https://leetcode.com/problems/top-k-frequent-elements" rel="noopener noreferrer"&gt;347. Top K Frequent Elements&lt;/a&gt;&lt;br&gt;
53) &lt;a href="https://leetcode.com/problems/k-closest-points-to-origin" rel="noopener noreferrer"&gt;973. K Closest Points to Origin&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Binary Tree
&lt;/h3&gt;

&lt;p&gt;54) &lt;a href="https://leetcode.com/problems/binary-tree-inorder-traversal" rel="noopener noreferrer"&gt;94. Binary Tree Inorder Traversal&lt;/a&gt;&lt;br&gt;
55) &lt;a href="https://leetcode.com/problems/find-mode-in-a-binary-search-tree" rel="noopener noreferrer"&gt;501. Find Mode in Binary Search Tree&lt;/a&gt;&lt;br&gt;
56) &lt;a href="https://leetcode.com/problems/diameter-of-binary-tree" rel="noopener noreferrer"&gt;543. Diameter of Binary Tree&lt;/a&gt;&lt;br&gt;
57) &lt;a href="https://leetcode.com/problems/symmetric-tree" rel="noopener noreferrer"&gt;101. Symmetric Tree&lt;/a&gt;&lt;br&gt;
58) &lt;a href="https://leetcode.com/problems/minimum-depth-of-binary-tree" rel="noopener noreferrer"&gt;111. Minimum Depth of Binary Tree&lt;/a&gt;&lt;br&gt;
59) &lt;a href="https://leetcode.com/problems/range-sum-of-bst" rel="noopener noreferrer"&gt;938. Range Sum of BST&lt;/a&gt;&lt;br&gt;
60) &lt;a href="https://leetcode.com/problems/maximum-depth-of-binary-tree" rel="noopener noreferrer"&gt;104. Maximum Depth of Binary Tree&lt;/a&gt;&lt;br&gt;
61) &lt;a href="https://leetcode.com/problems/invert-binary-tree" rel="noopener noreferrer"&gt;226. Invert Binary Tree&lt;/a&gt;&lt;br&gt;
62) &lt;a href="https://leetcode.com/problems/balanced-binary-tree" rel="noopener noreferrer"&gt;110. Balanced Binary Tree&lt;/a&gt;&lt;br&gt;
63) &lt;a href="https://leetcode.com/problems/binary-tree-vertical-order-traversal" rel="noopener noreferrer"&gt;314. Binary Tree Vertical Order Traversal&lt;/a&gt;&lt;br&gt;
64) &lt;a href="https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree-iii" rel="noopener noreferrer"&gt;1650. Lowest Common Ancestor of a Binary Tree III&lt;/a&gt;&lt;br&gt;
65) &lt;a href="https://leetcode.com/problems/validate-binary-tree-nodes" rel="noopener noreferrer"&gt;1361. Validate Binary Tree Nodes&lt;/a&gt;&lt;br&gt;
66) &lt;a href="https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree" rel="noopener noreferrer"&gt;236. Lowest Common Ancestor of a Binary Tree&lt;/a&gt;&lt;br&gt;
67) &lt;a href="https://leetcode.com/problems/find-largest-value-in-each-tree-row" rel="noopener noreferrer"&gt;515. Find Largest Value in Each Tree Row&lt;/a&gt;&lt;br&gt;
68) &lt;a href="https://leetcode.com/problems/validate-binary-search-tree" rel="noopener noreferrer"&gt;98. Validate Binary Search Tree&lt;/a&gt;&lt;br&gt;
69) &lt;a href="https://leetcode.com/problems/binary-tree-right-side-view" rel="noopener noreferrer"&gt;199. Binary Tree Right Side View&lt;/a&gt;&lt;br&gt;
70) &lt;a href="https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list" rel="noopener noreferrer"&gt;426. Convert Binary Search Tree to Sorted Doubly Linked List&lt;/a&gt;&lt;br&gt;
71) &lt;a href="https://leetcode.com/problems/binary-tree-level-order-traversal" rel="noopener noreferrer"&gt;102. Binary Tree Level Order Traversal&lt;/a&gt;&lt;br&gt;
72) &lt;a href="https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree" rel="noopener noreferrer"&gt;109. Convert Sorted List to Binary Search Tree&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Graphs (DFS/BFS)
&lt;/h3&gt;

&lt;p&gt;73) &lt;a href="https://leetcode.com/problems/flood-fill" rel="noopener noreferrer"&gt;733. Flood Fill&lt;/a&gt;&lt;br&gt;
74) &lt;a href="https://leetcode.com/problems/number-of-islands" rel="noopener noreferrer"&gt;200. Number of Islands&lt;/a&gt;&lt;br&gt;
75) &lt;a href="https://leetcode.com/problems/island-perimeter" rel="noopener noreferrer"&gt;463. Island Perimeter&lt;/a&gt;&lt;br&gt;
76) &lt;a href="https://leetcode.com/problems/number-of-provinces" rel="noopener noreferrer"&gt;547. Number of Provinces&lt;/a&gt;&lt;br&gt;
77) &lt;a href="https://leetcode.com/problems/is-graph-bipartite" rel="noopener noreferrer"&gt;785. Is Graph Bipartite?&lt;/a&gt;&lt;br&gt;
78) &lt;a href="https://leetcode.com/problems/find-the-celebrity" rel="noopener noreferrer"&gt;277. Find the Celebrity&lt;/a&gt;&lt;br&gt;
79) &lt;a href="https://leetcode.com/problems/max-area-of-island" rel="noopener noreferrer"&gt;695. Max Area of Island&lt;/a&gt;&lt;br&gt;
80) &lt;a href="https://leetcode.com/problems/shortest-bridge" rel="noopener noreferrer"&gt;934. Shortest Bridge&lt;/a&gt;&lt;br&gt;
81) &lt;a href="https://leetcode.com/problems/nested-list-weight-sum" rel="noopener noreferrer"&gt;339. Nested List Weight Sum&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Graphs (Topological Sort)
&lt;/h3&gt;

&lt;p&gt;82) &lt;a href="https://leetcode.com/problems/course-schedule" rel="noopener noreferrer"&gt;207. Course Schedule&lt;/a&gt;&lt;br&gt;
83) &lt;a href="https://leetcode.com/problems/find-all-possible-recipes-from-given-supplies" rel="noopener noreferrer"&gt;2115. Find All Possible Recipes from Given Supplies&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dynamic Programming
&lt;/h3&gt;

&lt;p&gt;84) &lt;a href="https://leetcode.com/problems/fibonacci-number" rel="noopener noreferrer"&gt;509. Fibonacci Number&lt;/a&gt;&lt;br&gt;
85) &lt;a href="https://leetcode.com/problems/best-time-to-buy-and-sell-stock" rel="noopener noreferrer"&gt;121. Best Time to Buy and Sell Stock&lt;/a&gt; &lt;br&gt;
86) &lt;a href="https://leetcode.com/problems/climbing-stairs" rel="noopener noreferrer"&gt;70. Climbing Stairs&lt;/a&gt;&lt;br&gt;
87) &lt;a href="https://leetcode.com/problems/pascals-triangle" rel="noopener noreferrer"&gt;118. Pascal's Triangle&lt;/a&gt;&lt;br&gt;
88) &lt;a href="https://leetcode.com/problems/coin-change" rel="noopener noreferrer"&gt;322. Coin Change&lt;/a&gt;&lt;br&gt;
89) &lt;a href="https://leetcode.com/problems/word-break" rel="noopener noreferrer"&gt;139. Word Break&lt;/a&gt;&lt;br&gt;
90) &lt;a href="https://leetcode.com/problems/longest-string-chain" rel="noopener noreferrer"&gt;1048. Longest String Chain&lt;/a&gt;&lt;br&gt;
91) &lt;a href="https://leetcode.com/problems/edit-distance" rel="noopener noreferrer"&gt;72. Edit Distance&lt;/a&gt;&lt;br&gt;
92) &lt;a href="https://leetcode.com/problems/minimum-path-sum" rel="noopener noreferrer"&gt;64. Minimum Path Sum&lt;/a&gt;&lt;br&gt;
93) &lt;a href="https://leetcode.com/problems/integer-break" rel="noopener noreferrer"&gt;343. Integer Break&lt;/a&gt; &lt;br&gt;
94) &lt;a href="https://leetcode.com/problems/decode-ways" rel="noopener noreferrer"&gt;91. Decode Ways&lt;/a&gt;&lt;br&gt;
95) &lt;a href="https://leetcode.com/problems/longest-arithmetic-subsequence" rel="noopener noreferrer"&gt;1027. Longest Arithmetic Subsequence&lt;/a&gt;&lt;br&gt;
96) &lt;a href="https://leetcode.com/problems/trapping-rain-water" rel="noopener noreferrer"&gt;42. Trapping Rain Water&lt;/a&gt;&lt;br&gt;
97) &lt;a href="https://leetcode.com/problems/house-robber" rel="noopener noreferrer"&gt;198. House Robber&lt;/a&gt;&lt;br&gt;
98) &lt;a href="https://leetcode.com/problems/longest-common-subsequence" rel="noopener noreferrer"&gt;1143. Longest Common Subsequence&lt;/a&gt;&lt;br&gt;
99) &lt;a href="https://leetcode.com/problems/paint-fence" rel="noopener noreferrer"&gt;276. Paint Fence&lt;/a&gt;&lt;br&gt;
100) &lt;a href="https://leetcode.com/problems/unique-paths" rel="noopener noreferrer"&gt;62. Unique Paths&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
