Tag: leetcode
80 รายการ
Blog

LeetCode #57 Insert Interval: หมี มด เหยี่ยว แข่งแทรกช่วงเวลา
แทรกช่วงเวลาแล้วรวมส่วนที่ทับกันด้วย Python 3 วิธี ผ่านวงโต้วาทีของหมี มด และเหยี่ยว พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #205 Isomorphic Strings: วาฬ แมว ลิง นกแก้ว ประชันสมุดแปลงอักษร
เข้าใจสตริงที่มีรูปแบบเดียวกันผ่านสัตว์การ์ตูน 4 วิธี พร้อมโค้ด 5 แบบ เทสต์ และ benchmark ที่รันจริงบนเครื่องนี้

LeetCode #242 Valid Anagram: ช้าง กระรอก ผึ้ง นกฮูก ใครนับแม่นสุด
ตรวจคำสลับอักษรด้วย Python 4 วิธี ผ่านวงถกของสัตว์นักนับ พร้อมเทสต์และ benchmark ที่รันจริงบนเครื่องนี้

LeetCode #973 K Closest Points to Origin: หมี เพนกวิน จิ้งจอก ลิง ชิงจุดใกล้สุด
หาจุดใกล้จุดกำเนิดด้วย Python 4 วิธี ตั้งแต่ sort ถึง quickselect พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #35 Search Insert Position: เต่า เหยี่ยว แมว ชิงตำแหน่งเสียบเลข
เทียบ 3 วิธีหาตำแหน่งแทรกในลิสต์เรียงแล้ว ตั้งแต่เดินทีละช่องถึง binary search และ bisect พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #88 Merge Sorted Array: ช้าง กระต่าย นกฮูก ประลองรวมคิว
รวมอาร์เรย์ที่เรียงแล้วด้วย 3 วิธี ผ่านวงถกของช้าง กระต่าย และนกฮูก พร้อมเทสต์และ benchmark ที่รันจริงใน Python

LeetCode #48 Rotate Image: ยีราฟ จิ้งจอก เพนกวิน มดงาน หมุนรูป 90 องศาให้ไม่เบี้ยว
หมุนเมทริกซ์ n×n ตามเข็มนาฬิกา 90 องศา 4 วิธี ตั้งแต่สร้างตารางใหม่จนถึงสลับทีละชั้นแบบ in-place พร้อม benchmark ที่รันจริงสองขนาด

LeetCode #136 Single Number: ผึ้ง เป็ด กระต่าย แพนด้า หาเลขโสดตัวเดียวในฝูงคู่
หาเลขที่ไม่มีคู่ในลิสต์ที่ทุกตัวอื่นซ้ำสองครั้ง 4 วิธี ตั้งแต่นับด้วย dict จนถึง XOR ที่ไม่ใช้ที่เพิ่ม พร้อม benchmark จริงและตารางเลือกใช้

LeetCode #189 Rotate Array: เต่า ช้าง แมว นกฮูก กระรอก ใครหมุนอาร์เรย์เก่งสุด
หมุนอาร์เรย์ไปทางขวา k ช่อง 5 วิธีที่ต่างกันจริง เทียบเวลาและหน่วยความจำ พร้อม benchmark ที่รันบนเครื่องนี้ และตารางเลือกวิธีตามสถานการณ์

LeetCode #438 Find All Anagrams: หน้าต่างเลื่อนชนะการ sort ทุกช่อง
แมวขี้เกียจกับนากนับตัวอักษรเถียงกันเรื่องหา anagram ทุกตำแหน่ง พร้อม benchmark จริง

LeetCode #239 Sliding Window Maximum: คิวสองหัวชนะการหา max ทุกหน้าต่าง
หมีขี้เกียจ นากคิว และนกฮูกกองโต เถียงกันเรื่องหาค่ามากสุดในทุกหน้าต่างขนาด k พร้อม benchmark จริง

LeetCode #424 Longest Repeating Character Replacement: หน้าต่างเลื่อน vs ไล่ทุกช่วง
กบขี้เกียจ นากขยัน และนกฮูกแผนที่ เถียงกันเรื่องเปลี่ยนตัวอักษรได้ k ครั้งให้ช่วงยาวสุด พร้อม benchmark จริงบนเครื่องนี้
LeetCode #394 Decode String: แกะวงเล็บซ้อนด้วย stack
เทียบ 3 วิธีถอดข้อความ k[encoded] พร้อม parser, stack, Python, Java, complexity และ decision table
LeetCode #73 Set Matrix Zeroes: ใช้แถวแรกเป็นสมุดจด
เทียบ 3 วิธีทำแถวและคอลัมน์ให้เป็นศูนย์ พร้อมวิธี O(1), Python, Java, edge cases และ decision table
LeetCode #2 Add Two Numbers: บวก linked list ด้วย carry ทีละหลัก
เทียบ 3 วิธีบวกเลขที่เก็บกลับหลักใน linked list พร้อม Python, Java, complexity, edge cases และ decision table

LeetCode #283 Move Zeroes: 5 สัตว์เถียงกันว่าใครย้ายลังเปล่าได้เร็วสุด
ลบแล้วต่อท้าย, สร้าง list ใหม่, sort ด้วย key, สองตัวชี้สลับ และเขียนทับแล้วเติม 0 มาเถียงกันในโจทย์ย้ายเลขศูนย์ไปท้าย พร้อม test และ benchmark ที่วัดจริง

LeetCode #268 Missing Number: 5 วิธีเถียงกันว่าใครเร็วสุด แล้วให้ benchmark ตัดสิน
ไล่ทีละตัว, sort, set, สูตรผลบวก และ XOR มาเถียงกันในโจทย์หาเลขที่หายไป พร้อม test และผล benchmark ที่วัดจริง
LeetCode 79 Word Search: backtracking ที่คืนสถานะกระดานทุกทางออก
เทียบ visited set, in-place marking และ frequency pruning พร้อม complexity, edge cases, decision table และ Python tests
LeetCode 15 3Sum: sort แล้วบีบสองฝั่งเพื่อคุมชุดซ้ำ
เทียบ two pointers, hash per pivot และ brute-force oracle พร้อม complexity, duplicate rules, decision table และ Python tests
LeetCode 55 Jump Game: ไปถึงปลายทางด้วย greedy แบบไม่แบกตาราง
เทียบ forward reach, backward goal และ dynamic programming พร้อม complexity, edge cases, decision table และ Python tests
LeetCode 14 Longest Common Prefix: หดคำตั้งต้นจนทุกคำยอมรับ
เทียบ horizontal shrink, vertical scan และ sort first-last พร้อม complexity, edge cases, decision table และ Python tests
LeetCode 7 Reverse Integer: กลับหลักพร้อมหยุดก่อนล้น 32-bit
เทียบ string reversal กับ arithmetic pop-push พร้อม overflow guard, complexity, edge cases, decision table และ Python tests
LeetCode 4 Median of Two Sorted Arrays: แบ่งสองฝั่งให้ซ้ายไม่เกินขวา
เทียบ merge, kth elimination และ binary partition พร้อม complexity, edge cases, decision table และ Python tests ที่รันจริง
LeetCode 287 Find the Duplicate Number: 4 วิธีจาก Set ถึง Floyd Cycle
เทียบ hash set, sort, binary search บนช่วงค่า และ Floyd cycle detection พร้อม decision table และ Python tests
LeetCode 105: สร้าง Binary Tree จาก Preorder กับ Inorder
เทียบ recursive hash map, iterative stack และ naive scan พร้อม complexity, decision table และ Python tests
LeetCode 54 Spiral Matrix: เดินขอบให้ครบโดยไม่หลงมุม
เทียบ 2 วิธีเดินเมทริกซ์แบบก้นหอย พร้อม complexity, edge cases, decision table และ Python tests ที่รันจริง
LeetCode #133 Clone Graph: คัดลอกวงจรด้วยตาราง old-to-new
เทียบ DFS และ BFS สำหรับ clone กราฟ พร้อม edge cases, decision table และ tests ตรวจ deep copy
LeetCode #62 Unique Paths: นับทางเดินด้วย memo, DP และคณิตศาสตร์
เทียบ top-down, bottom-up และ combinatorics พร้อม complexity, decision table และ Python tests
LeetCode #153 หาเลขน้อยสุดใน rotated array: อ่านรอยต่อด้วย binary search
เทียบ linear scan, sort-copy และ binary search พร้อม decision table, edge cases และ Python tests
LeetCode #417 Pacific Atlantic: เดินน้ำย้อนจากสองมหาสมุทร
เทียบ brute force, reverse DFS/BFS และ bitmask frontier พร้อม decision table และ Python tests
LeetCode #230 Kth Smallest in BST: หยุด inorder เมื่อถึงลำดับ
เทียบ inorder ทั้งชุด, iterative early-stop และ subtree size พร้อม decision table และ tests
LeetCode #139 Word Break: ต่อคำให้เต็มสตริงโดยไม่หลงทางซ้ำ
เทียบ DP, memoized DFS, BFS และ trie พร้อม decision table และ Python unittest ที่รันจริง
LeetCode #208 Implement Trie: ต้นไม้คำนำหน้าสำหรับค้นเร็ว
เทียบโหนด+dict, อาเรย์ 26 ช่อง และเซ็ตคำแบบช้า พร้อมเลือกใช้ตามสถานการณ์
LeetCode #46 Permutations: สลับให้ครบทุกแถวโดยไม่ซ้ำตำแหน่ง
เทียบ backtracking+used, swap in-place และ itertools พร้อม tradeoff
LeetCode #22 Generate Parentheses: เปิด-ปิดให้ถูกทุกแบบ
เทียบ backtracking นับเปิด/ปิด, brute+validate และ DP แบบ Catalan พร้อม decision table
LeetCode #39 Combination Sum: เลือกซ้ำได้ แต่ห้ามสร้างคำตอบซ้ำ
เทียบ include-skip, sorted backtracking และ bottom-up DP พร้อม pruning และ decision table
LeetCode #23 Merge k Sorted Lists: เลือกหัวที่เล็กสุดโดยไม่ sort ทั้งกอง
เทียบ collect-sort, merge ทีละลิสต์, heap และ divide-and-conquer พร้อม decision table
LeetCode #19 Remove Nth Node From End: เว้นระยะให้ pointer นำทาง
เทียบสองรอบ, two pointers และ stack พร้อม complexity, edge cases และ decision table
LeetCode #215 Kth Largest: sort, heap และ quickselect เลือกเมื่อไร
สามวิธีหาค่าอันดับ k โดยนับค่าซ้ำ พร้อม worst case, memory และการแก้ input
LeetCode #169 Majority Element: นับ จัดเรียง หรือหักคะแนนเสียง
เทียบ Counter, sorting และ Boyer–Moore พร้อมเงื่อนไข majority ที่ต้องมีจริง
LeetCode #739 Daily Temperatures: รอวันอุ่นขึ้นด้วย stack หรือมองอุณหภูมิที่เป็นไปได้
เทียบ brute force, monotonic stack และช่วงอุณหภูมิจำกัด พร้อมตารางเลือกวิธีและ Python tests
LeetCode #560 Subarray Sum Equals K: prefix sum + ฮัชแมปนับครั้ง
เทียบ brute O(n²) กับ prefix-sum hashmap O(n) สำหรับนับ subarray ที่ผลรวมเท่ากับ k
LeetCode #234 Palindrome Linked List: หา mid แล้วกลับครึ่งหลังเทียบ
สามแนวทางเช็กพาลินโดรมลิงก์ลิสต์ — คัดลอกเป็นอาร์เรย์, reverse ทั้งก้อน, และ O(1) space ด้วย slow/fast + reverse ครึ่งหลัง
LeetCode #198 House Robber: DP บ้านคู่กันห้ามปล้น — จากอาร์เรย์สู่ตัวแปรสองตัว
อธิบาย House Robber สามระดับ: DP อาร์เรย์, rolling variables, และเมื่อไหร่ไม่ควร recursion ดิบ
LeetCode #300 LIS: จาก DP ตารางตรงไปตรงมาถึง patience sorting และ Fenwick tree
เทียบสามวิธีหา longest increasing subsequence พร้อม strict-increasing detail, complexity และ unittest
LeetCode #104 Maximum Depth: Recursive DFS, stack หรือ BFS เลือกจากรูปทรงต้นไม้
เทียบสามวิธีหาความลึกสูงสุดของ binary tree พร้อม memory tradeoff, skewed tree และ unittest ที่รันจริง
LeetCode #125 Valid Palindrome: กรองก่อนหรือเดินสองด้าน แบบไหนเหมาะกว่า
เทียบ normalize-and-reverse, two pointers และ deque สำหรับตรวจ palindrome พร้อม complexity, Unicode caveat และ unittest
LeetCode #76 Minimum Window Substring: Sliding Window ที่นับ Duplicate ถูก
เทียบ brute force กับ sliding window พร้อม invariant ของ formed/required, complexity, edge cases และ unittest
LeetCode #5 Longest Palindromic Substring: ขยายจากกลาง, DP หรือ Manacher
เทียบสามวิธีหาพาลินโดรมยาวสุด พร้อม complexity, edge cases, decision table และ unittest ที่รันจริง
LeetCode #128 Longest Consecutive Sequence: เริ่มนับเฉพาะหัวแถว
เทียบ sort กับ hash set สำหรับลำดับจำนวนเต็มต่อเนื่อง พร้อม complexity, duplicate edge cases และ unittest
LeetCode #207 Course Schedule: ตรวจวงจรด้วย Kahn BFS หรือ DFS สีสามสถานะ
เทียบ topological sort สองแบบ พร้อม complexity, graph edge cases, decision table และ unittest
LeetCode #75 Sort Colors: Counting เทียบ Dutch National Flag แบบเขียนทับในที่เดิม
เทียบ 3 วิธีเรียง 0,1,2 พร้อม invariant, mutation tradeoff, decision table และ unittest
LeetCode #78 Subsets: ขยายคำตอบ, backtracking หรือ bitmask เลือกแบบไหนดี
เทียบ 3 วิธีสร้าง power set พร้อม complexity, edge cases, decision table และ unittest ที่รันจริง

LeetCode #543 Diameter of Binary Tree: เส้นทางยาวสุดผ่านโหนดใดก็ได้
อธิบายเส้นผ่านศูนย์กลางของต้นไม้ทวิภาคด้วย DFS เก็บ best พร้อมแนวอื่นและ unittest

LeetCode #226 Invert Binary Tree: สลับลูกซ้าย-ขวาแบบ recursive / BFS
เทียบสี่แนวทางพลิกต้นไม้ทวิภาค พร้อมความซับซ้อนและ unittest

LeetCode #146 LRU Cache: HashMap + Doubly Linked List คุมความเร็ว O(1)
เทียบแนวลิสต์ธรรมดา OrderedDict และ HashMap+DLL สำหรับ LRU พร้อมเลือกวิธีตามสถานการณ์และ unittest
LeetCode 155: Min Stack เก็บค่าต่ำสุดอย่างไรให้ทุกคำสั่ง O(1)
เทียบ scan, dual stack, pair stack และ encoded difference พร้อม edge cases, decision table และ self-contained tests
LeetCode 98: ตรวจ BST ด้วย Bound หรือ Inorder แบบไหนชัดกว่า
เทียบ recursive bounds, iterative inorder และเก็บลำดับก่อนตรวจ พร้อม complexity, decision table และ test กรณี node ผิดข้าม subtree
LeetCode 33: ค้นหาใน Array ที่หมุนแล้ว เลือก Linear หรือ Binary ดี
เทียบ 3 วิธีตั้งแต่สแกนตรง, หา pivot แล้ว binary search และ one-pass binary พร้อมตารางตัดสินใจและ test ครบ edge case

LeetCode #42 Trapping Rain Water: น้ำขังระหว่างแท่งความสูง
เทียบ two pointers, prefix/suffix max และโมโนโทนิกสแต็ก พร้อมเทสต์ python และตารางเลือกใช้

LeetCode #347 Top K Frequent Elements: กองหรือถังนับความถี่
เทียบ Counter+heap, bucket sort ตามความถี่ และ sorting พร้อมเทสต์ python และตารางเลือกใช้

LeetCode #49 Group Anagrams: จัดกลุ่มคำที่ตัวอักษรเหมือนกัน
เทียบ sorted-key, count-tuple key และคู่มือเลือกใช้ พร้อมเทสต์ python รันได้
LeetCode 102 Level Order Traversal: เลือก queue, index หรือ DFS
เทียบ BFS ด้วย deque, list พร้อม head index และ DFS สะสมตาม depth พร้อม trade-off ด้าน width recursion และ readability
LeetCode 11 Container With Most Water: ทำไมต้องขยับฝั่งเตี้ย
เทียบ brute force, suffix maximum และ two pointers พร้อมพิสูจน์การตัดตัวเลือกและเลือกวิธีตาม memory
LeetCode 217 Contains Duplicate: เลือก set, sort หรือ brute force
เทียบสามวิธีตรวจค่าซ้ำด้วยเวลา memory การแก้ input และ streaming พร้อม unittest ครบ edge cases

LeetCode #322 Coin Change: แลกเหรียญให้น้อยสุดด้วย DP
เทียบ greedy, BFS ตามจำนวนเหรียญ และ bottom-up DP พร้อมเคสแลกไม่ได้และเหรียญซ้ำค่า

LeetCode #70 Climbing Stairs: ก้าว 1 หรือ 2 แล้วจำผลย่อย
เทียบ recursion, memo, bottom-up DP และสูตรปิด พร้อม tradeoff และเคสบันไดสั้น

LeetCode #15 3Sum: หาสามตัวที่บวกกันได้ศูนย์โดยไม่ซ้ำชุด
เทียบ brute force, hash pair และ sort + two pointers พร้อม tradeoff เวลา/หน่วยความจำและเคสเลขซ้ำ
LeetCode #200 Number of Islands: Flood Fill, BFS หรือ Union-Find เลือกตามข้อจำกัด
เทียบสามวิธีนับเกาะ พร้อม complexity, edge cases, mutation trade-off และ tests ที่รันจริง
LeetCode #141 Linked List Cycle: เต่ากับกระต่ายพิสูจน์วงโดยไม่ใช้แรมเพิ่ม
เทียบ hash set กับ Floyd cycle detection พร้อม proof intuition, complexity, edge cases และ decision table
LeetCode #21 Merge Two Sorted Lists: เลือกโหนดเล็กแล้วต่อหาง
เทียบ iterative reuse, recursion และสร้างลิสต์ใหม่ พร้อม complexity, edge cases และ decision table

LeetCode #3 Longest Substring Without Repeating Characters: หน้าต่างเลื่อน
เทียบ brute force, set ขยาย/หด, และดัชนีล่าสุดของตัวอักษร พร้อมตารางเลือกวิธีและ unittest

LeetCode #238 Product of Array Except Self: คูณซ้ายขวาโดยไม่ใช้หาร
เทียบคูณตรงๆ แบบมีหาร, prefix/suffix อาร์เรย์, และอัปเดตจากขวาในที่เดียว พร้อม unittest

LeetCode #206 Reverse Linked List: พลิกพอยน์เตอร์ให้ชัวร์
เทียบวนซ้ำเก็บ prev, รีเคอร์ซีฟ, และใช้สแต็กช่วย พร้อม edge case ลิสต์ว่างและ unittest
LeetCode #704 Binary Search: บีบช่วงค้นหาโดยไม่หลุดขอบ
เทียบ linear, iterative, recursive และ bisect พร้อม invariant, edge cases และ Python unittest
LeetCode #53 Maximum Subarray: Kadane จากคำถามว่าจะต่อหรือเริ่มใหม่
เทียบ brute force, prefix minimum, Kadane และ divide-and-conquer พร้อมเคสเลขลบล้วนและ unittest
LeetCode #121 Best Time to Buy and Sell Stock: จำราคาต่ำสุดครั้งเดียว
เทียบสี่วิธีแก้โจทย์หุ้นหนึ่งธุรกรรม ตั้งแต่ลองทุกคู่ถึง one-pass พร้อม complexity และ unittest

LeetCode Valid Parentheses: สแต็กกับการจับคู่เครื่องหมาย
ติว Valid Parentheses หลายแนวทาง เทียบความชัดและประสิทธิภาพ แล้วแนะนำชุดที่เหมาะสัมภาษณ์กับโปรดักชัน

LeetCode Two Sum: ห้าแนวคิดจากช้าสุดถึงแผนที่หนึ่งรอบ
อธิบาย Two Sum แบบเพื่อนติว สองถึงห้าแนวทาง เทียบเวลาพื้นที่และความชัด แล้วแนะนำว่าจะใช้ตอนไวท์บอร์ด โปรดักชัน หรือมือใหม่

LeetCode Merge Intervals: เรียงก่อนแล้วค่อยยุบช่วงซ้อน
อธิบาย Merge Intervals หลายแนวทาง เทียบความชัดเวลาและพื้นที่ พร้อมคำแนะนำสำหรับสัมภาษณ์และงานจริง