0Pricing
Coding Interview Prep · บทเรียน

อ่านข้อจำกัดและเลือกความซับซ้อน

ให้ N บอกว่าวิธีใดเหมาะสม

อ่านข้อจำกัดและเลือกความซับซ้อน เป็นบทเรียน Coding Interview Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Coding Interview Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน

ข้อจำกัดคือเบาะแส

โจทย์ทุกข้อระบุขีดจำกัดของ n และค่าต่าง ๆ ข้อจำกัดเหล่านี้จะบอกอย่างเงียบ ๆ ว่าผู้ออกโจทย์คาดหวังความซับซ้อนระดับใด 🔍

อ่าน n ก่อน

ก่อนออกแบบสิ่งใด ให้ดูค่า n ที่มากที่สุดในข้อจำกัดก่อน ขนาดของ n จะเป็นตัวตัดสินว่าต้องใช้วิธีแบบกำลังสอง เชิงเส้น หรือลอการิทึม

n เล็กช่วยให้เลือกวิธีได้อิสระ

เมื่อ n มีค่าไม่เกิน 20 แม้แต่การลองครบทุกกรณีแบบ เอ็กซ์โพเนนเชียล ก็ยังอยู่ในขีดจำกัด ข้อจำกัดขนาดเล็กเป็นโอกาสให้ลองทุกชุดผสมได้โดยไม่ต้องกังวล

n สูงสุด 500

หาก n มีค่าถึงไม่กี่ร้อย วิธีแก้แบบ O(n^3) ก็ยังผ่านได้ ลูปสามชั้นหรือ DP พื้นฐานที่ทำงานกับคู่ค่าถือว่าเหมาะสมในกรณีนี้

n สูงสุด 5000

เมื่อ n อยู่ราว 5000 ให้มุ่งไปที่ O(n^2) ลูปซ้อนที่วนผ่านรายการจะใช้ประมาณ 2.5 เท่าของ 10^7 ขั้นตอน ซึ่งยังอยู่ในงบประมาณ

n สูงสุด 10^5

เมื่อ n มีค่าเป็น 10^5 หรือ 10^6 คุณต้องใช้ O(n log n) หรือ O(n) การเรียงลำดับ ผลรวมสะสม และตัวชี้สองตัวจะเป็นเครื่องมือหลักของคุณ

n สูงสุด 10^9

หาก n มีค่าถึงหนึ่งพันล้าน ไม่มีลูปใดที่วนครบ n รอบแล้วจะทำงานทัน คุณต้องใช้ O(log n) หรือ O(1) โดยอาศัยคณิตศาสตร์หรือการค้นหาแบบทวิภาคบนคำตอบ

อย่าลืมดูช่วงค่าด้วย

ข้อจำกัดของค่าก็สำคัญเช่นกัน ตัวเลขขนาดใหญ่เป็นสัญญาณเตือนเรื่องค่าล้นในภาษาอื่น และอาจบอกเป็นนัยว่าควรใช้เลขคณิตแบบมอดุลาร์

ผลรวมของ n ในชุดทดสอบ

โจทย์ที่มีหลายชุดทดสอบมักจำกัด ผลรวมของ n แทนที่จะจำกัด n ของแต่ละชุด โปรดอ่านส่วนนี้อย่างละเอียด เพราะจะเปลี่ยนขนาดของลูปที่คุณใช้ได้อย่างปลอดภัย

วางแผนย้อนจากข้อจำกัด

เลือกความซับซ้อนเป้าหมายจาก n แล้วเลือกอัลกอริทึมที่ทำได้ตามนั้น การให้ n ชี้นำการออกแบบย่อมดีกว่าการเดาแล้วต้องเขียนใหม่ภายหลัง

จำตารางนี้ให้ขึ้นใจ

จดจำตารางนี้ไว้ในใจ แผนผังจากข้อจำกัดสู่ความซับซ้อนจะเปลี่ยนการดูขีดจำกัดอย่างรวดเร็วให้กลายเป็นแผนทันทีระหว่างการแข่งขัน

ตรวจสอบอย่างรวดเร็ว

ให้ n ชี้ทางไปสู่ความซับซ้อนที่เหมาะสม

ทบทวน

ตอนนี้คุณอ่านข้อจำกัดเป็นเป้าหมายได้แล้ว: n ขนาดเล็กเปิดโอกาสให้ลองครบทุกกรณี, 10^5 ต้องใช้ n log n และ 10^9 ต้องใช้ลอการิทึมหรือคณิตศาสตร์ ให้ n เป็นตัวเลือกแนวทางของคุณ 🗺️

คำถามที่พบบ่อย

บทเรียน “อ่านข้อจำกัดและเลือกความซับซ้อน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “อ่านข้อจำกัดและเลือกความซับซ้อน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Coding Interview Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “อ่านข้อจำกัดและเลือกความซับซ้อน”

ให้ N บอกว่าวิธีใดเหมาะสม คุณปฏิบัติ Coding Interview Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Coding Interview Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Coding Interview Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “อ่านข้อจำกัดและเลือกความซับซ้อน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Coding Interview Prep นี้ได้ไหม

ได้ บทเรียน Coding Interview Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. นับการดำเนินการด้วย Big-O
  2. หลักคร่าว ๆ 10^8
  3. อ่านข้อจำกัดและเลือกความซับซ้อน
  4. เหตุใดจึงเกิด TLE และจะสังเกตได้อย่างไร
← กลับไปที่ Coding Interview Prep