คำถามสัมภาษณ์งาน Software Engineer ที่ Google (2026)

กระบวนการสัมภาษณ์วิศวกรซอฟต์แวร์ของ Google มีชื่อเสียงในด้านการให้ความสำคัญกับโครงสร้างข้อมูลและอัลกอริทึม ผู้สมัครส่วนใหญ่จะเจอรอบการเขียนโค้ดสองถึงสามรอบ รอบออกแบบระบบอย่างน้อยหนึ่งรอบ (สำหรับระดับ L4 ขึ้นไป) และรอบพฤติกรรมที่ Google เรียกภายในว่า 'Googleyness and Leadership' มาตรฐานที่ต้องการไม่ใช่เทคนิคแปลกใหม่ แต่เป็นวิธีแก้ปัญหาที่สะอาด ถูกต้อง สื่อสารได้ดี พร้อมการวิเคราะห์ความซับซ้อนที่แน่นหนา

ผู้สัมภาษณ์ได้รับการฝึกให้ประเมินวิธีคิดของคุณ ไม่ใช่ว่าคุณจำโจทย์เฉพาะได้หรือไม่ พวกเขาต้องการฟังให้คุณชี้แจงปัญหา ระบุข้อสมมติ ให้เหตุผลออกมาดัง ๆ เกี่ยวกับเวลาและพื้นที่ และจัดการกับคำถามต่อเนื่องที่เพิ่มความเข้มงวดของข้อจำกัด วิธีแก้แบบ brute force ที่ใช้งานได้แล้วค่อยปรับให้เหมาะสม ดีกว่าวิธีแก้ที่เหมาะสมที่สุดแบบจำมาครึ่ง ๆ กลาง ๆ ที่คุณอธิบายไม่ได้

คำถามด้านล่างสะท้อนหมวดหมู่ที่ Google ให้ความสำคัญ ฝึกเล่าแนวทางของคุณออกมา: ความแตกต่างระหว่างสัญญาณระดับ L3 และ L4 มักอยู่ที่การสื่อสารและความสามารถในการพูดถึงข้อแลกเปลี่ยน ไม่ใช่ความเร็วในการแก้ปัญหาแบบดิบ ๆ

คำถามสัมภาษณ์งาน Software Engineer ที่ Google และวิธีตอบ

1. กำหนดรายการช่วงเวลา จงรวมช่วงที่ทับซ้อนกันทั้งหมด

แนวทาง: เรียงตามเวลาเริ่มต้น จากนั้นสแกนครั้งเดียวโดยรวมเมื่อจุดเริ่มต้นปัจจุบัน ≤ จุดสิ้นสุดก่อนหน้า O(n log n) ถูกครอบงำโดยการเรียงลำดับ พูดค่าคงที่ที่เรียงลำดับแล้วออกมาดัง ๆ — ผู้สัมภาษณ์ Google ให้คุณค่ากับแนวทางที่ระบุไว้อย่างชัดเจนก่อนเขียนโค้ด

2. หาสมาชิกที่ใหญ่เป็นอันดับ k ในอาร์เรย์ที่ไม่ได้เรียงลำดับ

แนวทาง: เสนอ min-heap ขนาด k (O(n log k)) และ quickselect (เฉลี่ย O(n)) พูดถึงข้อแลกเปลี่ยน: quickselect เร็วกว่าโดยเฉลี่ยแต่กรณีเลวร้ายที่สุดคือ O(n²); heap มีความเสถียรกว่าและทำงานแบบ streaming ได้ การกล่าวถึงทั้งสองวิธีแสดงถึงความลึกซึ้ง

3. ทำ serialize และ deserialize กับไบนารีทรี

แนวทาง: เลือกการเดินผ่าน (preorder พร้อม null marker นั้นสะอาด) และแสดงให้เห็นว่าทั้งสองทิศทางมีความสอดคล้องกัน พูดถึงตัวแบ่งและวิธีสร้างใหม่ Google ชอบเห็นว่าคุณจัดการกรณีขอบของ null node อย่างชัดเจน

4. Word ladder: ลำดับการเปลี่ยนแปลงที่สั้นที่สุดระหว่างคำสองคำ

แนวทาง: สร้างแบบจำลองเป็น BFS บนกราฟที่เส้นเชื่อมเชื่อมคำที่ต่างกันหนึ่งตัวอักษร พูดถึงการสร้างความสัมพันธ์ใกล้เคียง (adjacency) อย่างมีประสิทธิภาพ (wildcard bucket) และเหตุผลที่ BFS รับประกันเส้นทางที่สั้นที่สุด BFS แบบสองทิศทางเป็นคำถามต่อเนื่องที่แข็งแรง

5. ออกแบบ LRU cache

แนวทาง: hash map + linked list แบบสองทิศทางสำหรับ get/put ใน O(1) อธิบายเส้นทางการขับออก (eviction) อย่างชัดเจน นี่คือคำถามอุ่นเครื่องคลาสสิกของ Google ที่ทดสอบว่าคุณสามารถรวมโครงสร้างสองแบบได้อย่างสะอาดภายใต้ความกดดันด้านเวลาหรือไม่

6. จำนวนเกาะในกริด 2 มิติ

แนวทาง: DFS หรือ BFS แบบ flood fill จากเซลล์พื้นดินที่ยังไม่ได้เยี่ยมแต่ละเซลล์ นับจำนวนส่วนประกอบ O(แถว×คอลัมน์) พูดถึงการทำเครื่องหมายแบบ in-place เทียบกับเซตที่เยี่ยมแล้วเป็นข้อแลกเปลี่ยนด้านพื้นที่ — คำถามต่อเนื่องที่พบบ่อยของ Google

7. ออกแบบระบบเพื่อคืนค่าคำค้นหาที่ถูกใช้บ่อยที่สุด top-k

แนวทาง: กำหนดอัตราการอ่านเทียบกับการเขียนก่อน พูดถึง count-min sketch หรือ heap บน hash map สำหรับ top-k แบบประมาณในระดับขนาดใหญ่ และวิธีที่คุณจะทำ sharding สิ่งนี้เชื่อมต่อกับรอบการออกแบบระบบที่หลายกระบวนการของ Google รวมไว้

8. เล่าถึงครั้งที่คุณต้องตัดสินใจโดยไม่มีข้อมูลครบถ้วน

แนวทาง: ใช้ STAR รอบ 'Googleyness' ของ Google มองหาความสบายใจกับความคลุมเครือ การเอียงไปทางการกระทำที่สมดุลด้วยการตัดสินใจ และการเรียนรู้จากผลลัพธ์ เลือกตัวอย่างจริงที่มีผลลัพธ์ที่เป็นรูปธรรมและสิ่งที่คุณจะทำแตกต่างออกไป

รับความช่วยเหลือแบบเรียลไทม์ในการสัมภาษณ์งาน software engineer ที่ Google ของคุณ

ในการสัมภาษณ์ Google จริง Natively จะถอดเสียงคำถาม อ่านเอกสารโค้ดที่แชร์ไว้ผ่าน OCR บนหน้าจอ และเสนอแนวทางที่มีโครงสร้างพร้อมการวิเคราะห์ความซับซ้อนภายในเวลาไม่ถึง 500 มิลลิวินาที — ทั้งหมดบนอุปกรณ์ของคุณ ใช้มันเพื่อให้มีโครงสร้างทั้งในรอบอัลกอริทึมและรอบ Googleyness