Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมหาผลรวมตัวเลขจากเส้นทางรากถึงใบของต้นไม้แบบทวิภาคใน Python

    ต้นไม้แบบทวิภาคแต่ละโหนดมีตัวเลข 0-9 เส้นทางจากรากถึงใบแทนตัวเลข หาผลรวมทุกเส้นทาง เช่น ต้นไม้ราก 4 ซ้าย 6 ขวา 3 (ซ้าย 2 ขวา 5) ให้ 46+432+435=913 ขั้นตอนการแก้ปัญหา ฟังก์ชัน solve(root, string) สร้างสตริงตัวเลขตามเส้นทาง ถ้าเป็นใบ คืนค่า int(string + str(root.val)) รวมผลลัพธ์จากซ้ายและขวา ตัวอย่

  2. โปรแกรมนับจำนวนเกาะที่ถูกล้อมรอบในเมทริกซ์ใน Python

    เมทริกซ์ไบนารี 1=บก 0=น้ำ เกาะคือกลุ่ม 1 ที่ต่อกัน หาเกาะที่ล้อมรอบน้ำหมด (ไม่สัมผัสขอบเมทริกซ์) เช่น เมทริกซ์ 6x5 มี 3 เกาะ แต่ 2 เกาะถูกล้อมรอบน้ำ ให้ผลลัพธ์ 2 ขั้นตอนการแก้ปัญหา DFS จากทุกเซลล์ที่เป็น 1 ถ้า DFS พบขอบเมทริกซ์ คืน False (ไม่ถูกล้อมรอบ) ถ้า DFS จบโดยไม่พบขอบ คืน True (ถูกล้อมรอบ)

  3. โปรแกรมนับจำนวนสวิตช์ที่เปิดอยู่หลังจาก n คนสลับใน Python

    มี n สวิตช์ ปิดทั้งหมด คนที่ i สลับสวิตช์ที่เป็นจำนวนคูณของ i หาจำนวนสวิตช์ที่เปิดอยู่ท้ายสุด เช่น n=5 ให้ 2 เพราะสวิตช์ 1 และ 4 เปิดอยู่ (ตัวเลขที่มีจำนวน 약수 เป็นคี่ คือ ตัวเลขยกกำลังสอง) ขั้นตอนการแก้ปัญหา โจทย์นี้เทียบเท่ากับการหาจำนวนจำนวนยกกำลังสอง ≤ n ใช้ Binary Search หาค่า mid ที่ mid^2 ≤

  4. โปรแกรมหาลำดับอันดับทีมจากคะแนนเสียงใน Python

    มีรายการคะแนนเสียง votes แต่ละรายการเป็นสตริงตัวอักษรพิมพ์เล็ก แสดงลำดับความชอบ อันดับขึ้นอยู่กับจำนวนคะแนนเสียงอันดับ 1 ถ้าเท่ากันดูอันดับ 2 ต่อไป ถ้ายังเท่ากัน เรียงตามตัวอักษร เช่น votes = [zyx,zxy,xyz] ให้ zxy เพราะ z ได้อันดับ 1 มากที่สุด ขั้นตอนการแก้ปัญหา count := ความยาวสตริงใน votes cand

  5. โปรแกรมตรวจสอบว่าสามารถระบายสีต้นไม้ให้โหนดติดกันไม่ซ้ำสีได้หรือไม่ใน Python

    สมมติว่าต้นไม้แบบทวิภาคมีค่าโหนดแทนสี (สูงสุด 2 สี) ตรวจสอบว่าสลับสีได้หรือไม่ เพื่อให้โหนดติดกันไม่มีสีเหมือนกัน เช่น ต้นไม้ที่มีโหนดสี 2 และ 1 สามารถสลับได้เป็นรูปแบบสลับกัน ขั้นตอนการแก้ปัญหา colors := นับความถี่แต่ละสี prop := นับจำนวนโหนดในระดับคู่/คี่ (flag True/False) DFS ผ่านต้นไม้ สลับ fl

  6. โปรแกรมนับจำนวนเส้นทางที่ผลรวมเท่ากับ k ในต้นไม้แบบทวิภาคใน Python

    สมมติว่าเรามีต้นไม้แบบทวิภาคและค่า k หาจำนวนเส้นทางจากโหนดไปยังโหนดลูกที่ผลรวมเท่ากับ k เช่น ต้นไม้ที่มีโหนด 3,2,4,1,2 และ k=5 ให้ผลลัพธ์ 2 เส้นทาง [2,3] และ [1,4] ขั้นตอนการแก้ปัญหา ใช้ Counter เก็บความถี่ของ prefix sum เริ่มต้นด้วย {0:1} ans := 0, prefix := 0 DFS ผ่านต้นไม้: prefix += node.val

  7. โปรแกรมหาจำนวนวันที่ใช้ในการไหม้ต้นไม้ทั้งหมดใน Python

    สมมติว่าเมทริกซ์ 2D แทนป่า: 0=ว่าง, 1=ต้นไม้, 2=ไฟ ทุกวัน ต้นไม้จะไหม้ถ้ามีเพื่อนบ้าน (บนล่างซ้ายขวา) อยู่ในสถานะไฟ หาจำนวนวันที่ใช้จนต้นไม้ทั้งหมดไหม้ ถ้าไม่ได้คืน -1 เช่น เมทริกซ์ [[1,2,1],[1,0,1],[1,1,1]] ให้ผลลัพธ์ 4 ขั้นตอนการแก้ปัญหา เก็บตำแหน่งไฟเริ่มต้นใน twos ทำ BFS ทุกวัน: ขยายไฟไปเพื่อน

  8. โปรแกรมตรวจสอบว่าได้ 24 จากการวางตัวดำเนินการระหว่างตัวเลขใน Python

    สมมติว่าเรามีรายการ 4 ตัวเลข (1-9) เรียงลำดับคงที่ วางตัวดำเนินการ +, -, *, / (หารจำนวนเต็ม) ระหว่างตัวเลข และจัดกลุ่มด้วยวงเล็บ ตรวจสอบว่าได้ค่า 24 หรือไม่ เช่น nums = [5,3,6,8,7] ให้ True เพราะ (5*3)-6+(8+7)=24 ขั้นตอนการแก้ปัญหา ฟังก์ชัน recur(arr) คืนค่าทุกค่าที่เป็นไปได้จากการจัดกลุ่มและคำนวณ

  9. โปรแกรมหาจำนวนขั้นตอนในการแก้ปริศนา 8-puzzle ใน Python

    สมมติว่าเรามีกระดาน 3x3 ที่มีตัวเลข 0-8 ไม่ซ้ำกัน สลับ 0 กับเพื่อนบ้าน 4 ทิศทาง เพื่อจัดให้เรียงลำดับ ต้องการหาจำนวนขั้นตอนน้อยที่สุด เช่น เมทริกซ์ [[3,1,2],[4,7,5],[6,8,0]] ให้ผลลัพธ์ 4 ขั้นตอนการแก้ปัญหา กำหนด find_next(node) สร้างสถานะถัดไปโดยสลับ 0 กับเพื่อนบ้าน กำหนด get_paths(dict) ใช้ BFS ห

  10. โปรแกรมตรวจสอบจำนวนวิธีเดิน k ครั้งและกลับมาที่ตำแหน่งแรกใน Python

    สมมติว่าเราอยู่ตำแหน่ง 0 ของรายการยาว n ทุกขั้นตอนสามารถเดินขวา 1 ตำแหน่ง ซ้าย 1 ตำแหน่ง (ไม่เกินขอบเขต) หรืออยู่ที่เดิม ถ้าเดินได้ k ขั้นตอนพอดี ต้องการหาจำนวนวิธีเดินที่ไม่ซ้ำกันและกลับมาที่ดัชนี 0 ถ้าคำตอบใหญ่มาก คืนค่า mod 10^9+7 เช่น n = 7, k = 4 ผลลัพธ์ 9 วิธี เช่น [Right, Right, Left, Left],

  11. โปรแกรมหาเครดิตสูงสุดที่ได้จากการทำงานบางอย่างใน Python

    สมมติว่าเรามีสองรายการขนาดเท่ากัน คือ deadlines และ credits แทนการมอบหมายงานหลักสูตร deadlines[i] คือวันครบกำหนดของงาน i และ credits[i] คือเครดิตที่ได้จากงาน i เรามีเวลาหนึ่งวันต่องาน และสามารถทำก่อนหรือในวันครบกำหนด ไม่สามารถทำหลายงานพร้อมกันได้ ต้องการหาเครดิตสูงสุดที่ได้จากการทำงานบางส่วน เช่น d

  12. โปรแกรมหาความต่างสูงสุดของค่าที่อยู่ติดกันหลังจากลบ k ตัวเลขใน Python

    สมมติว่าเรามีรายการตัวเลขที่เรียงจากน้อยไปมาก เราต้องการลบ k ตัวเลขออกจากรายการ เพื่อให้ความต่างสูงสุดระหว่างค่าที่อยู่ติดกันมีค่าน้อยที่สุด แล้วคืนค่าความต่างนั้น เช่น ถ้าอินพุตเป็น nums = [15, 20, 30, 400, 1500] k = 2 ผลลัพธ์จะเป็น 10 เนื่องจากลบ [400, 1500] จะได้ความต่างระหว่าง 20 และ 30 ขั้นตอน

  13. โปรแกรมหาตัวเลขที่ใกล้ที่สุดที่ตัวเลขทุกหลักเป็นคี่ใน Python

    สมมติว่าเรามีตัวเลข n เราต้องการหาค่าที่ใกล้ที่สุดซึ่งตัวเลขทุกหลักเป็นจำนวนคี่ เมื่อมีค่าสองค่าที่ห่างเท่ากัน ให้คืนค่าที่มากกว่า เช่น ถ้าอินพุตเป็น n = 243 ผลลัพธ์จะเป็น 199 ขั้นตอนการแก้ปัญหา first_even := -1 s := n เป็นสตริง l := len(s) วนลูปหาตัวเลขคู่ตัวแรกใน s ถ้าไม่พบตัวเลขคู่ คืนค่า n คำน

  14. โปรแกรมหาจำนวนการสลับน้อยที่สุดเพื่อทำให้สตริงเป็นอะนาแกรมใน Python

    สมมติว่าเรามีสตริงสองตัว S และ T ซึ่งเป็นอะนาแกรมกัน เราต้องการหาจำนวนการสลับน้อยที่สุดใน S เพื่อให้มันเหมือนกับ T เช่น ถ้าอินพุตเป็น S = kolkata T = katloka ผลลัพธ์จะเป็น 3 เนื่องจากสามารถสลับได้ในลำดับ [katloka (given), kotlaka, koltaka, kolkata] ขั้นตอนการแก้ปัญหา กำหนดฟังก์ชัน util() รับ S, T,

  15. โปรแกรมหาพื้นที่สี่เหลี่ยมผืนผ้าที่ใหญ่ที่สุดภายใต้ฮิสโตแกรมใน Python

    สมมติว่าเรามีรายการตัวเลขที่แทนความสูงของแท่งในฮิสโตแกรม เราต้องการหาพื้นที่ของสี่เหลี่ยมผืนผ้าที่ใหญ่ที่สุดที่สามารถสร้างได้ภายใต้แท่งเหล่านั้น เช่น ถ้าอินพุตเป็น nums = [3, 2, 5, 7] ผลลัพธ์จะเป็น 10 ขั้นตอนการแก้ปัญหา stk := สแต็ก ใส่ค่า -1 เข้าไปก่อน เพิ่มค่า 0 เข้าไปท้ายของ heights ans := 0

  16. โปรแกรมหาพื้นที่ของสี่เหลี่ยมจัตุรัสที่ใหญ่ที่สุดของ 1 ในเมทริกซ์ที่กำหนดใน Python

    สมมติว่าเรามีเมทริกซ์ไบนารี เราต้องการหาสี่เหลี่ยมจัตุรัสที่ใหญ่ที่สุดที่ประกอบด้วย 1 ในเมทริกซ์ที่กำหนดนั้น เช่น ถ้าอินพุตเป็นดังนี้ 1000011 0000011 0111100 0111100 0111100 0111100 ผลลัพธ์จะเป็น 16 ขั้นตอนการแก้ปัญหา กำหนด res := 0 วนลูป i จาก 0 ถึงขนาดของเมทริกซ์: res := max(res, matrix[i][0

  17. โปรแกรมแก้ไขต้นไม้ค้นหาไบนารีที่ใกล้จะถูกต้องให้สมบูรณ์ใน Python

    ให้ BST ที่มีเพียง 2 โหนดที่สลับค่ากัน แก้ไขให้กลายเป็น BST ที่ถูกต้อง ตัวอย่าง: ต้นไม้ที่ inorder ได้ [2, 6, 3, 8, 9] (ควรเป็น [2, 3, 6, 8, 9]) → สลับ 6 กับ 3 อัลกอริธึม Inorder Traversal เดิน inorder (ซ้าย-ราก-ขวา) ควรได้ค่าเพิ่มขึ้น หาจุดที่ node.val < prev.val: โหนดแรกคือ max_node (prev), โหนดท

  18. โปรแกรมหาความยาวเส้นทางต่อเนื่องที่ยาวที่สุดในต้นไม้ไบนารีใน Python

    ให้ต้นไม้ไบนารี หาเส้นทางที่ยาวที่สุดที่ค่าโหนดต่อเนื่องกัน (เพิ่มหรือลดทีละ 1) เส้นทางอาจขึ้นไปแล้วลงมาได้ ตัวอย่าง: ต้นไม้ที่มีโหนด 3-2-4-5-6 → เส้นทางยาว 5 ([2,3,4,5,6]) อัลกอริธึม DFS แต่ละโหนดคืน (inc, dec): ความยาวเส้นทางเพิ่ม/ลดต่อเนื่องที่ลงมาจากโหนดนี้ รวมเส้นทางจากลูกซ้ายและลูกขวา: ถ้าลูก

  19. โปรแกรมหาจำนวนกล่องสูงสุดที่สามารถใส่ซ้อนกันได้ใน Python

    โจทย์ Russian Doll Envelopes: ให้ลิสต์กล่อง [width, height] ใส่ซ้อนได้ก็ต่อเมื่อ width และ height ทั้งคู่น้อยกว่ากล่องภายนอก หาจำนวนกล่องสูงสุดที่ซ้อนได้ ตัวอย่าง: [[12,12], [10,10], [6,6], [5,10]] → 3 (ลำดับ: [6,6] → [10,10] → [12,12]) อัลกอริธึม LIS แบบปรับเปลี่ยน เรียงกล่องตาม width เพิ่ม, heigh

  20. โปรแกรมตรวจสอบว่าสตริงสามารถแบ่งเป็นคำจากรายการที่กำหนดได้หรือไม่ใน Python

    โจทย์ Word Break: ให้ลิสต์คำ words และสตริง s (ไม่มีช่องว่าง) ตรวจสอบว่า s แบ่งเป็นคำใน words ได้หมดหรือไม่ ตัวอย่าง: words = [love, python, we, programming, language], s = welovepythonprogramming → True อัลกอริธึม Recursion + Memoization (นี่ใช้ recursion แบบง่าย) แปลง words เป็น set เพื่อ O(1) lo

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:195/451  20-คอมพิวเตอร์/Page Goto:1 189 190 191 192 193 194 195 196 197 198 199 200 201