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

    สมมติว่าเรามีหุ่นยนต์อยู่ที่ตำแหน่ง (0, 0) (ระนาบคาร์ทีเซียน) หุ่นยนต์มีรายการการเคลื่อนที่ที่ประกอบด้วย N (North), S (South), W (West), E (East) แต่ถ้าหุ่นยนต์ไปถึงจุดที่เคยไปมาก่อน มันจะเคลื่อนที่ต่อในทิศทางเดิมจนถึงจุดใหม่ที่ยังไม่เคยไป เราต้องตรวจสอบว่าหลังจากเคลื่อนที่ครบแล้ว หุ่นยนต์จะอยู่ที่พ

  2. โปรแกรมหมุนเมทริกซ์สี่เหลี่ยมจัตุรัส 90 องศา ทวนเข็มนาฬิกา ด้วย Python

    สมมติว่าเรามีเมทริกซ์สี่เหลี่ยมจัตุรัส เราต้องหมุนมัน 90 องศา ทวนเข็มนาฬิกา ตัวอย่าง เมทริกซ์ต้นฉบับ: 147258369 หลังหมุน: 789456123 ขั้นตอนการแก้ปัญหา ถ้าเมทริกซ์ว่าง คืนค่าลิสต์ว่าง กำหนด n = จำนวนแถวของเมทริกซ์ สำหรับแต่ละแถวในเมทริกซ์ ให้กลับลำดับแถว (reverse) วนลูป i จาก 0 ถึง n-1: วนลูป j จ

  3. โปรแกรมหาช่วงเวลาที่มีการทำงานหลายงานพร้อมกันใน Python

    สมมติว่าเรามีรายการช่วงเวลา intervals โดยแต่ละช่วงเป็น [start, end) และรายการสตริงชื่อ types สำหรับ index i ช่วง intervals[i] แสดงเวลาทำงานประเภท types[i] จาก [start, end) ช่วงเวลาของประเภทเดียวกันไม่ทับซ้อนหรือติดกัน เราต้องหารายการรวมที่เรียงลำดับ โดยแต่ละรายการมี [start, end, num_types] แสดงว่าจา

  4. โปรแกรมแยกบุคคลไม่ให้ศัตรูอยู่ในกลุ่มเดียวกันด้วย Python

    สมมติว่าเรามีตัวเลข n และเมทริกซ์ 2 มิติชื่อ enemies โดย n แสดงว่ามีคน n คน ติดป้ายกำกับจาก [0, n - 1] แต่ละแถวใน enemies มีค่า [a, b] หมายความว่า a และ b เป็นศัตรูกัน เราต้องตรวจสอบว่าสามารถแบ่งคน n คนออกเป็นสองกลุ่มได้หรือไม่ โดยที่ไม่มีศัตรูสองคนอยู่ในกลุ่มเดียวกัน ตัวอย่าง: n = 4, enemies = [[0

  5. โปรแกรมนับจำนวนสัตว์น้อยที่สุดที่ไม่มีผู้ล่าใน Python

    สมมติว่าเรามีรายการตัวเลข nums โดย nums[i] แสดงผู้ล่าของสัตว์ตัวที่ i และถ้าไม่มีผู้ล่าจะเก็บค่า -1 เราต้องหาจำนวนกลุ่มน้อยที่สุดของสัตว์ โดยที่ไม่มีสัตว์ตัวใดอยู่ในกลุ่มเดียวกับผู้ล่าตรงๆ หรือผู้ล่าอ้อมๆ ของมัน ตัวอย่าง: nums = [1, 2, -1, 4, 5, -1] ผลลัพธ์คือ 3 สามารถจัดกลุ่มได้เป็น [0, 3], [1, 4]

  6. โปรแกรมนับจำนวนบิต 1 ทั้งหมดของตัวเลขในช่วง 0 ถึง n ด้วย Python

    สมมติว่าเรามีตัวเลข num สำหรับแต่ละตัวเลข i ในช่วง 0 ≤ i ≤ num เราต้องคำนวณจำนวนบิต 1 ในตัวแทนบाइनารีของมัน และคืนค่าผลรวมทั้งหมด ตัวอย่าง: ถ้า num = 5 ตัวเลขคือ [0, 1, 2, 3, 4, 5] จำนวนบิต 1 คือ [0, 1, 1, 2, 1, 2] ผลรวมคือ 7 ขั้นตอนการแก้ปัญหา สร้างอาร์เรย์ result ขนาด num + 1 เติมด้วย 0 กำหนด o

  7. โปรแกรมแบ่งเซตเป็นสองกลุ่มที่มีผลรวมเท่ากันและค่าในกลุ่มแรกน้อยกว่ากลุ่มที่สองด้วย Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums เราต้องตรวจสอบว่าสามารถแบ่งรายการออกเป็นสองกลุ่ม A และ B ได้หรือไม่ โดยที่: ผลรวมของ A และผลรวมของ B เท่ากัน ทุกตัวเลขใน A น้อยกว่าทุกตัวเลขใน B อย่างเคร่งครัด ตัวอย่าง: nums = [3, 4, 5, 12] ผลลัพธ์คือ True เพราะสามารถแบ่งได้เป็น A = [3,4,5] และ B = [12] ทั้งคู่

  8. โปรแกรมเติมสีด้วยอัลกอริทึม Flood Fill ใน Python

    สมมติว่าเรามีกริด 2 มิติ มีสีเป็นสตริง r, g, b เราต้องทำ Flood Fill ที่แถว r, คอลัมน์ c ด้วยสี target Flood Fill จะเปลี่ยนสีทุกเซลล์ที่เชื่อมต่อกับ grid[r][c] (บน/ขวา/ล่าง/ซ้าย) และมีสีเดียวกับ grid[r][c] ให้กลายเป็นสี target ตัวอย่าง: กริดต้นฉบับ RRRRGBGBB หลัง Flood Fill ที่ (0,0) ด้วยสี g: GGGGG

  9. โปรแกรมหา Smallest Common Element ในทุก Row ของ Matrix (Python)

    ปัญหา กำหนด 2D matrix ที่แต่ละ row เรียงจากน้อยไปมาก หาตัวเลขน้อยที่สุดที่มีในทุก row ถ้าไม่มี → -1 ตัวอย่าง: [[2,3,5], [5,10,10], [1,3,5]] → 5 วิธีแก้: Set Intersection ใช้ Set intersection ระหว่างทุก row อัลกอริทึม ถ้า matrix ว่าง → -1 first = set ของ row แรก สำหรับแต่ละ row: first &= set(row)

  10. โปรแกรมจัดเรียง Array ตาม Parity (Even First, Odd Last) ใน Python

    ปัญหา จัดเรียง array ให้เลขคู่ (even) อยู่หน้า เลขคี่ (odd) อยู่หลัง ตัวอย่าง: [1,5,6,8,7,2,3] → [6,8,2,5,7,1,3] (ลำดับภายในกลุ่มไม่สำคัญ) วิธีแก้: Two Pointers (Partition แบบ Quick Sort) อัลกอริทึม i = 0 (ตำแหน่งสำหรับ even ถัดไป), j = 0 (current) While j < n: ถ้า arr[j] เป็นเลขคู่: swap arr[i]

  11. โปรแกรมหา Maximum Product ของตัวเลขที่ Sum เท่ากับ n (Integer Break)

    ปัญหา กำหนดจำนวนเต็ม n หาตัวเลข ≥ 2 ตัวที่ผลรวม = n ให้ product สูงสุด ตัวอย่าง: n=12 → 81 (3+3+3+3=12, 3×3×3×3=81) วิธีแก้: Dynamic Programming DP Recurrence dp(n) = max product สำหรับ n dp(0) = 1 (base case สำหรับการคูณ) dp(n) = max(i × dp(n-i)) สำหรับ i = 1..n โค้ด Python (Top-down DP) class

  12. โปรแกรมตรวจสอบผลรวมสูงสุดของสแต็กหลังจากนำอีเล็มน์ต์ออกใน Python

    ให้ลิสต์ของสแต็ก (แต่ละสแต็กเป็นลิสต์ตัวเลข) สามารถนำอีเล็มน์ต์ด้านบนออกได้ทุกจำนวน หาผลรวมสูงสุดที่ทำให้ทุกสแต็กมีผลรวมเท่ากัน ตัวอย่าง: [[3,4,5,6], [5,6,1,4,4], [10,2,2,2]] → 12 (นำ 6, [4,4], [2,2] ออกตามลำดับ) อัลกอริธึม คำนวณ prefix sum ของแต่ละสแต็ก (ผลรวมสะสมจากด้านล่างขึ้น) นับความถี่ของแต่ล

  13. โปรแกรมตรวจสอบว่ามี Sublist ผลรวม > Total Sum หรือไม่ (Python)

    ปัญหา total sum ของทั้ง list หรือไม่ 6 → True Key Insight total_sum → ส่วนที่เหลือ (complement) ต้องมี sum < 0 เพราะ: total = sublist_sum + rest_sum → rest_sum = total - sublist_sum < 0 ดังนั้น: ตรวจสอบว่ามี prefix sum < 0 หรือ suffix sum < 0 หรือไม่ อัลกอริทึม คำนวณ total = sum(nums) เช็ค P

  14. โปรแกรมหา Maximum Sum Subsequence ที่ Diff ค่า = Diff Index (Python)

    ปัญหา กำหนด list nums หา subsequence ที่เพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) โดยที่ ความต่างของค่า = ความต่างของ index สำหรับทุกคู่ติดกัน หา maximum sum ของ subsequence นี้ ตัวอย่าง: nums=[6,7,9,9,8,5] → 22 Subsequence: [6,7,9] ที่ index [0,1,3] Diff values: 7-6=1, 9-7=2 | Diff indices: 1-

  15. โปรแกรมตรวจสอบว่า Tree หนึ่งเป็น Subtree ของอีกต้น (Python)

    ปัญหา กำหนด Binary Tree 2 ต้น (root, target) ตรวจสอบว่า target เป็น subtree ของ root หรือไม่ Subtree หมายถึง: มี node ใน root ที่ subtree rooted at node นั้น identical กับ target ทุกอย่าง วิธีแก้: Recursive Search + Match อัลกอริทึม ฟังก์ชัน solve(root, target) Base cases: ทั้งคู่ None → True ต

  16. โปรแกรมตรวจสอบ Sudoku Grid ว่า Valid หรือไม่ (Python)

    ปัญหา ตรวจสอบ 9×9 Sudoku grid ว่า valid หรือไม่ (เฉพาะช่องที่กรอกแล้ว) ตามกฎ: 1. แต่ละแถว: 1-9 ไม่ซ้ำ 2. แต่ละคอลัมน์: 1-9 ไม่ซ้ำ 3. แต่ละ 3×3 sub-box: 1-9 ไม่ซ้ำ วิธีแก้: Single Pass Validation วนผ่าน grid ครั้งเดียว ตรวจ row, column, box พร้อมกัน อัลกอริทึม วน i = 0 ถึง 8: สร้าง set/dict สำหรั

  17. โปรแกรมตรวจสอบว่ามี 4 ตัวเลข Unique ผลรวมเท่ากับ k หรือไม่ (Python)

    ปัญหา กำหนด list nums และ target k ตรวจสอบว่ามี 4 ตัวเลข unique ที่ผลรวม = k ตัวอย่าง: nums=[11,4,6,10,5,1], k=25 → True (4+6+10+5=25) วิธีแก้: Sort + Nested Loops + Two Pointers (4Sum Existence) ลดปัญหา 4Sum เป็น 2Sum ด้วย nested loops 2 ระดับ อัลกอริทึม Sort nums วน i = 0 ถึง n-4: วน j = i+1

  18. โปรแกรมตรวจสอบว่ามี 3 ตัวเลข Unique ผลรวมเท่ากับ k หรือไม่ (Python)

    ปัญหา กำหนด list nums และ target k ตรวจสอบว่ามี 3 ตัวเลข unique (index ต่างกัน) ที่ผลรวม = k หรือไม่ ตัวอย่าง: nums=[11,4,6,10,5,1], k=20 → True (4+6+10=20) วิธีแก้: Sort + Two Pointers (3Sum Existence) อัลกอริทึม Sort nums Two pointers: l=0, r=n-1 While l < r-1: t = k - nums[l] - nums[r] (ค่าท

  19. โปรแกรมนับ Triplet ที่ผลรวมน้อยกว่า Target (Python)

    ปัญหา กำหนด list nums และ target นับจำนวน triplet (i < j < k) ที่ nums[i] + nums[j] + nums[k] < target ตัวอย่าง: nums=[-2,6,4,3,8], target=12 → 5 triplets [-2,6,4], [-2,6,3], [-2,4,3], [-2,4,8], [-2,3,8] วิธีแก้: Sort + Two Pointers (Counting) อัลกอริทึม Sort nums ans = 0 วน i = 0 ถึง n-1: k =

  20. โปรแกรมหา 3 ตัวเลข Unique ผลรวมใกล้ k มากที่สุด (Python)

    ปัญหา กำหนด list nums และ target k หา 3 ตัวเลขที่ไม่ซ้ำ index (a,b,c) ให้ |a+b+c - k| น้อยที่สุด คืนค่า absolute difference ตัวอย่าง: nums=[2,5,25,6], k=14 → 1 (เลือก 2+5+6=13, |13-14|=1) วิธีแก้: Sort + Two Pointers (3Sum Closest) คลาสสิก 3Sum Closest problem อัลกอริทึม Sort nums ans = infinity

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:182/451  20-คอมพิวเตอร์/Page Goto:1 176 177 178 179 180 181 182 183 184 185 186 187 188