1704. Determine if String Halves Are Alike

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျနော်တို့ဒီနေ့ရှင်းမယ့် ပြဿနာက 1704. Determine if String Halves Are Alike ဆိုတဲ့ leetcode question ဘဲဖြစ်ပါတယ်။ မေးခွန်းကရှင်းပါတယ်။ string တခုပေးထားမယ်။ အဲ့ string ကိုတဝက်ဝက်ပီးတော့ ဘယ်ညာ ၂ ဖတ်လုံးမှာ vowels ပါတာညီရင် true ပြန်ပေးမဟုတ်ဘူးဆိုရင် false ပြန်ပေးရမှာ။ vowels တွေက lowercase လဲဖြစ်နိုင်သလို uppercase လဲဖြစ်နိုင်တယ်။ constraints တွေက ပေးထားတဲ့ string length က 2 ထက်ကြီးမယ် 1000 နှင့်အောက်ဖြစ်မယ်။ string ရဲ့length က even […]

1026. Maximum Difference Between Node and Ancestor

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျနော်တို့ဒီနေ့ရှင်းမယ့် ပြဿနာက 1026. Maximum Difference Between Node and Ancestor ဆိုတဲ့ leetcode question ဘဲဖြစ်ပါတယ်။ မေးခွန်းက binary tree ပေးထားမယ်။ ancestor နဲ့ descendant nodes တွေထဲကအကြီးဆုံး difference ကိုရှာပါတဲ့။ ဒီပြဿနာကိုဖြေရှင်းဖို့ဆိုရင် binary tree သိရမယ်။ binary tree traversal ဘယ်လိုလုပ်ရလဲသိရမယ်။ ကျနော်တို့အဖြေက Depth-First Seach (DFS) ကိုသုံးထားတယ်။ TreeNode ကကျနော်တို့ binary tree node အတွက်။ နောက် buildTree ဆိုတာ စမ်းကြည့်ပီး code […]

2385. Amount of Time for Binary Tree to Be Infected

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ဒီနေ့ကျနော်တို့ solve မယ့် problem က Amount of Time for Binary Tree to Be Infected ပါ။ မေးခွန်းကို ဒီ link မှာသွားကြည့်ပါ။ ဒီမေးခွန်းကိုဖြေနိုင်ဖို့သိရမယ့်ဟာ ၂ ခုရှိတယ်။ တခုက Binary Tree ဆိုတာဘာလဲသိရမယ်။ နောက်တခုက Infection Spread ဆိုတဲ့ concept သိရမယ်။ Binary Tree ကတော့ရှင်းပါတယ်။ သူက tree, သူ့ရဲ့ node တွေကအများဆုံး children ၂ခုရှိမယ်။ left/rgith child ဆိုပီးပြောကြတယ်။ ဟိုးအပေါ်ဆုံးကကောင်ကိုကြ root node […]

125. Valid Palindrome

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ Leetcode မေးခွန်းကိုကြည့်ရန် ဒီ Link ကိုနှိပ်ပါ။ ဒီ problem ကဘာလဲဆို Palindrome ဟုတ်မဟုတ်စစ်ရမှာပေါ့။ Palindrome ဆိုတာဘာလဲဆိုရင် ရှေ့နှင့်နောက်နှင့်ညီနေတာမျိုး ဥပမာ “A man, a plan, a canal: Panama” သူ့ကိုကြည့်လိုက်မယ်ဆိုရင် ရှေ့နှင့်နောက်နှင့်ညီနေတာ ဒါမျိုးကိုပြောတာပေါ့။ problem ကပြောထားတာက uppercase letters တွေကို lower case ပြောင်း non-alphanumeric တွေကို remove လုပ်ရမယ်။ ရှေ့ကဖတ်ဖတ် နောက်ကဖတ်ဖတ်တူကမယ်။ တူတယ်ဆိုရင် true မတူဘူးဆိုရင် false ပြန်ရမယ်။ ပထမဆုံးစဥ်းစားမိတာက သူ့ problem ထဲကအတိုင်းဘဲလုပ်တာပေါ့။ ပေးလိုက်တဲ့ […]

217. Contains Duplicate

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ Leetcode မေးခွန်းကိုကြည့်ရန် ဒီ Link ကိုနှိပ်ပါ။ Title နဲ့တင်ကိုရှင်းပါတယ် duplicate ပါမပါစစ်ကမှာ။ ဥပမာလေးတွေကိုတချက်ကြည့်ကြည့်ရအောင်… အဲ့တော့ duplicate ဖြစ်မဖြစ်စစ်ကမှာ။ အဲ့လိုစစ်ဖို့ပထမဆုံးတွေးမိတာက Brute Force နဲ့ စစ်မယ်။code ကိုတချက်ကြည့်လိုက်ရအောင်… သူ့ပြဿနာကဘာလဲဆိုတော့ Time Complexity: O(n^2) ဖြစ်နေတာ၊ ဒါပေမယ့် Space Complexity က O(1)။ နောက်တနည်းတွေးမိတာက sort လုပ်ပီးတော့ loop ပတ်မယ် နောက်က element ကလက်ရှိနဲ့တူလားစစ်မယ်အဲ့လိုမျိုးပေါ့။ Sort လုပ်တဲ့အတွက် သူ့ time complexity က O(n log n), duplicate ဖြစ်မဖြစ်ရှာတာက […]

Graph Algorithms

ကိုယ်တိုင် Graph နဲ့ပတ်သတ်တဲ့ Leetcode တွေရှင်းတဲ့အချိန်မှာ နဲနဲအခက်အခဲဖြစ်နေလို့ သေချာလိုက်ကြည့်ဖြစ်လို့ မြန်မာလိုရေးထားတာလဲမတွေ့မိလို့ ကိုယ်တိုင်လိုက်လေ့လာရင်းနှင့် တခြားကိုယ့်လိုသိချင်တဲ့သူတွေလဲ မြန်မာလိုလွယ်လွယ်ကူကူဖတ်ပီးနားလည်ပါစေဆိုတဲ့ စိတ်နှင့်ရေးထားတာပါ။ မှားယွှင်းနေတာ လွဲနေတာတွေရှိရင် comment မှာထောက်ပြပေးဖို့ပြောလိုပါတယ်။ ကျနော် reference ယူထားတဲ့ video တွေစာအုပ်တွေကိုအောက်ဆုံးမှာဖော်ပြထားပါတယ်။ ဒီ Graph အကြောင်းကိုမဖတ်ခင်သိထားရမယ့်ဟာလေးတွေရှိပါတယ်။ Basic Data structure နှင့် Recurssion လိုမျိုးပေါ့။ အခြေခံ Data structure တွေအကြောင်းကို ကျနော်ဒီမှာ ဘာသာပြန်ထားတာရှိပါတယ်။ ဒီမှာ ကျနော်ရေးထားတာမြန်မာလိုရေးထားပီးတော့ စကားလုံးတော်တော်များများကို ကျနော်ဘာသာပြန်ဖို့မကြိုးစားထားပါဘူး။ ဘာလို့လဲဆိုရင် ကျနော်တို့ leetcode problem တွေဖြေရှင်းတဲ့အချိန်မှာဘဲဖြစ်ဖြစ် တခြားစာအုပ်တွေဖတ်တဲ့အခါမှာလဲ ဒီစကားလုံးတွေကသုံးနေရမှာမလို့ပါ။ တက်နိုင်သလောက်တော့ ဘာသာပြန်ပီးထည့်ထားပါတယ်။ Graph ဆိုတာဘာလဲ graph = nodes + […]

Valid anagram

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျွန်တော်တို့ဒီနေ့ solve လုပ်မယ့် problem ကတော့ Valid anagram ဘဲဖြစ်ပါတယ်။ Leetcode က Question တစ်ခုဘဲဖြစ်ပါတယ်။ ပထမဦးဆုံး Question ကိုတစ်ချက်ကြည့်လိုက်ရအောင် string နှစ်ခုပေးမယ် s နှင့် t ဆိုပြီးတော့။ အဲ့ဒါကိုကျွန်တော်တို့စစ်ကမှာက t is an anagram of s ဖြစ်လားဆိုတာကိုပါဘဲ။ Question မှာမှတ်ချက်ပါသေးတယ်။ ဘာလဲဆိုရင် string တွေက lowercase alphabets တွေဘဲပါပါ့မယ်တဲ့။ Follow up မေးနိုင်တာကတော့ input မျာ unicode characters တွေပါရင်ဘယ်လိုဖြေရှင်းမလဲတဲ့။ အဖြေမစခင် Anagram ဆိုတာဘာလဲနှင့် Example တစ်ချို့ကိုအရင်ကြည့်လိုက်ရအောင်။ […]

Logarithms ဆိုတာဘာလဲနှင့် O(log n) ဘယ်လိုတွက်မလဲ

Big O အကြောင်းရေးတော့ O(log n) အကြောင်းပါတစ်ခါတည်းရှင်းပြမလို့ဘဲ။ ဒါပေမယ့် Logarithms ဆိုတာဘာလည်းရှင်းပြရဦးမယ်ဆိုပြီး နောက်ထပ် Post တစ်ခုလုပ်ဖို့ဆုံးဖြတ်လိုက်တာ။ ဒီ Post မှာ Logarithms ကို ရှင်းပြရင်းနှင့် O(log n) ပါတစ်ခါတည်းရှင်းပြပါ့မယ်။ ကျောင်းတုန်းကတော့ Logarithm ကိုသင်ခဲ့ဖူးတယ်။ ကျွန်တော်တော့မေ့ကုန်လို့ Khan Academy ကပြန်ကြည့်ရတယ်။ ပထမဆုံး Logarithms ဆိုတာဘာလဲကအရင်စရှင်းကြရအောင်… အထက်ဖော်ပြပါပုံရဲ့ ပထမ line မှာဆိုရင် 2 ^ 4 (2 power 4) က (2 x 2 x 2 x 2) 2 ကိုလေးခါမြှောက်တာနှင့်တူတယ်။ ဒုတိယ line မှာဆိုရင် 2 […]

DNS Record, what are A, CNAME, MX Records…?

ပထမဆုံး DNS Record အကြောင်းမပြောခင်… ကျွန်တော်တို့ပုံမှန်အသုံးပြုနေတဲ့ web browsing အကြောင်းကိုအရင်ပြောလိုက်ကြရအောင်။ ဥပမာ ygncode.com ကို browser URL မှာရိုက်ရှာလိုက်ပြီဆိုတာနှင့် ကွန်ပျူတာက ygncode.com ရဲ့ server ဘယ်မှာလဲဆိုတာသိဖို့လိုတယ်။ အဲ့လိုသိဖို့လုပ်တဲ့နည်းကို Domain Name System (DNS) လို့ခေါ်တယ်။ DNS ဘယ်လိုအလုပ်လုပ်လဲ အသေးစိတ် သိချင်တယ်ဆိုရင် အောက်ဖော်ပြပါ YouTube Video မှာလေ့လာနိုင်ပါတယ်။ ကာတွန်းလေးတွေနှင့်ရှင်းပြထားတဲ့ How DNS Work ဆိုတဲ့ website လည်းရှိတယ်… အတော်လေးကိုပြည့်စုံတယ်။ ကျွန်တော်တို့ domain name တစ်ခု register လုပ်လိုက်ပီဆိုရင် DNS Records တွေကိုအများကြီးထည့်လို့ရတယ်။ ကျွန်တော်တော့ Cloudflare နှင့် Digital Ocean […]