คลังข้อมูลนี้จะช่วยให้คุณเชี่ยวชาญ อัลกอริทึม และ โครงสร้างข้อมูล ที่โปรแกรมเมอร์ต้องรู้อย่างเป็นระบบ
คลังสินค้าแห่งนี้ส่วนใหญ่มี สองสาขา :
สาขาหลัก : สาขาใหม่ล่าสุดซึ่งเป็นสาขาหลักสำหรับการบำรุงรักษารายวันในอนาคต มีบทช่วยสอนเกี่ยวกับอัลกอริทึมและโครงสร้างข้อมูล
สาขาคอลเลกชัน : สาขาหลักเดิมซึ่งจัดระเบียบข้อมูลเกี่ยวกับอัลกอริทึมและโครงสร้างข้อมูล ปัจจุบันใช้เป็นสาขาเสริม: เยี่ยมชมที่นี่
โดยพื้นฐานแล้ว ส่วนของอัลกอริธึม จะเสร็จสมบูรณ์และยังมีส่วนที่ยังไม่เสร็จ ของโครงสร้างข้อมูล ที่เราจะเร่งการปรับปรุงเมื่อเราว่าง
สารบัญ:
- อัลกอริทึม
- โครงสร้างข้อมูล
- คำถามฝึกหัด
อัลกอริทึม
- 1. การวิเคราะห์ความซับซ้อน
- 2. อัลกอริธึมที่มีความแม่นยำสูง
- 3. อัลกอริทึมการเรียงลำดับ
- 4. อัลกอริทึมแบบเรียกซ้ำ
- 5. อัลกอริทึมแบบเรียกซ้ำ
- 6. แบ่งและพิชิตอัลกอริทึม
- 7. อัลกอริธึมโลภ
- 8. อัลกอริธึมการค้นหาแบบกว้างก่อน
- 9. อัลกอริธึมการค้นหาเชิงลึกก่อน
- 10. อัลกอริธึมการย้อนรอย
- 11. การเขียนโปรแกรมแบบไดนามิก
- 12. อัลกอริธึมสตริง
โครงสร้างข้อมูล
- 1. สแต็ค
- 2. คิว
- 3. ต้นไม้
- 4. ฮีป
- 5. อัลกอริธึมทฤษฎีกราฟ
- 6. การค้นหาแบบรวม
- 7. ต้นไม้ที่ทอดยาวที่สุด
- 8. การเรียงลำดับทอพอโลยีและเส้นทางวิกฤติ
- 9. ต้นไม้ส่วนของเส้น
- 10. อาร์เรย์ต้นไม้
คำถามฝึกหัด
หลังจากเชี่ยวชาญอัลกอริธึมและโครงสร้างข้อมูลที่สำคัญแล้ว คุณจะต้องฝึกฝนและรวมเข้าด้วยกัน
ทางเลือกเว็บไซต์?
แนะนำ LeetCode เยี่ยมชมที่นี่
ฉันควรศึกษาคำถามอะไรบ้าง?
หากคุณ มีเวลาไม่มาก : คำแนะนำยอดนิยม ของ LeetCode มีดังนี้:
ตัวอย่างเช่น: Leetcode Hot 100 และ LeetCode เลือกคำถามสัมภาษณ์ยอดนิยม
หากคุณ มีเวลาเพียงพอ : คุณสามารถฝึกอย่างเป็นระบบตามประเภทต่อไปนี้:
- หัวข้อ 1: อาร์เรย์ (
Chapter1_Array
) - หัวข้อ 2: รายการที่เชื่อมโยง (
Chapter2_list
) - หัวข้อที่ 3: สตริง (
Chapter3_String
) - หัวข้อที่ 4: กอง (
Chapter4_Stack
) - หัวข้อที่ 5: ต้นไม้ (
Chapter5_Tree
) - หัวข้อที่ 6: การเรียงลำดับ (
Chapter6_Sort
) - หัวข้อที่ 7: ค้นหา (
Chapter7_Search
) - หัวข้อที่ 8: การแก้ปัญหาด้วยความรุนแรง (
Chapter8_Violence
) - หัวข้อ 9: BFS (
Chapter9_BFS
) - หัวข้อ 10: DFS (
Chapter10_DFS
) - หัวข้อ 11: แบ่งแยกและพิชิต (
Chapter11_Paritition
) - หัวข้อที่ 12: ความโลภ (
Chapter12_Greedy
) - หัวข้อ 13: การเขียนโปรแกรมแบบไดนามิก (
Chapter13_DP
) - หัวข้อที่ 14: กราฟ (
Chapter14_Graph
) - หัวข้อที่ 15: ประเภทที่ไม่เฉพาะเจาะจง (
Chapter15_Unspecific
)
กลยุทธ์การปฏิบัติ
- ด่านแรก : คิดก่อน หากคุณไม่มีความคิด คุณสามารถดูวิธีแก้ไขปัญหาและรวมเข้ากับวิธีแก้ไขปัญหาของผู้อื่นได้ สรุปว่าคุณมีปัญหากับการคิดของคุณ หรือว่าคุณมีปัญหากับอัลกอริทึมและโครงสร้างข้อมูลหรือไม่
- ครั้งที่สอง : เรียกคืนวิธีแก้ปัญหาที่ดีที่สุด พยายามเขียนโดยตรง เปรียบเทียบกับวิธีแก้ปัญหาที่คุณเขียนไว้ก่อนหน้านี้ และสรุปปัญหาและวิธีการ
- ครั้งที่สาม : ปรับปรุง ความเร็วในการตอบคำถาม และ แก้ปัญหาหลายข้อสำหรับคำถามเดียว หลังจากตอบคำถามแล้ว คุณจะรู้จุดเน้นของการสอบและวิธีการแก้ปัญหา เขียนคำตอบได้ในเวลาอันสั้นและคิดว่า ของโซลูชั่นที่หลากหลาย