อังกฤษ | 简体中文
อัลกอริทึมและโครงสร้างข้อมูล
นี่คือการรวบรวม อัลกอริทึม โครงสร้างข้อมูล และ คำถามสัมภาษณ์ พร้อมคำตอบ พื้นที่เก็บข้อมูลนี้ประกอบด้วยโซลูชันของฉันสำหรับปัญหาอัลกอริทึมทั่วไปและการใช้งานโครงสร้างข้อมูลใน Java ฉันได้สร้างพื้นที่เก็บข้อมูลนี้เพื่อเรียนรู้เกี่ยวกับอัลกอริทึม ฉันกำลังเพิ่มวิธีแก้ปัญหาอย่างต่อเนื่อง
จนถึงขณะนี้มีการจัดเตรียม อัลกอริทึม โครงสร้างข้อมูล และ ปัญหาและแนวทางแก้ไขมากกว่า 300 รายการ
คำถาม
ต่อไปนี้เป็นคำถามแบ่งตามระดับความยาก:
- คำถามและคำตอบง่ายๆ
- คำถามและคำตอบขนาดกลาง
- คำถามและคำตอบที่ยาก
ปัญหา:
อาร์เรย์
- หมุนอาร์เรย์
- ประกอบด้วยรายการที่ซ้ำกัน
- ค้นหาองค์ประกอบสูงสุด
- อาร์เรย์ย่อยสูงสุด
- องค์ประกอบที่ใหญ่ที่สุด Kth ในอาร์เรย์
- ค้นหารายการที่ซ้ำกันทั้งหมดในอาร์เรย์
- ลำดับที่เพิ่มมากขึ้นที่ยาวที่สุด
- หมุนรูปภาพ, เมทริกซ์
- สุ่มอาร์เรย์
- ค้นหาค่า Min ในอาร์เรย์แบบหมุน
- ค้นหาในอาร์เรย์แบบหมุน
รายการที่เชื่อมโยง
- การดำเนินการรายการที่เชื่อมโยงแบบเดี่ยว
- การใช้งานรายการที่เชื่อมโยงแบบทวีคูณ
- ลบโหนดในรายการที่เชื่อมโยง
- รายการที่เชื่อมโยง Palindrome
- ย้อนกลับรายการที่เชื่อมโยง
- จุดตัดของสองรายการที่เชื่อมโยง
- วงจรรายการที่เชื่อมโยง
- ลบ Nth Node ออกจากจุดสิ้นสุดของรายการ
- รวมรายการเรียงลำดับ
- ค้นหาวงจรรายการที่เชื่อมโยง
- รวม k รายการที่เรียงลำดับ
และปัญหา Linked list อื่นๆ อีกมากมาย
ต้นไม้ไบนารี
- การสำรวจเส้นทางคำสั่งระดับไบนารีทรี
- ผลรวมของใบซ้าย
- สลับต้นไม้ไบนารี
- ตัววนซ้ำทรีการค้นหาแบบไบนารี
- ไบนารีทรี Postorder Traversal
- การสั่งซื้อ Traversal ของ Binary Tree ล่วงหน้า
- แผ่ Binary Tree ไปยังรายการที่เชื่อมโยง
- ต้นไม้สมมาตร
- ไบนารีทรี Inorder Traversal
- ต้นไม้ต้นเดียวกัน
- ความลึกสูงสุดของ Binary Tree
- ต้นไม้ไบนารีที่สมดุล
- ความลึกขั้นต่ำของ Binary Tree
- รายการที่เรียงลำดับไปยังแผนผังการค้นหาแบบไบนารีที่สมดุล
- ตรวจสอบแผนผังการค้นหาแบบไบนารี
- เรียงลำดับรายการเป็น BST ที่สมดุล
- องค์ประกอบที่เล็กที่สุดของ Kth ใน BST
- Binary Tree Zigzag Level Order Traversal
- ลบโหนดใน BST
- บรรพบุรุษร่วมกันต่ำสุดของ BST
- มุมมองด้านซ้ายของต้นไม้ไบนารี
- มุมมองด้านขวาของต้นไม้ไบนารี
- โหมดใน BST
- ผลรวมทรีย่อยที่พบบ่อยที่สุด
- ค้นหาองค์ประกอบที่ใหญ่ที่สุดในแต่ละแถว
- ทำให้เป็นอนุกรมและดีซีเรียลไลซ์ BT
และปัญหาต้นไม้อื่นๆ อีกมากมาย
คณิตศาสตร์
- ตัวแบ่งจำนวนเต็ม
- บิตย้อนกลับ
- หมายเลขพาลินโดรม
- คณิต.พาว
- ปัญหาเหยือกและน้ำ
- ตะแกรงเอราทอสเทเนส
- ความเป็นปฐมภูมิของแฟร์มาต์
- ประเมินสัญกรณ์โปแลนด์ย้อนกลับ
สแต็กและคิว
- กองขั้นต่ำ
- คิวมิน
- ใช้งานสแต็กโดยใช้คิว
- ใช้คิวโดยใช้สแต็ก
- จัดเรียงสแต็ก
การเขียนโปรแกรมแบบไดนามิก
- Fibonacci Numbers
- Word Break
- ผลรวมย่อย
- 0/1 ปัญหากระเป๋าเป้สะพายหลัง
- พาลินโดรมที่สั้นที่สุด (KMP)
- ผลรวมกำลังสองขั้นต่ำ
- การเปลี่ยนแปลงน้ำหนักสูงสุดของสตริง
- เปลี่ยนเหรียญ
เบ็ดเตล็ด
- ยูเนี่ยนค้นหา
- การเรียงสับเปลี่ยน
- เซตย่อย
อัลกอริทึม
การเรียงลำดับและการค้นหา
- การเรียงลำดับฟอง
- การเรียงลำดับการแทรก
- เรียงลำดับการเลือก
- การเรียงลำดับการนับ
- การค้นหาแบบไบนารี ขอบเขตล่างและบน
- ผสานเรียงลำดับ
- เรียงลำดับด่วน
กราฟ
- การค้นหาแบบกว้างก่อน (BFS)
- การค้นหาเชิงลึกก่อน (DFS)
- Prim's Minimum Spanning Tree (MST)
- ต้นไม้ขยายขั้นต่ำของ KrusKal (MST)
- การเรียงลำดับโทโพโลยี
- เส้นทางที่สั้นที่สุด Dijsktra
- เส้นทางที่สั้นที่สุด เบลล์แมน-ฟอร์ด
- A* การค้นหาเส้นทางแบบฮิวริสติก
- เป็นกราฟทวิภาคี
- เชื่อมต่อกราฟแล้ว
- การตรวจจับวงจร
- การตรวจจับสะพานกราฟแบบไม่มีทิศทาง
สตริง
- Rabin Karp Search Search
- หมายเหตุค่าไถ่
- สตริงย้อนกลับ
- คำนำหน้าทั่วไปที่ยาวที่สุด
- คือแอนนาแกรม
- เข็มและกองหญ้า
- ทำลายคำ
- Meta Strings
โครงสร้างข้อมูล:
ต้นไม้
- แผนผังการค้นหาแบบไบนารี (เรียกซ้ำ)
- แผนผังการค้นหาแบบไบนารี (วนซ้ำ)
- เอวีแอล ทรี
- Trie (ต้นไม้คำนำหน้า)
- แฮชอาร์เรย์ทรี
- แคช LRU
มีส่วนช่วย
คุณพบข้อบกพร่องหรือไม่? มีวิธีใดที่จะทำให้ดีขึ้น? โปรดอย่าลังเลที่จะดึง-ร้องขอมัน -