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

    สมมติว่าเรามีรายการ ratings แสดงคะแนนประสิทธิภาพ ผู้จัดการจ่าย 1000 บาทต่อคน แต่ถ้าสองคนติดกัน คนที่ทำงานดีกว่าต้องได้มากกว่าอีกคนอย่างน้อย 1000 บาท หาเงินรวมขั้นต่ำ ตัวอย่าง: ratings = [1, 2, 5, 1] ผลลัพธ์ 7000 (จ่ายเป็น [1000, 2000, 3000, 1000]) ขั้นตอนการแก้ปัญหา (Two-pass Greedy - Candy Proble

  2. โปรแกรมหาจำนวนเต็มบวกที่หายไปน้อยที่สุดในอาร์เรย์ใน Python

    สมมติว่าเรามีรายการตัวเลข nums ต้องหาจำนวนเต็มบวกตัวแรกที่หายไป (lowest missing positive) อาร์เรย์อาจมีค่าซ้ำและค่าลบได้ ตัวอย่าง: nums = [0, 3, 1] ผลลัพธ์ 2 ขั้นตอนการแก้ปัญหา (Hash Set) สร้างเซตจากค่าบวกใน nums: 0) หากเซตว่าง คืนค่า 1 วนลูป i จาก 1 ถึง len(nums) + 1: หาก i not

  3. โปรแกรมหาจำนวนเต็มบวกที่หายไปตัวแรกในช่วง 1 ถึง N+1 ใน Python

    สมมติว่าเรามีรายการจำนวนเต็มที่เรียงแล้วและไม่ซ้ำ ขนาด n ต้องหาจำนวนเต็มบวกตัวแรกในช่วง [1, n+1] ที่ไม่ได้อยู่ในอาร์เรย์ ตัวอย่าง: nums = [0, 5, 1] ผลลัพธ์ 2 (หายไปในช่วง 1-5) ขั้นตอนการแก้ปัญหา (Linear Scan) target = 1 วนลูปผ่านแต่ละ i ใน arr: หาก i == target ให้ target += 1

  4. โปรแกรมหาลำดับการเดินทางที่ถูกต้องจากตั๋วเครื่องบินใน C++

    สมมติว่าเรามีรายการตั๋วเครื่องบินเป็นคู่ [from, to] ต้องสร้างเส้นทางเดินทาง (itinerary) ให้ถูกต้อง เริ่มจาก KLK (ในโจทย์ต้นฉบับคือ JFK) ตัวอย่าง: [[MUC,LHR],[KLK,MUC],[SFO,SJC],[LHR,SFO]] → [KLK,MUC,LHR,SFO,SJC] ขั้นตอนการแก้ปัญหา (Hierholzers Algorithm / Eulerian Path) สร้าง graph เป็น map: ai

  5. โปรแกรมตรวจสอบว่า Graph เป็น Forest (ชุดของ Trees) หรือไม่ใน Python

    สมมติว่าเรามีกราฟในรูป edge list เราต้องตรวจสอบว่ามันเป็น forest (ชุดของต้นไม้ ไม่มี cycle) หรือไม่ ตัวอย่าง: edges = [[0,1],[0,2],[4,3]] เป็น forest (มี 2 ต้นไม้) ผลลัพธ์ True ขั้นตอนการแก้ปัญหา (DFS Cycle Detection) สร้าง adjacency list e จาก edges seen = set() ฟังก์ชัน dfs(node, prev):

  6. โปรแกรมทำ Fractional Knapsack Problem ใน Python

    สมมติว่าเรามีรายการน้ำหนัก weights และค่า values ความยาวเท่ากัน และ capacity คือน้ำหนักสูงสุดที่รับได้ สามารถหยิบเศษส่วนของไอเท็มได้ (ค่าสัมพันธ์กับน้ำหนัก) ต้องการหาค่าสูงสุด (ปัดทศนิยมทิ้ง) ตัวอย่าง: weights = [6, 7, 3], values = [110, 120, 2], capacity = 10 ผลลัพธ์คือ 178 (ในโค้ดตัวอย่าง output

  7. โปรแกรมนับจำนวนสตริงที่สร้างได้จากกฎไวยากรณ์สระใน Python

    สมมติว่าเรามีตัวเลข n ต้องหาจำนวนสตริงยาว n ที่สร้างได้จากกฎ: ตัวอักษรเป็นสระ [a, e, i, o, u] a ต้องตามด้วย e เท่านั้น e ตามด้วย a หรือ i i ไม่ตามด้วย i o ตามด้วย i หรือ u u ตามด้วย a เท่านั้น ผลลัพธ์ mod 10⁹+7 ตัวอย่าง: n = 2 ผลลัพธ์ 10: [ae,ea,ei,ia,ie,io,iu,oi,ou,ua] ขั้นตอนการแก้

  8. วิธีหาสถิติเชิงพรรณนาของ Data Frame ใน R ด้วย fBasics Package

    การใช้ summary() บน data frame ใน R จะได้แค่ min, Q1, median, mean, Q3, max แต่ถ้าต้องการสถิติเพิ่มเติม เช่น variance, standard deviation, skewness, kurtosis สามารถใช้ basicStats() จาก package fBasics ขั้นตอน โหลด package: library(fBasics) ใช้ข้อมูลตัวอย่าง mtcars, trees, pressure เรียก basi

  9. โปรแกรมจัดกลุ่มจุดเป็น K กลุ่มตามระยะทางยุคลิดใน Python

    สมมติว่าเรามีรายการจุด (x, y) และตัวเลข k สามารถจัดกลุ่มจุด p1, p2 ได้หากระยะทางยุคลิดระหว่างพวกเขา ≤ k ต้องการหาจำนวนกลุ่มที่ไม่ซ้อนกัน (disjoint groups) ตัวอย่าง: points = [[2,2],[3,3],[4,4],[11,11],[12,12]], k = 2 ผลลัพธ์ 2 กลุ่ม: ([2,2],[3,3],[4,4]) และ ([11,11],[12,12]) ขั้นตอนการแก้ปัญหา (Gr

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

    สมมติว่าเรามีสตริงไบนารี เราต้องหาจำนวนการสลับ (swaps) น้อยที่สุดเพื่อให้ 1 ทั้งหมดอยู่ติดกันที่ตำแหน่งใดก็ได้ในสตริง ตัวอย่าง: 10101001101 ผลลัพธ์คือ 3 (เป็นไปได้เป็น 00000111111) ขั้นตอนการแก้ปัญหา (Sliding Window + Prefix Sum) แปลงสตริงเป็น list ของ int (data) นับจำนวน 1 ทั้งหมด one สร้า

  11. วิธีใช้ For Loop พิมพ์ทุกองค์ประกอบของ List ในภาษา R

    การใช้ for loop กับ vector หรือ list ใน R ไม่แตกต่างกัน ใช้ได้ในรูปแบบทั่วไป เช่น หากมี list ชื่อ List ต้องการพิมพ์ทุกองค์ประกอบ ใช้โค้ด for(i in List){print(i)} โดย i จะอ้างถึงแต่ละ vector ใน List ตัวอย่าง List <- list( A = LETTERS[1:26], B = rnorm(50, 2, 1), C = rpois(100, 5), D = runif(5

  12. โปรแกรมหาความสูงที่ต้องเพิ่มน้อยที่สุดเพื่อไปถึงปลายทางในเมทริกซ์ด้วย Python

    สมมติว่าเรามีเมทริกซ์ M ที่ M[r][c] คือความสูงของเซลล์ เริ่มจากมุมซ้ายบน ต้องไปมุมขวาล่าง สามารถเดินได้เฉพาะเซลล์ติดกัน (บน/ล่าง/ซ้าย/ขวา) ก็ต่อเมื่อความสูงเซลล์ปลายทาง <= เซลล์ปัจจุบัน เราสามารถเพิ่มความสูงเซลล์ได้ก่อนเดิน ต้องการหาผลรวมความสูงที่เพิ่มน้อยที่สุด ตัวอย่าง: 2 4 5 8 6 1 ผลลัพธ์ 4 (เส

  13. โปรแกรมตรวจสอบว่าสามารถกระโดดถึงตำแหน่งสุดท้ายจาก Index 0 ได้หรือไม่ใน Python

    สมมติว่าเรามีรายการตัวเลข nums ที่แต่ละตัวแทนจำนวนก้าวกระโดดสูงสุดจากตำแหน่งนั้น เราต้องตรวจสอบว่าสามารถไปถึง index สุดท้ายเริ่มจาก index 0 ได้หรือไม่ ตัวอย่าง: nums = [2, 5, 0, 2, 0] ผลลัพธ์ True (กระโดด 0→1 แล้ว 1→end) ขั้นตอนการแก้ปัญหา (DP เริ่มจากท้าย - Bottom Up) n = len(nums) arr = [Fa

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

    สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนจำนวนเต็มบวก n หลัก ที่หลักตัวเลขเรียงเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) ตัวอย่าง: n = 3 ผลลัพธ์คือ 84 (ตัวเลขคือ 123, 124, ..., 678, 789) ขั้นตอนการแก้ปัญหา (Combinatorics) หาก n < 9 ให้คืนค่า C(9, n) (การเลือก n ตัวจาก 1-9) มิฉะนั้น คืนค่า 0 (เ

  15. โปรแกรมทำ Inorder Traversal แบบ Iterative บนต้นไม้ไบนารีใน Python

    ขวา) แบบ iterative (ไม่ใช้ recursion) ตัวอย่าง: ต้นไม้ดังรูป ผลลัพธ์ [12, 13, 4, 16, 7, 14, 22] ขั้นตอนการแก้ปัญหา (Stack-based Iterative Inorder) inorder = [], stack = [] วนลูป while True: หาก root ไม่ใช่ null: push root เข้า stack, root = root.left มิฉะนั้น หาก stack ไม่ว่า

  16. โปรแกรมผสาน Linked List สองอันสลับกัน (Interleave) ใน Python

    สมมติว่าเรามี linked list สองอัน l1 และ l2 เราต้องคืนค่า linked list เดียวโดยผสานองค์ประกอบสลับกันเริ่มจาก l1 หากเหลือโหนดใน list ใด list หนึ่ง ให้ต่อท้ายไป ตัวอย่าง: l1 = [5,4,6,3,4,7], l2 = [8,6,9] ผลลัพธ์: [5,8,4,6,6,9,3,4,7] ขั้นตอนการแก้ปัญหา (In-place Insertion) ans = l1 วนลูป while l2

  17. โปรแกรมกลับด้านต้นไม้ไบนารี (Invert Binary Tree) ใน Python

    สมมติว่าเรามีต้นไม้ไบนารี root เราต้องกลับด้าน (invert) มัน โดยสลับ subtree ซ้ายและขวา และลูกของพวกเขาแบบ recursive ตัวอย่าง: ก่อน invert และหลัง invert (ดูรูป) ขั้นตอนการแก้ปัญหา (Recursive Swap) หาก root เป็น null ให้คืนค่า root.left, root.right = solve(root.right), solve(root.left) คืนค่

  18. โปรแกรมหาเส้นรอบรูปของเกาะในเมทริกซ์ไบนารีด้วย Python

    สมมติว่าเรามีเมทริกซ์ไบนารีที่ 0 แทนช่องว่าง และ 1 แทนบล็อกที่สร้างรูปร่าง เราต้องหาเส้นรอบรูปของรูปร่างนั้น (รูปร่างไม่มีรูภายใน) ตัวอย่างเมทริกซ์ 5x5: 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 ผลลัพธ์คือ 14 ขั้นตอนการแก้ปัญหา (Count Exposed Edges) วนลูปผ่านทุกเซลล์ในเมทริกซ์ หากเซลล

  19. โปรแกรมหาจำนวนองค์ประกอบที่ไม่ซ้ำในแต่ละหน้าต่างขนาด K ใน Python

    สมมติว่าเรามีรายการตัวเลข nums และตัวเลข k เราต้องการหารายการของจำนวนตัวเลขที่ไม่ซ้ำในแต่ละหน้าต่างขนาด k ตัวอย่างเช่น nums = [2, 2, 3, 3, 4], k = 2 ผลลัพธ์คือ [1, 2, 1, 2] จากหน้าต่าง [2,2], [2,3], [3,3], [3,4] ขั้นตอนการแก้ปัญหา (Sliding Window + Hash Map) สร้าง Counter สำหรับ k องค์ประกอบแรก

  20. โปรแกรมหาผลรวมสูงสุดจากการ Pop K องค์ประกอบจากหลาย Stack ใน Python

    สมมติว่าเรามีรายการของ stacks และจำนวนเต็ม k เราต้องการหาผลรวมสูงสุดที่ได้จากการ pop ออกมาทั้งหมด k องค์ประกอบจาก stacks ใดๆ อย่างใดอย่างหนึ่ง ตัวอย่างเช่น stacks = [[50, -4, -15], [2], [6, 7, 8]], k = 4 ผลลัพธ์คือ 39 (pop ทั้ง 3 ตัวจาก stack แรก และ 1 ตัวจาก stack สุดท้าย: -15 + -4 + 50 + 8 = 39)

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:177/451  20-คอมพิวเตอร์/Page Goto:1 171 172 173 174 175 176 177 178 179 180 181 182 183